CN113014482B - 用于链路状态协议的序列号校验和 - Google Patents
用于链路状态协议的序列号校验和 Download PDFInfo
- Publication number
- CN113014482B CN113014482B CN202010165515.2A CN202010165515A CN113014482B CN 113014482 B CN113014482 B CN 113014482B CN 202010165515 A CN202010165515 A CN 202010165515A CN 113014482 B CN113014482 B CN 113014482B
- Authority
- CN
- China
- Prior art keywords
- sequence number
- network
- network device
- link state
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/32—Flooding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1621—Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/03—Topology update or discovery by updating link state protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
总体上,本公开中描述的技术的各个方面提供了用于链路状态协议的序列号校验和。在一个示例中,本公开描述了一种装置,诸如网络设备,该装置具有控制单元,该控制单元操作以获取描述网络拓扑中的成对的网络设备之间的链路的链路状态信息,链路状态信息被分割为多个链路状态协议LSP片段;根据链路状态协议LSP片段的序列号来计算序列号校验和;从网络中的另一网络设备接收LSP数据单元;确定LSP数据单元中的序列号校验和是否与根据链路状态信息而被计算出的序列号校验和匹配;以及响应于确定LSP数据单元的序列号校验和与根据链路状态信息而被计算出的序列号校验和之间的不匹配,配置用于处理LSP数据单元的延迟。
Description
技术领域
本公开涉及计算机网络,并且更具体地涉及用于计算机网络的链路状态协议。
背景技术
路由协议定义了用于诸如路由器等网络设备彼此通信以传播信息的过程,该信息允许路由器选择计算机网络中的任何两个路由器之间的路由。一种类型的路由协议(称为链路状态协议)允许路由器泛洪关于网络内的各种链路的各种类型的信息(其中这样的信息可以称为“链路状态信息”)。根据链路状态协议,路由器可以洪泛与与路由器与相邻路由器之间的网络链路相关联的可用接口、度量和/或其他变量相关的链路状态信息。路由器可以在整个网络中泛洪链路状态信息,从而允许每个路由器构造网络的相应拓扑或映射。链路状态协议的一些示例包括开放最短路径优先OSPF协议和中间系统到中间系统IS-IS协议(它们是内部网关协议IGP)。
网络上的两个设备之间的连接通常称为链路。不同自治系统的设备之间的连接称为外部链路,而同一自治系统内的设备之间的连接称为内部链路。在单个链路发生故障的情况下,包括公共网络(诸如互联网)在内的很多计算机网络可以动态地重新路由数据分组。在链路发生故障时,路由器可以将新的链路状态信息传输给相邻的邻近(neighboring)路由器,从而允许每个路由器更新定义网络的拓扑的相应本地路由信息库。链路可能由于多种原因而发生故障,诸如路由器之间的物理基础设施(例如,链路)发生故障,或者与链路接口的路由器发生故障。
当网络中的链路发生故障时,耦合到发生故障的链路的路由器可以根据链路状态协议经由链路状态信息来通告(advertise)故障,其中链路状态信息可以指示链路不可用。在IS-IS的上下文中,路由器可以传输链路状态信息作为链路状态协议数据单元PDU。由于IS-IS在第二层网络协议的上下文中操作,因此链路状态协议数据单元可能会受到以太网或其他第二层网络协议的最大传输单元MTU的影响。这样,路由器可以将链路状态协议数据单元分割为多个不同的片段,然后路由器可以将这些片段分别发送给网络中的相邻路由器。
接收片段的路由器可以单独地处理每个片段,以更新由路由信息库表示的拓扑以反映在每个片段中指定的链路状态信息。然而,响应于接收到每个片段而更新拓扑可能导致所谓的“搅动”,这是因为片段包含关于各种链路的不完整的链路状态信息,其中这样的“搅动”可能涉及路由器更新拓扑以将一个或多个链路指示为仅不可用于接收包括指示链路可用的链路状态信息的后续片段。为了避免搅动,接收方路由器可以被配置为将个体片段的处理延迟可以允许后续片段的接收的某个指定时间。
发明内容
总体上,描述了用于使得网络设备能够以也可以避免搅动的方式使用序列号校验和来潜在地使处理链路状态协议数据单元的片段的延迟最小化的技术。序列号校验和可以使得网络设备(诸如路由器)能够准确地标识链路状态协议数据单元PDU片段。这样,接收片段的网络设备可以将序列号校验和应用于在每个片段中指定的先前和当前接收的序列号以确定是否已经接收到所有片段。
当跨越先前和当前接收的片段的序列号的计算出的校验和与所接收的序列号校验和(在先前和/或当前接收的片段中指定)不匹配时,网络设备可以延迟对片段的处理。当跨越在片段中提出的先前和当前接收的序列号的计算出的校验和与所接收的序列号校验和匹配时(表明已经接收到所有片段),网络设备可以处理片段并且根据片段来更新路由信息数据库。这样,该技术的各个方面可以通过确保每个节点的准确链路状态信息来实现这样的维护,并且从而减轻搅动,同时还可以潜在地使处理片段的延迟最小化,因为假定序列号校验和可以肯定地指示已经接收到该片段集合中的所有片段,可以避免针对该片段集合中的最后一个片段的预先配置的延迟。
以这种方式,这些技术可以提供一种或多种技术优势或改进,这些技术优势或改进提供了至少一种实际应用。如本文中描述的,序列号校验和指示当链路状态协议数据单元片段第一次被传播时哪个链路状态信息有效(例如,哪些链路可用)。通过并入序列号校验和,实现本文中描述的技术的网络设备可能不易受任何上述“搅动”的影响,并且此外,潜在地避免了与处理片段相关联的预先配置的并且通常过长的延迟。因此,这些技术可以在设备和/或网络本身的操作时进行改进,并且这样的改进在技术上与设备和/或网络本身的功能相关。
在一个示例中,一种方法包括:由驻留在网络中的第一网络设备根据链路状态协议从网络中与第一网络设备相邻的第二网络设备接收表示指定描述网络内的链路的链路状态信息的链路状态协议数据单元PDU的至少一部分的片段,该片段包括序列号和提供的序列号校验和;由第一网络设备基于序列号计算序列号校验和以获取计算出的序列号校验和;由第一网络设备确定计算出的序列号校验和是否与提供的序列号校验和匹配;以及由第一网络设备基于该确定来处理该片段以更新由第一网络设备维护的网络拓扑。
在另一示例中,一种具有网络设备拓扑的网络中的网络设备包括具有操作以进行以下操作的处理电路系统:由驻留在网络中的第一网络设备根据链路状态协议从网络中与第一网络设备相邻的第二网络设备接收表示指定描述网络内的链路的链路状态信息的链路状态协议数据单元PDU的至少一部分的片段,该片段包括序列号和提供的序列号校验和;由第一网络设备基于序列号计算序列号校验和以获取计算出的序列号校验和;由第一网络设备确定计算出的序列号校验和是否与提供的序列号校验和匹配;以及由第一网络设备基于该确定来处理该片段以更新由第一网络设备维护的网络拓扑。
在另一示例中,一种网络,包括根据网络拓扑而被连接的网络设备:与第二网络设备相邻的第一网络设备,该第一网络设备被配置为:根据链路状态协议从第二网络设备接收表示指定描述网络内的链路的链路状态信息的链路状态协议数据单元PDU的至少一部分的片段,该片段包括序列号和提供的序列号校验和;由第一网络设备基于序列号计算序列号校验和以获取计算出的序列号校验和;由第一网络设备确定计算出的序列号校验和是否与提供的序列号校验和匹配;以及由第一网络设备基于该确定来处理该片段以更新由第一网络设备维护的网络拓扑。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,其他特征、目的和优点将很清楚。
附图说明
图1是示出包括示例网络的系统的框图,该示例网络具有被配置为采用本公开的技术的网络设备;
图2是示出根据本公开的技术的作为示例网络中的示例网络设备的路由器的框图;
图3是示出根据本公开的技术的用于在示例网络的网络设备之间的通信中使用的链路状态协议LSP数据单元的框图;
图4是示出根据本公开的一个或多个方面的包括由示例网络中的示例网络设备执行的示例操作的过程的流程图;
图5是示出根据本公开的一个或多个方面的包括由示例网络中的示例网络设备执行的示例操作的过程的第二流程图;以及
图6是示出根据本公开的一个或多个方面的示例网络中的示例控制器设备的框图。
贯穿附图和文本,相似的附图标记指代相似的元素。
具体实施方式
图1是示出根据本公开中描述的技术的各个方面进行操作的示例网络10的框图。在图1的示例中,网络10包括多个子网,诸如由路由器16A-16D(“路由器16”)互连的子网12和子网14A-14C(“子网14”)。在图1的示例中,子网12表示共享媒体访问网络。此外,子网14C通过路由器16C和1D两者通信地耦合到子网12,并且因此可以经由路由器16C和16D两者从子网12接收业务。
通常,链路状态协议(诸如开放最短路径优先OSPF协议、中间系统到中间系统IS-IS协议、路由信息协议RIP和增强型内部网关路由协议EIGRP)允许交换路由信息以标识示例网络10的拓扑。
在该示例中,网络10的路由器16实现一个或多个链路状态协议以交换路由信息并且促进在整个网络的端点设备之间转发分组或其他数据单元。尽管仅将子网12示出为共享媒体访问网络,但是每个子网14可以包括共享媒体访问网络或任何其他类型的子网。通常,共享访问子网12可以是任何形式的共享访问网络,诸如广播或非广播多访问网络NBMA。作为一个示例,共享访问子网12可以包括耦合路由器16的以太网网络。
每个路由器16根据链路状态协议进行操作以交换链路状态信息(例如,路由信息)。例如,路由器16可以执行开放最短路径优先OSPF路由协议或中间系统到中间系统IS-IS路由协议,这两种协议都是使用链路状态信息来经由数据单元来传送与网络链路相关联的可用接口、度量和其他变量的链路状态协议的示例。OSPF使用被称为链路状态通告LSA的数据单元,而IS-IS使用被称为链路状态协议数据单元PDU的数据单元来交换链路状态信息。
尽管在整个本公开中被称为PDU,但是PDU可以描述一类协议数据单元,这类协议数据单元包括用于指定链路状态信息(其是LSP)的特定类型的PDU。这样,PDU也可以表示为LSP,LSP是在题为“OSI IS-IS Intra-domain Routing Protocol”的由D.Oran编辑的日期为1990年2月的征求意见RFC 1142(其全部内容通过引用合并于此,就好像全文引用一样)中用于引用链路状态协议数据单元(其通告链路状态信息)的表示法。另外,尽管以下在IS-IS的上下文中描述各种示例,但是本公开中描述的技术可以关于诸如OSPF等任何链路状态协议来实现。
通常,路由器16将指定链路状态信息的PDU输出给网络10内的其他路由器。基于所传送的链路状态信息,路由器16以能够反映网络10的拓扑的方式来构造图形或其他数据结构。例如,路由器16可以形成图形数据结构,其中图形的每个节点表示不同的路由器16或共享接入网络,并且互连图形的两个节点的每个边表示对应的两个路由器16之间或路由器与共享访问网络之间的不同链路。
图形的每个边可以与成本或其他边值相关联,该成本或其他边值反映经由PDU通告的每个相关联的链路的链路状态信息。使用IS-IS和其他链路状态协议,两个路由器节点之间的边在两个方向上(例如,从节点1到节点2以及从节点2到节点1)具有(可能不同的)成本,但是路由器节点与共享访问网络节点之间的边通常只具有路由器节点到网络节点这一方向的成本。路由器16然后可以顺序路径选择算法以确定数据分组的每个源和目的地的通过网络的路径。例如,路由器16可以顺序约束最短路径优先CSPF路径选择算法以找到从每个节点到每个其他节点的最低成本路径。
在执行路径选择之后,路由器16根据所选择的路径转发分组。随着网络状况的变化(诸如当路由器16之一无法操作,链路断开或变为过度消耗和缓慢时),一个或多个路由器16可以检测网络状况的变化,根据指定定义变化的网络状况的链路状态信息的IS-IS来计算新的成本度量并且输出PDU,从而将变化传送给其他路由器16。路由器16处理链路状态信息的PDU以更新其相应链路状态数据库,并且基于更新后的图形数据结构执行路径选择以选择通过网络10的新路径。
在大型网络中,可能存在频繁发生的广泛变化,从而导致潜在的大量链路状态信息。换言之,路由器16可以检测变化的网络状况,并且生成指定大量链路状态信息的PDU。此外,考虑到IS-IS(和其他链路状态路由协议)是通过在整个网络中“泛洪”链路状态信息来操作的,并非给定PDU中的所有链路状态信息都可以描述由生成该PDU的给定路由器16检测到的变化的网络状况。泛洪是指用于每个路由器16经由给定端口接收PDU并且经由转发路由器16的每个其他操作端口转发PDU(其可以利用由转发路由器16检测到的链路状态信息来更新)的过程。然后,PDU可以在整个网络12中移动以分布或换言之在网络12内“泛洪”链路状态信息。
这样的从路由器到路由器的洪泛是由于IS-IS作为第二层L2(或换言之,数据链路层)网络协议而操作的结果。在这点上,IS-IS不支持网络内启用PDU的路由级转发的定向通信的第三层功能。这样,路由器16在链路级别从路由器16之一到直接相邻的路由器16(其经由链路直接连接到彼此)发送PDU作为第二层数据单元,诸如以太网帧或异步传输模式ATM单元。虽然在较小的网络中,PDU可以遵守第二层网络协议的限制,诸如以太网的最大传输单元MTU大小限制,但是PDU在具有大量链路状态信息要在路由器16之间传送的较大的网络中可能会超过这样的限制(尤其是MTU大小限制)。
当PDU超过以太网的MTU或其他第二层网络协议的其他大小限制时,路由器16可以将PDU分割为两个或更多个片段,从而将由PDU指定的链路状态信息划分为不同的片段。但是,分割可能会在维护路由器16内的链路状态数据库时造成搅动,这潜在地可能会损害网络12的操作。例如,因为IS-IS未包括用于处理第二层网络协议片段的任何第三层网络协议机制,路由器16可能无法确定给定片段表示整个PDU还是多个片段中的一个片段。
这样,路由器16可以处理片段就好像片段表示整个PDU一样,从而处理不完整的链路状态信息使得导致对网络拓扑的表示进行不正确的更新。在接收到PDU的后续片段时,路由器16然后可以再次处理在后续片段中指定的链路状态信息,以便潜在地撤消对网络拓扑的表示的一个或多个更新,从而创建被称为“搅动”的内容,其中仅执行更新以使其被反向或换言之被撤消。
为了避免搅动,路由器16可以被配置为针对片段的处理注入延迟以便允许时间流逝以确保后续片段不会撤销由当前接收的片段引起的更新。但是,延迟的注入可能导致链路状态信息的延迟处理,进而导致类似的网络效率低下,尤其是在其中大规模地交换链路状态信息的大型网络中,因为延迟可能有效地阻止以足以充分地跟上网络变化的速度的及时性对链路状态信息的处理。网络效率低下可能会导致转发错误,其中分组会沿着无效路径(具有较高成本度量)被转发,而具有相对较低成本的其他路径却大部分未使用,从而导致分组交付丢失或延迟,服务质量QoS协议违背,等等。
链路状态协议通过将路由器16配置为具有最短路径优先SPF延迟来避免与这样的实例相关联的问题,并且在SPF计算之前等待所有示例数据单元片段被接收。SPF延迟实质上会将SPF计算的触发延迟任意时间段或者直到接收到具有链路状态更新的另一(后续)片段。实际上,SPF延迟不能很高,因为这会减慢收敛速度。至少由于这个限制,配置SPF延迟不能在所有情况下完全缓解这个问题。
特别地,在链路状态信息的数据单元的处理导致子网之间的分组传输的错误和/或延迟的情况下,本公开中的各种实施例并入了用于维持准确拓扑的技术。本公开还包括由各种实施例采用的用于避免或减轻如本文中描述的“搅动”的多种技术。至少一个实施例以被配置为维持序列号校验和的链路状态协议(例如,IS-IS)的形式并入技术。例如,由于IS-IS未包括用于处理第二层网络协议片段的任何第三层网络协议机制,因此采用序列号校验和的路由器16现在能够确定给定片段表示整个PDU还是多个片段中的一个片段。本文中描述的技术可以实现序列号校验和以标识其中链路状态信息已经被移动到不同片段中或者以其他方式在片段之间重新排列的实例。在大型网络中,链路状态信息在片段之间的移动经常发生。这样的实例包括创建新片段以将附加链路状态信息容纳到示例数据单元中以及任何上述情况。
但是,延迟的注入可能导致链路状态信息的延迟处理,进而导致类似的网络效率低下,特别是在其中大规模地交换链路状态信息的大型网络中,因为延迟可能有效地阻止以足以充分地跟上网络变化的速度的及时性对链路状态信息的处理。
代替SPF计算的任意和/或无效的延迟,本公开的至少一个示例技术指示路由器16避免处理当前片段并且为网络10更新拓扑,直到接收到示例数据单元的下一片段。在一些示例中,SPF计算可以继续以促进收敛。路由器16可以延迟对当前片段中的任何链路状态信息的处理,直到接收到示例数据单元的后续片段。一些示例技术利用序列号校验和来标识“搅动”的实例并且确定何时避免响应于这样的实例而处理当前片段。
例如,路由器16的至少两个路由器(例如,发送方网络设备和下游网络设备)交换当前链路状态协议数据单元的嵌入在以太网帧或其他L2协议单元中的片段。根据本文中描述的技术,这些片段可以包括关于节点之间的链路的信息以及关于序列号和序列号校验和的信息。路由器16的下游网络设备可以使用该信息以通过将路径片段算法(例如,SPF)应用于网络14的拓扑来查找从该示例路由器到网络14中每个其他网络设备的成本最低路径,基于片段来计算要用于到达网络14中的其他路由器16的下一跳,并且可以将计算出的下一跳安装在用于转发目的地为其他节点的网络业务的所存储的转发信息中。路由器16可以响应于当前链路状态协议数据单元的所存储的序列号校验和与最近的以太网帧中的序列号校验和之间的不匹配而延迟这样的计算。
如本文中描述的,IS-IS是使用链路状态协议数据单元PDU来在网络设备的网络之间通告链路状态信息的链路状态协议。如上所述,IS-IS可以独立于第3层,并且使用逻辑链路控制LLC封装。结果,每个IS-IS PDU不能超过最大大小限制。例如,基于以太网的网络施加的最大PDU大小为1492个字节。在一些实例中,示例网络设备可以以类型长度值TLV格式为PDU生成链路状态信息。链路状态信息可以被配置为其中父TLV包括多个子TLV的层次结构。将TLV(例如,子TLV)添加到示例性未分割PDU中可能导致示例PDU的当前迭代超过最大大小限制,从而导致该示例PDU分割为至少两个片段。
在一些示例中,路由器16的上述发送方网络设备可以递增示例PDU的序列号,创建具有唯一片段标识符(例如,一个字节值)的两个片段,并且然后在这些片段之间拆分所有TLV。在另一示例中,示例网络设备可以将较旧的TLV存储到第一片段中,并且将其他TLV存储到第二片段中。在又一示例中,示例网络设备可以将较旧的TLV移动(例如,重新排列)到第二片段中,从而在第一片段中提供用于存储附加TLV的空间。
在任何上述示例中,接收仅一个片段的路由器16的任何下游网络设备都未具有整个示例PDU的当前迭代,从而导致丢失链路状态信息。为了确保下游网络设备避免“搅动”和/或维持准确的网络拓扑,由IS-IS协议规定的路由器16的下游网络设备需要避免处理所接收的片段中的任何链路状态信息。在一些示例中,IS-IS协议规定直到接收到具有丢失的链路状态信息的后续片段的链路状态处理的延迟。根据所规定的延迟,路由器16的下游网络设备可以延迟最短路径优先SPF计算的执行,包括用于利用片段来更新网络拓扑的网络测量,直到接收到后续片段。
本文中描述的技术将序列号校验和并入到至少由路由器16的发送方网络设备和下游网络设备执行的链路状态协议(诸如IS-IS协议)中。在一些示例中,序列号校验和向IS-IS协议通知示例PDU的当前迭代的片段之间的链路状态信息的最近的分割和/或重新排列。在其他示例中,序列号校验和用作指示符以指示可以在后续片段中找到一个片段中的丢失的链路状态信息(例如,由于重新排列)。在一些示例中,序列号校验和是与示例PDU的当前迭代的片段相关联的序列号的倍数;因此,对于序列号为i的示例PDU的n个片段,可以将序列号校验和计算为n*i。以这种方式,在路由器16的下游网络设备处执行的IS-IS协议可以标识示例PDU的当前迭代的片段,并且确定是否已经创建了新片段。在其他示例中,序列号校验和可以是与示例PDU的每次迭代相关联的序列号的总和,其中附加序列号被添加到每个片段的总和;因此,对于序列号为i的示例PDU的n个片段,序列号校验和可以计算为n*((i)(i+1)/2)。
为了举例说明,当路由器16的下游网络设备接收以太网帧时,IS-IS协议标识示例PDU的片段并且从报头部分提取一些信息(例如,属性)。IS-IS协议从示例PDU的先前迭代中观察到序列号的递增,这表示对链路状态信息的更新。因此,示例PDU的所接收的片段属于示例PDU的新的迭代。示例PDU的片段可以是在当前迭代之前创建的,也可以是全新的片段。IS-IS协议还观察序列号校验和,并且在将该序列号校验和与预期的序列号校验和进行比较之后,至少确认是否预期另一片段到达路由器16的下游网络设备。在一些示例中,基于序列号校验和与预期的序列号校验和之间的比较,IS-IS协议可以确定最近是否创建了新片段和/或在随后的帧传输中是否预期新片段。
例如,如果示例PDU在先前的迭代中从未被分割并且创建了新的片段以存储附加链路状态信息,则下游网络设备处的IS-IS协议可以计算预期的序列号校验和以使其在与所接收的片段中的序列号校验和相比时缩短新片段的序列号。这个缺陷表明计划使新片段到达下游网络设备并且该新片段可以存储从所接收的片段中丢失的链路状态信息。
图2是示出执行本公开中描述的技术的各个方面的示例性网络设备30的框图。网络设备30可以表示图1的示例中所示的路由器16之一。尽管关于网络设备30进行描述,但是这些技术可以由能够实现链路状态协议(诸如IS-IS路由协议或OSPF路由协议)的任何其他类型的网络设备来实现。因此,尽管关于网络设备30进行描述,但是这些技术不应当限于关于图2的示例描述的示例性网络设备30。
在图2的示例中,网络设备30包括分别经由网络链路34A-34N和36A-36N接收和发送数据单元(诸如分组流)的接口卡32A-32N(“IFC 32”)。网络设备30可以包括具有用于容纳包括IFC 32在内的一组卡的多个插槽的机架(未示出)。每个卡可以插入到机架的对应插槽中以用于经由高速交换机40和内部数据路径42A-42N(“内部数据路径42”)将卡电耦合到控制单元38。
交换机40还提供每个IFC 32之间的互连路径。交换机40可以包括例如交换结构、交换设备、可配置的网络交换机或集线器、或者其他高速交换机制。内部数据路径42可以包括任何形式的通信路径,诸如集成电路内的电气路径、外部数据总线、光链路、网络连接、无线连接或其他通信路径。IFC 32可以经由多个物理接口端口(未示出)耦合到网络链路34A-34N和36A-36N。通常,IFC 32每个可以表示网络设备30可以用来与网络的链路(诸如图1的示例中所示的子网12的链路)进行接口的一个或多个网络接口。
通常,用于网络设备30的控制单元38可以包括以下中的一种或多种:处理器、可编程处理器、通用处理器、集成电路、专用集成电路ASIC、现场可编程门阵列FPGA、或能够实现本文中描述的技术的任何类型的硬件单元。控制单元38还可以包括非暂态计算机可读介质或其他计算机可读存储设备,其可以包括动态存储器(例如,随机存取存储器或RAM、动态RAM或DRAM和高速缓存)和/或静态存储器(例如,静态RAM或SRAM、只读存储器或ROM和闪存)以及存储设备,诸如光盘ROM或CD ROM、硬盘驱动器、RAM驱动器和数字视频光盘DVD驱动器。在某些情况下,计算机可读存储介质可以包括或存储在被执行时引起可编程处理器执行本文中描述的技术的指令。这些指令可以形成计算机程序,该计算机程序可以包括软件或其他可执行文件。
控制单元38还可以包括用户界面UI模块44(“UI模块44”)和一个或多个链路状态协议模块46A-46N(“链路状态协议模块46”)。UI模块44可以表示呈现用户界面的模块,管理员或其他用户(诸如管理员39(“admin 39”))通常可以与该用户界面交互以配置一个或多个链路状态协议模块46、以及控制单元38。如图2的示例中所示,链路状态协议模块46可以包括OSPF模块46A、IS-IS模块46N和任何其他链路状态协议。
IS-IS模块46N表示根据1990年2月的D.Oran的题为“OSI IS-IS Intra-domainRouting Protocol”的IS-IS RFC 1142(其全部内容通过引用合并于此)来实现IS-IS路由协议的模块。
控制单元38还可以包括和维护存储LSA和用于标识或以其他方式确定网络拓扑的任何其他信息或数据的链路状态数据库50。链路状态协议模块46可以更新链路状态数据库50或以其他方式存储指定网络的链路的数据,包括与这些链路有关的特性,诸如各种成本和其他度量。控制单元38可以以一个或多个表、数据库、链路列表、基数树、数据库、平面文件、图形或任何其他数据结构的形式来维护链路状态数据库50。基于链路状态数据库50,控制单元38为IFC 32生成转发信息52A-52N(“转发信息52”)。
每个IFC 32包括根据由控制单元38生成的转发信息52来转发分组的转发组件(未示出)。具体地,IFC 32的转发组件基于转发信息52来为每个入站IP分组(其可以与MPLS分组区分开,因为这些IP分组不包括标签堆栈)确定下一跳,标识与下一跳相关联的对应的IFC32,并且经由交换机40和对应的数据路径42来将分组中继到适当的IFC 32。尽管以上将模块描述为离散模块44-48,但是这些模块可以组合以形成单个模块或单元,或者可以分别实现为不同的硬件或软件单元。对各个模块的引用并不表示反映实际的离散实现,并且可以通过相同的硬件或硬件或软件的组合来实现一个以上的模块。
最初,admin 39可以与由UI模块44呈现的用户界面(诸如命令行界面CLI或图形用户界面GUI)交互以配置一个或多个链路状态协议模块46。例如,admin 39可以与用户界面接口以指示IS-IS模块46N将使用根据本公开提供的技术来维持网络中的准确链路状态。在配置一个或多个协议46之后,admin 39还可以与用户界面交互以输入将一个或多个链路相关联的链路数据。UI模块44可以将该链路数据作为新条目存储到链路状态数据库50,或者可以基于输入的链路数据来更新链路状态数据库50以反映由该链路数据为对应链路定义的新的链路状态信息。
在以这种方式配置控制单元38之后,admin 39随后可以激活或以其他方式使得网络设备30能够开始处理分组,诸如根据转发信息52而转发的标准IP分组。在接收这些分组之前,一个多个模块46可以生成包括类似于IS-IS的上下文中的链路类型2的链路的PDU56。新类型指示子网12正在使用根据本公开中描述的技术的各个方面定义的序列号校验和SNC 58。而且,与常规链路状态协议一样,PDU 56可以包括更多的链路。
如本文中描述的,SNC 58是指根据与片段60A-60N(“片段60”)相关联的一组序列号而被计算出的校验和值。每个片段60包括根据诸如IS-IS协议46N等链路状态协议而通告的链路状态信息的一部分。所通告的链路状态信息和其他信息被维持在链路状态数据库50中。该通告的链路状态信息的每个部分可以在链路状态数据库50中由片段序列号表示。在一个示例中,IS-IS模块46N向片段60A-N分配序列号,并且然后根据这些序列号生成SNC58。在为片段准备报头信息时,IS-IS模块46N将SNC 58作为属性插入每个片段的报头结构中。应当理解,SNC 58可以是类型长度值格式或另一种格式。作为上述操作的替代或补充,IS-IS模块46N可以将SNC 58作为类型长度值TLV数据集插入每个片段中。通过将SNC 58插入片段60A-N中的每个片段中并且然后传播片段60A-N通过示例网络10,IS-IS模块46N可以确保由任何接收网络设备(receiving network device)对SNC 58的访问。因此,本公开的技术使得接收网络设备能够标识片段的重新排列并且避免来自该重新排列的影响。
在一些示例中,当在接收网络设备(例如,类似于网络设备30的路由器)处接收时,该设备上的对方IS-IS模块从片段的报头中读取SNC 58,并且基于SNC 58的检查来确定是否发生了重新排列。在一个示例中,当SNC 58与在接收网络设备处根据本地链路状态数据库计算出的对方SNC不匹配时,接收网络设备确定发生了重新排列。如果存在这种不匹配,则接收网络设备对片段的处理施加延迟。所施加的延迟实际上也会延迟本地链路状态数据库和任何后续网络测量的更新,包括SPF模块62进行的SPF计算。
根据其中网络设备30从发送方网络设备接收片段的示例,IS-IS模块46N以类似于上述对方IS-IS模块的方式操作。在一个示例中,IS-IS模块46N继续进行以从片段的报头结构中读取报头信息并且从该报头信息提取片段的序列号校验和。IS-IS模块46N将片段的序列号校验和与SNC 58进行比较,并且如果IS-IS模块46N确定不匹配,则IS-IS模块46N对链路状态数据库50的进一步处理和更新施加延迟。响应于后续片段缺少用于完成重新排列的TLV数据,IS-IS模块46N去除延迟并且继续更新链路状态数据库50。
响应于更新链路状态数据库50,链路状态协议模块46之一可以调用SPF模块62,SPF模块62解析其链路状态数据库50的对应部分以生成转发信息52。链路状态协议模块46之一然后可以利用新解析的转发信息52来配置或更新IFC 32。IFC 32可以根据转发信息52继续接收和转发IP分组。
在转发分组时,一个或多个IFC 32可以调用或以其他方式执行接口监测模块54。接口监测模块54可以表示监测IFC 32A的接口以标识经由每个链路的通信能力的变化(通常是,通过测量带宽)的模块。当变化超过阈值时,作为一个示例,接口监测模块54可以与一个或多个链路状态协议模块46接口以指示或以其他方式指定特定链路的通信劣化超出阈值劣化。然后,一个或多个链路状态协议模块46可以生成路由器PDU 56,该路由器PDU 56指示对于所标识的链路,从子网12到网络设备30的成本度量已经改变(并且可能的从网络设备30到子网12的成本度量已经改变)。
图3示出了被配置为在网络10中为链路状态协议LSP维护准确的链路状态的示例片段110。示例片段110是由网络设备用来根据IS-IS来通告链路状态信息的链路状态协议数据单元PDU的至少一部分。网络设备可以是子网14之一(例如,子网14A)中的路由器16之一(例如,路由器16A)。PDU是指网络10中可用的总链路状态信息。PDU的另一片段可以被配置为通告总链路状态信息的不同部分。示例片段110可以被嵌入以太网帧中,称为链路状态协议LSP分组。对于OPSF,存储在片段110中的信息可以被改编为链路状态通告LSA。
示例片段110包括多个属性,图3描绘了这些属性的具体配置;应当理解,IS-IS协议中的其他配置可以采用不同的属性集,其中一些是相似的,而另一些则不同于图3中描绘的属性的数目。示例片段110包括具有域内路由协议鉴别器114A、PDU最大大小114B、PDU标识符(即,LSP ID)114C、ID长度114D和序列号114E作为属性的报头112。示例片段110还包括TLV数据集在有效载荷126中的布置;并且,如图3所示,TLV数据集116-125存储在有效载荷126中。根据本文中描述的技术,这些TLV数据集之一存储序列号校验和SNC。如图3所示,TLV数据集125存储SNC类型125A、SNC长度125B、SNC值125C。SNC类型125A指示SNC存储在SNC值125C中,并且SNC长度125B指示存储在SNC值125C中的SNC的长度。在一些示例中,网络设备的IS-IS模块46N将SNC值125C计算为序列号114E与PDU的片段总数的乘积。应当理解,序列号144E不同于存储在PDU标识符114C中(例如,在最后一个字节中)的片段标识符。
如关于图3描述的,片段110的有效载荷126在TLV数据集125中通告用于在网络设备处的PDU的当前迭代的序列号校验和值。示例序列号校验和SNC可以是四(4)字节长的数值,其可以是网络设备处的PDU中的所有片段的序列号的倍数或总和。每当网络设备发送PDU的片段时,接收设备的IS-IS模块46N根据PDU中的所有片段的序列号来计算预期序列号校验和值。如果预期的序列号校验和值与由网络设备提供的序列号校验和snc1不匹配,则创建PDU的新片段。
如本文中描述的,图3所示的TLV数据集可以是分层的结构,其中父TLV数据集与多个子TLV数据集相关。父TLV数据集通常将路由器16的某种类型的链路状态信息(诸如链路信息或前缀信息)存储在多个子TLV中。随着时间的流逝,可能有必要将附加子TLV数据集引入父TLV数据集中。如本文中描述的,由于链路状态协议数据单元的分割和影响这些数据单元的片段的大小限制,可能存在以下情况:如果不将父TLV数据集移动到具有足够空闲空间的片段中,则无法将子TLV数据集添加到存储父TLV的当前片段。
在一个示例中,TLV数据集116(下文中称为“T1”)可以最初在具有序列号114E(下文中称为“f1s1”)和SNC值125C(下文中标记为“snc1”)的示例片段110(下文中称为“F1”)的有效载荷126中公告。如果PDU仅包括F1和当前具有序列号(下文中称为“f2s1”)的另一片段(下文中称为“F2”),则IS-IS模块46N将snc1计算为序列号f1s1和f2s1的总和。传输PDU片段的网络设备执行重新排列过程,该重新排列过程将片段F1和F2的序列号分别更新为f1s2和f2s2并且然后在网络上泛洪这些分组。在向F1添加更多信息之后,网络设备中的IS-IS模块46N将数据集T1移动到PDU中的其他片段F2中,从而将序列号114E从f1s1递增到f1s2。
在新片段F1的传输之前,接收设备(即,网络10中的第二网络设备)中的链路状态数据库包括来自序列号为f1s1的先前片段F1的信息。接收设备在具有更新后的序列号f1s2的更新后的示例片段110中接收新片段F1。接收设备的IS-IS模块46N继续进行以利用新的链路状态信息来更新链路状态数据库。应当注意,新片段F1不包括TLV数据集T1,因为该数据集现在位于片段F2中。在更新之后,链路状态数据库包括序列号为f1s2的片段F1和序列号为f2s1的旧片段F2。还应当注意,链路状态数据库不包括序列号为f2s2并且存储更新后的TLV数据集T1的新片段F2。因此,接收设备的IS-IS模块46N根据新片段F1的序列号f1s2和旧片段F2的序列号f2s1来计算预期的序列号校验和。相反,网络设备中的IS-IS模块46N在新片段F1中提供根据新片段F1的序列号f1s2和新片段F2的序列号f2s2而被计算出的第二序列号校验和。作为响应,IS-IS模块46N可以基于确定计算出的序列号校验和与提供的序列号校验和不匹配而指示接收设备避免处理新片段F1的链路状态信息。
最终,接收设备也将接收新片段F2;同时,接收设备可能会误解片段的重新排列,因为片段F1中的TLV数据集T1被父节点去除。如果TLV数据集T1包括链路信息,则接收设备可能会因为链路中断而误解重新排列。为了防止/减轻在接收设备仅具有新片段F1和旧片段F2的时间段期间可能发生的任何问题,接收设备执行本文中提供的一种或多种技术。在一个示例中,接收设备通过延迟最短路径优先SPF计算的执行和网络拓扑的更新来避免问题。
关于上述示例,第二序列号校验和(下文中标记为“snc2”)可以是根据第一序列号f1s2和第二序列号f2s2而被计算出的校验和值。网络设备向接收设备传送新数据单元(例如,分组),该新数据单元包括具有第一序列号f1s2和序列号校验和snc2的新片段F1以及具有第二序列号f2s2和序列号校验和snc2的新片段F2(在另一数据单元中)。如果接收设备在新片段F2之前接收到新片段F1,则接收设备通过标识新片段F1中的序列号校验和snc2来检测对链路状态信息的更新。接收设备根据接收设备的数据库中可用的第一网络设备的片段的序列号来计算校验和,并且确定是否与新片段F1不匹配。如果该校验和值不等于snc2,则接收设备确定尚未接收到新片段F2。由于来自f1s2和f2s1的校验和不等于snc2,因此接收设备将延迟对新片段110的处理和对SPF的触发。在接收到新片段F2时,接收设备将能够将F2的序列号校验和snc2与根据所有片段而被计算出的校验和进行匹配。一旦匹配,接收设备将继续进行以处理这两个数据单元并且根据需要来触发这两个数据单元的SPF。
图4是示出根据本公开的一个或多个方面的由示例网络10中的示例网络设备执行的示例操作的流程图。本文中在作为示例网络设备的图2的网络设备30的上下文中描述图4。在其他示例中,图4中描述的操作可以由一个或多个其他组件、模块、系统或设备执行。此外,在其他示例中,结合图4描述的操作可以被合并,以不同的顺序执行,被省略,或者可以包含未具体示出或描述的附加操作。
在图4所示的过程中,并且根据本公开的一个或多个方面,网络设备30在示例网络10中维持准确的链路状态,同时避免“搅动”和由于链路状态信息(例如,TLV数据集)在链路状态协议数据单元PDU的片段之间的重新排列而引起的其他缺陷。网络设备30获取链路状态数据库50中的PDU(400)的链路状态信息。如本文中描述的,IS-IS模块46N包括在处理电路系统上的操作以实现以下操作的逻辑:将存储在链路状态数据库50中的链路状态信息的当前迭代分割为至少两个片段(402),向每个片段分配序列号(404),以及使用片段的序列号来计算序列号校验和(406)。IS-IS模块46N生成数据单元(例如,分组)以包括序列号校验和(408)和片段之一。网络设备30将数据单元输出给示例网络10中的其他网络设备(410)。
图5是示出根据本公开的一个或多个方面的由示例网络10中的示例网络设备执行的示例操作的第二流程图。本文中在作为示例网络设备的图2的网络设备30的上下文中描述图5。在其他示例中,图5中描述的操作可以由一个或多个其他组件、模块、系统或设备执行。此外,在其他示例中,结合图5描述的操作可以被合并,以不同的顺序执行,被省略,或者可以包含未具体示出或描述的附加操作。
在图5所示的过程中,并且根据本公开的一个或多个方面,示例网络利用以太网帧中的当前链路状态信息泛洪其网络设备,该以太网帧在其有效载荷中具有链路状态协议数据单元PDU的片段。每个片段在一个或多个TLV数据集中包括链路状态信息。示例网络10中的每个网络设备维护数据库,该数据库包括PDU的当前迭代,该PDU包括从片段中的TLV数据集提取的链路状态信息,如本文中解释的。在图3中示出了具有TLV数据集的示例数据单元。
使数据库维持链路状态信息的当前状态,网络设备30能够计算预期的序列号校验和值。序列号校验和属性的一个特征是验证PDU中有多少个片段。另一特征是指示在示例网络10中采用的链路状态协议中的片段之间的链路状态信息的最近的重新排列。序列号校验和属性作为另一特征独立地验证了最近的重新排列不是由网络变化引起的,也没有引起网络变化。如本文中描述的,网络变化包括从示例网络10去除网络设备;并且关于这样的去除的错误信息至少会导致转发信息出错。先前,片段中丢失的TLV数据导致如下错误假定:示例网络10丢弃了与丢失的TLV数据相关联的网络设备。然而,通过检查序列号校验和,网络设备30可以消除或减轻由网络变化的错误假定而引起的错误。
在一个示例中,网络设备30从示例网络10中与网络设备30相邻的第二网络设备接收具有更新后的链路状态信息的片段,并且在利用更新后的链路状态信息更新上述数据库之前执行以下操作。如本文中描述的,片段表示指定描述示例网络10内的链路的链路状态信息的PDU的至少一部分。该片段包括序列号和序列号校验和。在一个示例中,网络设备30根据当前PDU的所接收的片段的序列号来计算校验和值。在另一示例中,网络设备30检查先前的PDU(例如,来自同一发送方网络设备的先前的PDU),并且根据这些PDU中的一个或多个片段来计算序列号校验和。
网络设备30继续进行以将来自所接收的片段的提供的序列号校验和属性与根据先前的链路状态信息而被计算出的预期的序列号校验和值进行比较并且确定是否存在不匹配(502)。如果序列号校验和属性与预期的校验和值之间不匹配,则网络设备30避免或以其他方式延迟数据单元中的片段的处理,直到后续数据单元到达(504)。如果后续数据单元到达而没有具有更新后的序列号的片段,则后续数据单元指示在丢失的TLV数据集中描述的任何链路现在都不可用。在一个示例中,更新后的链路状态信息可以以具有递增或更新后的序列号的新片段的形式到达网络设备30。在根据先前的序列号和递增或更新后的序列号重新计算预期的序列号校验和之后,网络设备30将预期的序列号校验和与后续数据单元中的序列号校验和进行比较以解决不匹配。当不匹配得到解决时,网络设备30计算网络测量并且根据SPF计算来生成转发信息(506)。
图6是示出具有使用控制器设备610管理的元件的示例企业网络602的框图。
控制器设备610在各种示例中可以包括多个网络接口,尽管出于示例目的仅示出了一个网络接口。一个网络接口可以表示无线和/或有线接口,例如,以太网接口或被配置为根据无线标准(诸如一个或多个IEEE 802.11无线联网协议(诸如802.11a/b/g/n或其他这样的无线协议))进行通信的无线电设备。
如本文中描述的,在很多情况下(除了超出最大大小限制),网络设备30在示例数据单元的片段之间移动或重新排列链路状态信息。在某些情况下,配置变化会导致示例数据单元的一个以上片段的更新。在将管理员组添加到多个接口,添加多个前缀,等等时,可能会发生示例配置变化。这些情况中的任何一种都可能潜在地导致业务丢弃或不必要的业务重新路由。这在控制器设备610依赖于外部数据库来进行路由决策的情况下可能对该控制器设备610产生负面影响。在这种情况下,即使没有真正的网络变化,控制器设备610也可能最终重新路由大量隧道。
如果控制器设备610正在直接侦听ISIS链路状态协议更新,则控制器设备610可以在执行更新之前使用相同的逻辑来等待所有更新后的片段被接收。如果经由不同协议(例如,BGP-LS)向控制器设备610通知,则IGP实现仅在其已经按照序列号校验和接收到所有相关片段之后才通知该协议。
企业网络602的被管理元件614A-14G(统称为“元件614”)包括经由通信链路互连以形成通信拓扑以便交换资源和信息的网络设备。元件614(通常也称为网络设备或远程网络设备)可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统、或入侵防御系统、计算设备、计算终端、打印机、其他网络设备或这样的设备的组合。虽然在本公开中被描述为传输、传送或以其他方式支持分组,但是企业网络602可以根据由任何其他协议定义的任何其他离散数据单元(诸如由异步传输模式ATM协议定义的单元或由用户数据报协议UDP定义的数据报)来传输数据。互连元件614的通信链路可以是物理链路(例如,光、铜等)、无线链路或其任何组合。
企业网络602被示出为经由通信链路耦合到公共网络618(例如,互联网)。公共网络618可以包括例如一个或多个客户端计算设备。公用网络618可以提供对Web服务器、应用服务器、公用数据库、媒体服务器、最终用户设备以及其他类型的网络资源设备和内容的访问。
控制器设备610经由企业网络602通信地耦合到元件614。在一些示例中,控制器设备610形成设备管理系统的一部分,尽管出于示例目的而在图1中仅示出了设备管理系统的一个设备。控制器设备610可以直接或间接地耦合到各个元件614。一旦元件614被部署和激活,管理员612就使用控制器设备610(或多个这样的管理设备)使用设备管理协议来管理网络设备。一种示例设备协议是简单网络管理协议SNMP,它允许控制器设备610遍历和修改将配置数据存储在每个被管理元件614中的管理信息库MIB。SNMP协议的更多细节可以在从http://tools.ietf.org/html/rfc3411可获取的2002年12月的网络工作组的互联网工程任务组草稿的Harrington等人的RFC 3411的“An Architecture for Describing SimpleNetwork Management Protocol(SNMP)Management Frameworks”(其全部内容通过引用合并于此)中找到。作为另一示例,网络配置协议(NETCONF)提供了用于配置网络设备的机制,并且对配置数据(其包括策略数据)使用基于可扩展标记语言(XML)的数据编码。NETCONF在从tools.ietf.org/html/rfc4741可获取的2006年12月的网络工作组的RFC4741的Enns的“NETCONF Configuration Protocol”(其全部内容通过引用合并于此)中进行了描述。
控制器设备610也可以被称为网络管理系统NMS;NMS设备;元件管理系统EMS;或EMS设备。元件614由企业的IT小组集中维护。管理员612与控制器设备610交互以远程地监测和配置元件614。例如,管理员612可以从控制器设备610接收关于任何元件614的警报,查看元件614的配置数据,修改元件614的配置数据,向企业网络602添加新网络设备,从企业网络602中去除现有网络设备,或者以其他方式操纵企业网络602和其中的网络设备。尽管关于企业网络进行描述,但是本公开的技术适用于公共和私有的其他网络类型,包括LAN、VLAN、VPN等。
在一些示例中,管理员612使用控制器设备610或本地工作站来与元件614直接交互,例如,通过telnet、安全外壳SSH或其他这样的通信会话。即,元件614通常提供用于直接交互的接口,诸如命令行接口、CLI、基于web的接口、图形用户界面、GUI等,用户可以通过该接口与设备交互以直接发布基于文本的命令。例如,这些接口通常允许用户直接与设备交互(例如,通过telnet、安全外壳、SSH、超文本传输协议、HTTP或其他网络会话)以根据所定义的语法来输入文本以向被管理元件提交命令。在一些示例中,用户使用控制器设备610与元件614之一(例如,元件614F)发起SSH会话15以直接配置元件614F。以这种方式,用户可以以用于执行的格式直接向元件614提供命令。
此外,管理员612还可以创建可以由控制器设备610提交给任何或全部元件614的脚本。例如,除了CLI接口,元件614还提供用于接收根据脚本语言来指定命令的脚本的接口。从某种意义上,脚本可以由控制器设备610输出以在被管理元件614上自动调用对应的远程过程调用RPC。脚本可以符合例如可扩展标记语言XML或另一种数据描述语言。
管理员612使用控制器设备610来配置元件614以指定进一步实现管理员612的目标的特定操作特征。例如,管理员612可以为元件614指定关于以下各项的特定操作策略:安全性;设备可访问性;流量工程;服务质量QoS;网络地址转换NAT;分组过滤;分组转发;速度限制或其他政策。控制器设备610使用被设计用于管理被管理网络元件614内的配置数据的一个或多个网络管理协议(诸如SNMP协议、NETCONF协议或其派生协议,诸如瞻博网络设备管理接口)来执行配置。控制器设备610可以与一个或多个元件614建立NETCONF会话。
根据本文中描述的至少一种技术,控制器设备610维持企业网络602的至少一些元件614的准确拓扑。类似于图1的示例网络10和图2的网络设备30的路由器16,控制器设备610支持在企业网络602处有效的链路状态协议(例如,IS-IS协议)的分割能力。在一些示例中,执行IS-IS协议的控制器设备610将序列号校验和引入到具有链路状态信息的当前迭代的链路状态协议数据单元PDU的每个片段中。序列号校验和使得能够由企业网络602的接收网络设备标识片段的实例,例如,在创建新片段时。这些技术还可以由被管理网络服务MNS设备或其他类型的控制器来执行。
在一些示例实施例中,一种方法包括以下步骤:由网络的第一网络设备根据链路状态协议来获取标识第一网络设备与第二网络设备之间的链路的状态的链路状态信息;由第一网络设备将链路状态信息分割为多个片段;由第一网络设备向每个片段分配多个序列号中的序列号;由第一网络设备基于多个序列号来计算序列号校验和;由第一网络设备更新每个片段以包括序列号校验和;以及由第一网络设备输出片段。
在一个示例中,本文中公开的方法的链路状态协议可以包括中间系统到中间系统IS-IS协议和链路状态协议数据单元PDU,链路状态PDU根据IS-IS协议指定链路状态信息。在一个示例中,本文中公开的方法的每个片段包括序列号校验和作为属性。在本文中公开的方法的一个示例中,更新每个片段以包括序列号校验和的步骤包括向每个片段添加具有指定序列号校验和的值子字段的类型长度值TLV字段。
在本文中公开的方法的一个示例中,由第一网络设备基于多个序列号来计算序列号校验和的步骤还包括由第一网络设备响应于链路状态信息在片段之间的重新排列来计算序列号校验和。
本公开中描述的技术可以至少部分以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器;数字信号处理器DSP;专用集成电路ASIC;现场可编程门阵列FPGA;或任何其他等效的集成或分立逻辑电路系统;以及这样的组件的任何组合。术语“处理器”或“处理电路系统”通常可以是指单独的或与其他逻辑电路系统或任何其他等效电路系统组合的任何前述逻辑电路系统。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实现以支持本公开中描述的各种技术。另外,任何所描述的单元、模块或组件可以一起或单独地实现为分立但可互操作的逻辑器件。将不同特征描述为模块或单元旨在突出不同的功能方面,而不一定暗示这样的模块或单元必须通过单独的硬件、固件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以通过单独的硬件、固件或软件组件来执行,或者可以集成在通用的或单独的硬件、固件或软件组件内。
本公开中描述的技术还可以在包括用指令编码的非暂态计算机可读介质的制品中体现或编码。嵌入或编码在包括已编码的计算机可读介质的制品中的指令可以引起一个或多个可编程处理器或其他处理器实现本文中描述的一种或多种技术,诸如当计算机可读介质中包括或编码的指令由一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器RAM;只读存储器ROM;可编程只读存储器PROM;可擦除可编程只读存储器EPROM;电子可擦除可编程只读存储器EEPROM;闪存;硬盘;光盘ROM;CD-ROM;软盘;卡带;磁性介质;光学介质;或其他计算机可读介质。在一些示例中,制品可以包括一种或多种计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂态介质。术语“非暂态”可以指示存储介质没有体现在载波或传播的信号中。在某些示例中,非暂态存储介质可以存储可以随时间变化的数据(例如,在RAM或高速缓存中)。
Claims (20)
1.一种方法,包括:
由驻留在网络中的第一网络设备根据链路状态协议从所述网络中与所述第一网络设备相邻的第二网络设备接收多个片段中的片段,所述多个片段中的每个片段表示指定描述所述网络内的链路的链路状态信息的链路状态协议数据单元PDU的一部分,所述片段包括序列号和从所述多个片段的序列号计算出的提供的序列号校验和;
由所述第一网络设备基于所述序列号来计算序列号校验和以获取针对所述链路状态PDU的所有片段的计算出的序列号校验和;
由所述第一网络设备确定所述计算出的序列号校验和是否与所述提供的序列号校验和匹配;以及
由所述第一网络设备基于所述确定来处理所述片段以更新由所述第一网络设备维护的网络拓扑。
2.根据权利要求1所述的方法,其中处理所述片段包括基于所述计算出的序列号校验和与所述提供的序列号校验和匹配的确定来处理所述片段。
3.根据权利要求1所述的方法,其中处理所述片段包括基于所述计算出的序列号校验和与所述提供的序列号校验和不匹配的确定来避免处理所述片段。
4.根据权利要求1所述的方法,还包括由所述第一网络设备延迟执行最短路径优先SPF计算。
5.根据权利要求1所述的方法,还包括由所述第一网络设备延迟用于利用所述片段来更新所述网络拓扑的网络测量,直到另一片段被接收到。
6.根据权利要求5所述的方法,其中所述另一片段包括至少一个类型长度值TLV数据集中的用于所述第二网络设备的链路状态信息,其中所述另一片段还包括所述序列号和所述序列号校验和。
7.根据权利要求6所述的方法,其中所述序列号校验和是所述序列号的倍数。
8.根据权利要求1所述的方法,还包括在所述第一网络设备处从所述第二网络设备接收第二片段,所述第二片段包括指定所述链路状态信息的所述链路状态协议数据单元PDU的另一部分,所述第二片段还包括第二序列号和第二序列号校验和。
9.根据权利要求8所述的方法,其中所述第二序列号校验和被计算为所述序列号和所述第二序列号的总和。
10.根据权利要求1所述的方法,其中所述第二网络设备响应于向所述PDU的所述片段添加新的链路状态信息而创建新片段以存储指定所述链路状态信息的所述PDU的所述一部分。
11.一种具有网络设备拓扑的网络中的网络设备:
控制单元,包括处理电路系统,所述处理电路系统操作以:
由驻留在网络中的第一网络设备根据链路状态协议从所述网络中与所述第一网络设备相邻的第二网络设备接收多个片段中的片段,所述多个片段中的每个片段表示指定描述所述网络内的链路的链路状态信息的链路状态协议数据单元PDU的一部分,所述片段包括序列号和从所述多个片段的序列号计算出的提供的序列号校验和;
由所述第一网络设备基于所述序列号来计算序列号校验和以获取针对所述链路状态PDU的所有片段的计算出的序列号校验和;
由所述第一网络设备确定所述计算出的序列号校验和是否与所述提供的序列号校验和匹配;以及
由所述第一网络设备基于所述确定来处理所述片段以更新由所述第一网络设备维护的网络拓扑。
12.根据权利要求11所述的网络设备,其中所述控制单元包括处理电路系统,所述处理电路系统操作以基于所述计算出的序列号校验和与所述提供的序列号校验和匹配的确定来处理所述片段。
13.根据权利要求11所述的网络设备,其中所述控制单元包括处理电路系统,所述处理电路系统操作以基于所述计算出的序列号校验和与所述提供的序列号校验和不匹配的确定来避免处理所述片段。
14.根据权利要求11所述的网络设备,其中所述第二网络设备响应于向所述PDU的所述片段添加新的链路状态信息而创建新片段以存储指定所述链路状态信息的所述PDU的所述一部分。
15.根据权利要求11所述的网络设备,其中所述控制单元包括处理电路系统,所述处理电路系统操作以从所述片段的报头信息或从所述片段的TLV数据集提取所述序列号校验和作为属性。
16.一种网络系统 ,包括根据网络拓扑而被连接的网络设备:
与第二网络设备相邻的第一网络设备,所述第一网络设备被配置为:
根据链路状态协议从所述第二网络设备接收多个片段中的片段,所述多个片段中的每个片段表示指定描述所述网络内的链路的链路状态信息的链路状态协议数据单元PDU的一部分,所述片段包括序列号和从所述多个片段的序列号计算出的提供的序列号校验和;
由所述第一网络设备基于所述序列号来计算序列号校验和以获取针对所述链路状态PDU的所有片段的计算出的序列号校验和;
由所述第一网络设备确定所述计算出的序列号校验和是否与所述提供的序列号校验和匹配;以及
由所述第一网络设备基于所述确定来处理所述片段以更新由所述第一网络设备维护的网络拓扑。
17.根据权利要求16所述的网络系统 ,其中所述第一网络设备被配置为:基于所述计算出的序列号校验和与所述提供的序列号校验和匹配的确定来处理所述片段。
18.根据权利要求16所述的网络系统 ,其中所述第一网络设备被配置为:基于所述计算出的序列号校验和与所述提供的序列号校验和不匹配的确定来避免处理所述片段。
19.根据权利要求16所述的网络系统 ,其中所述第二网络设备响应于向所述PDU的所述片段添加新的链路状态信息而创建新片段以存储指定所述链路状态信息的所述PDU的所述一部分。
20.根据权利要求16所述的网络系统 ,其中所述第一网络设备被配置为:
响应于接收到另一片段而利用所述片段来更新所述网络拓扑,其中所述另一片段还包括所述序列号和所述序列号校验和,所述序列号校验和是所述序列号的倍数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/721,698 US11323360B2 (en) | 2019-12-19 | 2019-12-19 | Sequence number checksum for link state protocols |
US16/721,698 | 2019-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014482A CN113014482A (zh) | 2021-06-22 |
CN113014482B true CN113014482B (zh) | 2022-11-29 |
Family
ID=69810632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010165515.2A Active CN113014482B (zh) | 2019-12-19 | 2020-03-11 | 用于链路状态协议的序列号校验和 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11323360B2 (zh) |
EP (1) | EP3840309B1 (zh) |
CN (1) | CN113014482B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2594740B (en) * | 2020-05-06 | 2022-11-23 | Arm Cloud Tech Inc | Connecting and resetting devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351455A2 (en) * | 2000-07-25 | 2003-10-08 | ACUO Technologies, LLC | Routing and storage within a computer network |
WO2005109791A2 (en) * | 2004-05-05 | 2005-11-17 | New Jersey Institute Of Technology | A sub-segment based transport layer protocol for wireless medium |
CN102067569A (zh) * | 2008-06-23 | 2011-05-18 | 高通股份有限公司 | 在多处理器计算环境中管理数据服务的方法和设备 |
CN105656781A (zh) * | 2016-03-17 | 2016-06-08 | 华为技术有限公司 | 一种链路状态数据包的传输方法及网络设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5128926A (en) | 1990-03-21 | 1992-07-07 | Digital Equipment Corporation | Updating link state information in networks |
US20030123457A1 (en) * | 2001-12-27 | 2003-07-03 | Koppol Pramod V.N. | Apparatus and method for distributed software implementation of OSPF protocol |
US20030233538A1 (en) * | 2002-05-31 | 2003-12-18 | Bruno Dutertre | System for dynamic, scalable secure sub-grouping in mobile ad-hoc networks |
US7570594B2 (en) * | 2003-10-01 | 2009-08-04 | Santera Systems, Llc | Methods, systems, and computer program products for multi-path shortest-path-first computations and distance-based interface selection for VoIP traffic |
US7656856B2 (en) * | 2005-04-28 | 2010-02-02 | Cisco Technology, Inc. | Method and system for transmitting LSP fragments |
US7751336B2 (en) * | 2006-06-08 | 2010-07-06 | Cisco Technology, Inc. | Technique for efficiently avoiding transient routing disturbances in link state routing protocols with link state packet fragmentation |
US7787399B2 (en) * | 2008-07-25 | 2010-08-31 | Alcatel-Lucent Usa Inc. | Automatically configuring mesh groups in data networks |
US9628439B2 (en) * | 2010-08-12 | 2017-04-18 | Donald E. Eastlake, III | Systems and methods for managing network address information |
US8830867B2 (en) * | 2011-07-21 | 2014-09-09 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and network elements operable to specify and determine complete sets of link state messages for link state routing protocols |
US9755962B2 (en) * | 2015-03-11 | 2017-09-05 | Juniper Networks, Inc. | Reducing link state protocol traffic during graceful restart |
CN111669320B (zh) * | 2016-12-20 | 2023-04-21 | 华为技术有限公司 | 一种处理报文的方法及网络设备 |
US20190372889A1 (en) * | 2017-01-31 | 2019-12-05 | The Mode Group | High performance software-defined core network |
JP2019068296A (ja) * | 2017-10-02 | 2019-04-25 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにコンピュータプログラム |
KR102352684B1 (ko) * | 2017-11-16 | 2022-01-18 | 삼성전자주식회사 | 무선통신 시스템에서 통신 방법 및 장치 |
-
2019
- 2019-12-19 US US16/721,698 patent/US11323360B2/en active Active
-
2020
- 2020-03-11 CN CN202010165515.2A patent/CN113014482B/zh active Active
- 2020-03-12 EP EP20162664.5A patent/EP3840309B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351455A2 (en) * | 2000-07-25 | 2003-10-08 | ACUO Technologies, LLC | Routing and storage within a computer network |
WO2005109791A2 (en) * | 2004-05-05 | 2005-11-17 | New Jersey Institute Of Technology | A sub-segment based transport layer protocol for wireless medium |
CN102067569A (zh) * | 2008-06-23 | 2011-05-18 | 高通股份有限公司 | 在多处理器计算环境中管理数据服务的方法和设备 |
CN105656781A (zh) * | 2016-03-17 | 2016-06-08 | 华为技术有限公司 | 一种链路状态数据包的传输方法及网络设备 |
Non-Patent Citations (2)
Title |
---|
《IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 17: Resilient Packet Ring (RPR) Access Method and Physical Layer Specifications》;IEEE Std 802.17-2004;《IEEE》;20041231;全文 * |
《IS-IS协议网络拓扑发现及异常检测技术研究与实现》;赵一方;《中国优秀硕士学位论文全文数据库》;20181115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US11323360B2 (en) | 2022-05-03 |
CN113014482A (zh) | 2021-06-22 |
EP3840309B1 (en) | 2023-08-30 |
EP3840309A1 (en) | 2021-06-23 |
US20210194798A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3435602B1 (en) | Service level agreement based next-hop selection | |
Cascone et al. | Fast failure detection and recovery in SDN with stateful data plane | |
EP3435599A1 (en) | Service level agreement based next-hop selection | |
EP2572473B1 (en) | Methods and apparatus for use in an openflow network | |
US8374095B2 (en) | Connection verification for MPLS label switched paths and pseudowires | |
US10009231B1 (en) | Advertising with a layer three routing protocol constituent link attributes of a layer two bundle | |
US10250562B1 (en) | Route signaling driven service management | |
US8082340B2 (en) | Technique for distinguishing between link and node failure using bidirectional forwarding detection (BFD) | |
US9166877B2 (en) | Distinguishing between connectivity verification availability and forwarding protocol functionality in a computer network | |
EP3301861A1 (en) | Evpn designated forwarder state propagation to customer edge devices using connectivity fault management | |
EP2367320B1 (en) | Communicating Network Path and Status Information in Multi-Homed Networks | |
US7765306B2 (en) | Technique for enabling bidirectional forwarding detection between edge devices in a computer network | |
Cascone et al. | SPIDER: Fault resilient SDN pipeline with recovery delay guarantees | |
EP2854454A1 (en) | Providing two-part metrics incomputer networks | |
US11057290B2 (en) | Ping/traceroute for static label switched paths (LSPs) and static segment routing traffic engineering (SRTE) tunnels | |
CN112262549A (zh) | 用于sdn控制器集群的稳健的节点故障检测机制 | |
US20140140217A1 (en) | Methods and Arrangements in an MPLS-TP Network | |
US11601335B2 (en) | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol | |
US8971195B2 (en) | Querying health of full-meshed forwarding planes | |
US8670299B1 (en) | Enhanced service status detection and fault isolation within layer two networks | |
CN113014482B (zh) | 用于链路状态协议的序列号校验和 | |
US20210367867A1 (en) | Segmented traceroute for segment routing traffic engineering | |
CN113366804A (zh) | 防止网络拓扑改变期间的微环路的方法和系统 | |
CN109861912B (zh) | 优化用于电子设备内的虚拟节点的结构路径转发 | |
US20240205131A1 (en) | Monitoring primary and local repair paths on all hops between two nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |