CN113261245B - 网络链路或节点故障的恢复系统和方法 - Google Patents
网络链路或节点故障的恢复系统和方法 Download PDFInfo
- Publication number
- CN113261245B CN113261245B CN201980067036.2A CN201980067036A CN113261245B CN 113261245 B CN113261245 B CN 113261245B CN 201980067036 A CN201980067036 A CN 201980067036A CN 113261245 B CN113261245 B CN 113261245B
- Authority
- CN
- China
- Prior art keywords
- link
- node
- flooding topology
- link state
- nodes
- 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
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- 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/22—Alternate 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/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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/32—Flooding
Abstract
本发明涉及网络故障的恢复。计算一个泛洪拓扑,所述泛洪拓扑由网络中的节点之间的链路表示。同时也计算所述泛洪拓扑中的链路和节点的备选连接。检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂。将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的每个节点和所述备选连接,使得所述链路状态消息标识所述网络中的故障。通过使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑,解决了所述网络中的故障问题。
Description
优先权要求
本申请要求于2018年11月30日提交的第62/773,571号美国临时专利申请案的优先权权益,所述申请案的全部内容通过引用并入本文本中。
技术领域
本发明涉及网络通信,尤其涉及泛洪网络拓扑的分布。
背景技术
各类设备接入服务提供商网络,访问基于报文的数据网络(互联网、企业内部网、内容提供商、虚拟专用网(virtual private network,VPN)等)提供的资源和业务。例如,许多固定计算机利用服务提供商网络的光纤、数字用户线或基于电缆的连接等固定通信链路来访问基于报文的业务。此外,大量的移动设备,如蜂窝或移动智能手机、功能手机、平板电脑、笔记本电脑等,利用服务提供商网络的蜂窝无线接入网等移动连接来访问基于报文的业务。泛洪拓扑可以表示底层(即物理)拓扑,并且可以在拓扑的链路或节点发生一个或多个故障时进行分裂。因此,链路状态更新不能在拓扑中正确转发,链路状态数据库可能无法同步。
发明内容
根据本发明的一个方面,提供了一种具有一个或多个节点的网络,包括第一节点,所述第一节点包括处理器、接收器和发送器,用于:计算泛洪拓扑,所述泛洪拓扑由所述网络中的所述一个或多个节点之间的链路表示,以及计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,使得所述链路状态消息标识所述网络中的故障;通过使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑,解决了所述网络中的故障问题。
根据本发明的又一个方面,提供了一种用于网络中故障恢复的计算机实现的方法,包括:计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示,以及计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,使得所述链路状态消息标识所述网络中的故障;通过使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑,解决了所述网络中的故障问题。
可选地,在上述任一方面中,所述方法还包括:确定所述泛洪拓扑中的一个或多个关键节点,其中所述一个或多个关键节点的故障导致所述泛洪拓扑分裂;确定所述网络中的所述关键节点与所述一个或多个节点之间的所述泛洪拓扑中的一个或多个关键链路,其中所述一个或多个关键链路的故障导致所述泛洪拓扑分裂。
可选地,在上述任一方面中,所述备选连接在所述泛洪拓扑中的链路的两个端节点之间,或者为与所述泛洪拓扑中的节点之一相交的路径,所述方法还包括:在所述一个或多个关键链路故障时,向所述两个端节点分发包括所述备选连接的链路状态消息,以连接所述分裂的泛洪拓扑;在所述关键节点故障时,分发包括与所述节点之一相交的所述路径的链路状态消息,以连接所述分裂的泛洪拓扑。
可选地,在上述任一方面中,所述方法还包括:根据连接的泛洪拓扑,计算新的泛洪拓扑;当所述链路不在所述泛洪拓扑中,所述链路在所述新的泛洪拓扑中,且所述泛洪拓扑计算完成后所述网络发生故障时,向链路中的邻节点发送所述链路状态的状态,其中,所述链路与所述节点相连。
可选地,在上述任一方面中,所述链路状态的状态是节点在所述泛洪拓扑分裂的时间段内发出或接收的链路状态,和节点在所述泛洪拓扑分裂的时间段内发出或接收的发生变化的链路状态之一。
可选地,在上述任一方面中,所述时间段是发生变化的链路状态对所述泛洪拓扑进行泛洪所花费的最大时间量、计算新的泛洪拓扑所花费的最大时间量,以及所述新的泛洪拓扑分布到网络区域中的一个或多个节点所花费的最大时间量之和。
可选地,在上述任一方面中,所述一个或多个节点中的每个节点包括链路状态数据库,所述方法还包括:将所述网络中的任一节点中的链路状态数据库与所述新的泛洪拓扑中的链路中的任一其它邻节点同步。
可选地,在上述任一方面中,所述方法还包括:在所述节点之一检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;向除故障的本地链路外的每个链路发送所述链路状态消息,其中,所述链路与所述泛洪拓扑中的所述节点相连。
可选地,在上述任一方面中,所述方法还包括:接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;通过将所述节点的链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路;当所述故障的本地链路处于所述泛洪拓扑中,且所述节点到发出所述链路状态消息的节点的跳数小于指定数量时,将所述链路状态消息中接收的链路状态发送到除所述故障的本地链路外的链路,所述链路与所述节点相连。
可选地,在上述任一方面中,所述方法还包括:在所述节点之一检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;向所述泛洪拓扑中除所述故障的本地链路外的每个节点链路发送所述链路状态消息,所述泛洪拓扑包括邻节点的备选连接上的本地链路。
可选地,在上述任一方面中,所述方法还包括:接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;通过将所述节点的链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路;向所述泛洪拓扑中除所述故障的本地链路外的每个节点链路发送所述链路状态消息,所述泛洪拓扑包括邻节点的备选连接上的本地链路。
可选地,在上述任一方面中,所述方法还包括:接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;通过从所述本地链路的两个端节点接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障;向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
可选地,在上述任一方面中,所述方法还包括:在检测到本地链路中的邻节点故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示本地节点故障;向除故障的本地链路外的每个链路发送所述链路状态消息,其中,所述链路与所述泛洪拓扑中的所述节点相连。
可选地,在上述任一方面中,所述方法还包括:在检测到本地链路中的邻节点故障时,接收链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示无本地节点故障;通过接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障;向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
可选地,在上述任一方面中,所述方法还包括:在检测到本地链路中的邻节点故障时,接收链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示本地节点故障;通过接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障,设置所述链路状态消息的所述第二标志表示本地节点故障;向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
可选地,在上述任一方面中,所述方法还包括:检测到两个或两个以上邻节点故障;在所述节点检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;向所述泛洪拓扑中除故障的本地链路外的每个节点链路发送所述链路状态消息。
可选地,在上述任一方面中,所述方法还包括:检测到两个或两个以上邻节点故障;接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;通过将所述链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路和所述两个或两个以上邻节点;向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
根据本发明的再一个方面,提供了一种用于网络路径计算和建立的设备,其特征在于,包括:非瞬时性存储器,所述存储器包括指令;一个或多个处理器,与所述存储器进行通信,其中,所述一个或多个处理器执行所述指令以:计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示,以及计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,使得所述链路状态消息标识所述网络中的故障;通过使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑,解决了所述网络中的故障问题。
根据本发明的又一个方面,提供了一种非瞬时性计算机可读介质,其特征在于,所述非瞬时性计算机可读介质存储用于网络中故障恢复的计算机指令,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示,以及计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,使得所述链路状态消息标识所述网络中的故障;通过使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑,解决了所述网络中的故障问题。
提供本发明内容是为了以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本发明内容的目的旨在识别权利要求书所要求的主题的关键特征或必要特征,也并非旨在帮助确定所要求的主题的范围。所要求的主题不限于解决背景技术中指出的任何或所有缺点的实现方式。
附图说明
本发明的各个方面以示例方式说明,并且不受附图的限制,附图的相同附图标记表示相同的元件。
图1示出了泛洪网络拓扑的示例。
图2A示出了OSPF网络拓扑的示例性实施例。
图2B至图2D示出了分裂的泛洪拓扑的示例同步。
图3A至图3C示出了在关键链路或节点故障期间扩展链路状态消息的报文格式。
图4A至图4C示出了将分裂的部件连接成单个部件的示例。
图5至图16示出了本发明实施例提供的用于备份路径的消息。
图17至图24示出了链路中的备份路径的类型长度值。
图25为网络中故障恢复的示例性流程图。
图26示出了路由器的实施例。
图27示出了通用网络组件或计算机系统的示意图。
具体实施方式
下文结合附图来描述本发明,所述附图总体上示出了需要注意的地方。
该技术涉及对泛洪拓扑中链路和节点的备份路径的计算,使得当一个或多个链路或节点发生故障时,可以通过将链路状态通告泛洪到网络中的节点来检测故障并快速解决故障问题。
从网络域中的一个节点向所有其它节点发送链路状态消息(例如,链路状态通告或链路状态协议数据单元)称为泛洪。根据所公开的机制,需要恢复网络故障(即,链路和/或节点故障)。通常,每个节点通过在泛洪拓扑中发送链路状态消息来泛洪网络,而不会在泛洪拓扑中不包括的网络链路中发送这些消息。例如,泛洪拓扑可以生成为连接节点的链路树 (例如,生成树)。该链路树允许链路状态消息(例如链路状态通告(link stateadvertisement, LSA)或链路状态协议(link state protocol,LSP)数据单元)泛洪到所有节点,同时确保每个节点接收泛洪后消息的单个副本。当链路或节点发生故障时,系统能够利用剩余的泛洪拓扑和备份路径(或备选连接)进行恢复。
当链路或节点发生故障时,可以通过泛洪拓扑提供备份路径。此外,当链路或节点发生故障时,与故障邻近的节点可以将链路状态消息发送给与该故障邻近的其它节点。节点还可以保留关键元件的信息。关键元件是泛洪拓扑链路/接口或节点,在发生故障时,将泛洪拓扑划分为两个或两个以上部分。在通知关键元件发生故障后,节点可以通过在新的泛洪拓扑 (不包括故障元件)中的链路上泛洪链路状态消息恢复和重新同步,以保持网络的功能。
应理解的是,本发明的现有实施例可以以许多不同的方式实现,并且权利要求范围不应理解为仅限于本文所述的实施例。相反,提供这些实施例是为了使本发明完整,并将发明性实施例概念充分传达给本领域技术人员。事实上,本发明公开旨在覆盖包括在由所附权利要求书限定的本发明公开的精神和范围内的这些实施例的替代物、修改和等同物。另外,在以下本发明实施例的详细描述中,阐述了许多特定细节以便提供透彻理解。然而,所属领域的普通技术人员将清楚,可以在没有这些具体细节的情况下实施本发明实施例。
随着越来越多的节点(例如,路由器)添加到传统的通信网络中,网络规模增大,并且可能出现可扩展性和收敛速度慢等问题。在互联网等通信网络中,自治系统(autonomoussystem,AS)可以具有由网络管理员(或代表大学、企业机构、企业部门等单个管理实体的管理员组)控制的公共路由策略(在单个网络中或一组网络中)。在互联网中,AS包括通过公共路由协议交换路由信息的路由器集合。可以为互联网上的每个AS分配一个全局唯一编号,有时也称为AS号(AS number,ASN)。
在包括具有单个区域的单个自治系统(autonomous system,AS)的网络中,每个节点需要知道所有其它节点的位置关系(即邻接关系),以便所有节点可以构建AS的拓扑图(拓扑)。节点可以通过根据一个或多个内部网关协议(Interior Gateway Protocol,IGP)在整个网络中分发(即泛洪)链路状态信息来了解彼此的邻接关系,所述内部网关协议包括但不限于:开放式最短路径优先(open shortest path first,OSPF)或中间系统(intermediate system,IS)到中间系统(intermediate system to intermediatesystem,ISIS)。具体地,参与 IGP的节点可以将描述节点自身邻接关系的链路状态消息(例如,LSA或LSP)分发给这些节点的所有邻节点。这些节点可以将接收到的LSA转发给所有邻节点(除了接收到LSA的节点)。这样可以有利于LSA在整个网络中分布,使得所有网络节点都意识到彼此的邻接关系,从而允许各个节点建立拓扑图,可以存储拓扑图并形成链路状态数据库(link state database,LSDB)。
可以在网络初始化时以及网络邻接关系改变时分发LSA,例如,添加/删除节点或节点/ 链路故障。当这种邻近变化(或状态变化)发生时,节点的LSDB可以不再与节点的网络区域内的其它节点同步。同样,与故障节点或链路不直接邻近的节点可不易检测到故障,从而无法沿备份路径正确发送链路状态以重新同步LSDB。本发明提供了一种解决这些问题和其它问题的机制。
图1示出了使用链路状态消息对网络拓扑进行泛洪的示例。网络可以包括泛洪节点102,泛洪节点102将链路状态消息泛洪到邻节点集102A中的节点108至112。节点108至112与泛洪节点102直接相连。通过将链路状态消息重新泛洪到邻节点集102B中的节点114至 118(即节点114至118的两跳邻节点),部分或全部邻节点可以作为后续泛洪节点来操作。
泛洪节点102和节点108至118可以是报文交换网络中的路由器和/或其它类型的交换节点。因此,从泛洪节点发送到邻节点102A且随后发送到两跳邻节点102B的链路状态消息可由交换节点用于根据网络内连通性的变化来更新这些节点的路由表。例如,泛洪节点102 可以检测到网络中的节点、目的地和/或链路的可达性变化。泛洪节点102可以使用开放式最短路径优先(Open Shortest Path First,OSPF)和/或中间系统到中间系统(Intermediate System to Intermediate System,ISIS)等链路状态协议,将包含可达性变化的链路状态消息泛洪到邻节点102A。当每个邻节点102A接收到链路状态消息时,邻节点可以作为泛洪节点来操作并将链路状态消息泛洪到除接收链路状态消息的节点外的邻节点102B(即,泛洪节点的两跳邻节点)。因此,链路状态消息的泛洪可用于在网络中传播链路状态消息。在节点处接收到链路状态消息之后,节点可以根据链路状态消息中传递的可达性变化重新计算一个或多个路由表中的路径。
以下文档的全部内容通过引用的方式并入本文本中:H.Chen等人于2019年1月7日发布的标题为“LS泛洪减少(LS Flooding Reduction)”的互联网工程任务组(InternetEngineering Task Force,IETF)文档(draft-cc-lsr-flooding-reduction-01),所述文档的全部内容通过引用的方式并入本文本中。
图2A示出了OSPF网络拓扑的示例性实施例。在网络拓扑中,节点之间的链路由对网络进行泛洪产生的线条(包括虚线和暗线)来表示。一个网络拓扑可以构造许多不同的泛洪拓扑。连接给定网络拓扑中所有节点的链是一个泛洪拓扑。连接所有节点的圆圈是另一种泛洪拓扑。连接所有节点的树也是一个泛洪拓扑。另外,树加上树的某些叶子和树的分支节点之间的连接是一个泛洪拓扑。泛洪拓扑定义为网络拓扑中每个节点的可达性与网络拓扑相同的子图或子网。
当构造泛洪拓扑时,例如图2A中描述的泛洪拓扑,应考虑以下参数:(1)链路数:泛洪拓扑中的链路数是减小链路状态泛洪量的关键因素。一般情况下,链路数越少,链路状态泛洪量就越小;(2)直径:泛洪拓扑中最远的两个节点之间的最短距离(即泛洪拓扑的直径)是缩短网络收敛时间的关键因素。直径越小,收敛时间越短;(3)冗余:泛洪拓扑的冗余是指对泛洪拓扑中部分链路和节点故障的容许。如果泛洪拓扑因为某些故障分裂,则不能容许这些故障。一般情况下,泛洪拓扑中的链路数越多,泛洪拓扑对故障的容许度就越大。
类似地,对于给定的网络拓扑,构造泛洪拓扑的方式有很多种,包括但不限于:(1)集中模式:网络中的一个节点构建泛洪拓扑,并将泛洪拓扑泛洪到网络中的所有其它节点(注:对泛洪拓扑进行泛洪可能会增加泛洪。用于对泛洪拓扑进行泛洪的流量应减至最小);(2) 分布模式:网络中的每个节点使用相同的算法自动计算泛洪拓扑(泛洪拓扑不进行泛洪); (3)静态模式:泛洪拓扑链路中的链路是静态配置的。应注意,由节点构造的泛洪拓扑本质上是动态的,因此当基拓扑(整个拓扑图)发生变化时,重新计算/重构泛洪拓扑(子图),以确保可在基拓扑中可达的任一节点在泛洪拓扑中也可达。
所描绘的示例示出了在一个结构中由12个链路表示的泛洪拓扑。具体地,示出泛洪拓扑中的链路在节点L1和R1之间;L1和R2之间;L1和R3之间;R1和R11之间;R2和 R21之间;R2和R22之间;R3和R22之间;R3和R31之间;R3和R32之间;R11和R32 之间;R11和R111之间;R11和R21之间,其中L定义为本地节点,R定义为远端节点。对于本地节点(L)与多个远端节点(R)之间的链路,例如,本地节点L1分别与远端节点 R1、R2和R3之间的3个链路,对本地节点L1进行编码,并且可以采用相同或不同的方式对远端节点R1、R2和R3进行编码。一旦泛洪拓扑中的所有链路都已编码,编码后的链路就可以泛洪到网络中的每个节点。在接收到编码链路后,每个节点对链路进行解码并创建和 /或更新泛洪拓扑。编码在2019年9月3日提交的相关申请案PCT/US19/49372中进行了描述,其全部内容通过引用的方式并入本文本中。
当图2A的泛洪拓扑中的链路和/或节点发生故障时,这些节点的LSDB将不再同步。为了重新同步各节点的LSDB,可以计算新的泛洪拓扑。在分布模式下,网络中的任一节点都可以生成新的泛洪拓扑。在集中模式下,节点可以从主节点接收新的泛洪拓扑。无论是哪种情况,对于与节点相连的本地链路,如果(1)链路不在当前泛洪拓扑中,而是在新的泛洪拓扑中,并且(2)在计算或接收当前泛洪拓扑后,链路或节点发生故障,启动重新同步过程。这由节点向链路中的邻节点发送节点接收(或发出)的链路状态的增量(或状态)来实现,详细解释可以参照下文关于图2B至图2D中的描述。
如本文所定义,链路状态的增量(或状态)是可以与邻节点不同步的任何链路状态。在一个实施例中,链路状态的增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的链路状态。在另一实施例中,链路状态的增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的发生变化的链路状态。给定时间段在此定义为由故障导致的发生变化的链路状态跨越泛洪拓扑的最大时间,即计算新的泛洪拓扑的最大时间,和/或将新的泛洪拓扑(以集中模式式)分布到网络区域中每个节点的最大时间之和。在又一实施例中,给定时间段设置为常数,例如10秒。在这种情况下,节点向链路中的邻节点发送链路状态(即,节点在过去 10秒内接收或发出的链路状态)的增量。节点可以向链路中的邻节点发送过去10秒内接收或发出的发生变化的链路状态。即使由于链路和/节点故障导致泛洪拓扑分裂的情况下,这种重新同步将确保LSOB在网络区域中的所有有效节点之间同步。
图2B至图2D示出了分裂的泛洪拓扑的示例同步。为了便于描述,假设在图2A的泛洪拓扑中最初有两个链路发生故障。例如,如果链路L1-R1和R1-R11几乎同时发生故障,则当前的泛洪拓扑分裂为两部分。第一部分用远端节点R1表示,第二部分用网络的剩余节点表示,如图2B所示。在计算新的泛洪拓扑之前,网络拓扑发生了进一步的变化,例如远端节点R2和R3之间的链路发生故障,如图2C所示。链路R2-R3所连接的远端节点R2和R3 发出各自的链路状态(link state,LS)以反映变化。例如,远端节点R2发出LS(例如, OSPF中的路由器LSA),包含5个链路R2-L1、R2-R1、R2-R11、R2-R21、R2-R22(由于链路R2-R3发生故障,因此不包括在内)。远端节点R3发出LS,包含四个链路R3-L1、R3- R22、R3-R31和R3-R32(由于链路R3-R2发生故障,因此不包括在内)。然后,LS通过当前泛洪拓扑分布到网络中的除远端节点R1外的所有节点(因为LS不能通过当前的泛洪拓扑分布到远端节点R1)。在新的泛洪拓扑计算完成后,如图20所示,远端节点R1和R2之间的链路不再存在于当前泛洪拓扑中。在新的泛洪拓扑中,远端节点R2向远端节点R1发送增量链路状态,即当前泛洪拓扑分裂时,R2接收收到或发出的LS(上述五个链路)。
图3A至图3C示出了在关键链路或节点故障期间扩展链路状态消息的报文格式。关键链路(或接口)是指泛洪拓扑中的一个或多个节点之间的链路,当链路故障时,泛洪拓扑将分裂。关键节点是指泛洪拓扑中连接一个或多个节点的节点,当该节点发生故障时,泛洪拓扑将分裂。当泛洪拓扑中的关键链路或节点发生故障时,通过从泛洪拓扑中移除故障的链路和节点,剩余的泛洪拓扑(即泛洪拓扑中的一个拓扑)分裂成多个部分。关键链路/节点的备份路径将分裂的部分连接成单个拓扑。也就是说,备份路径是链路的路径或序列,所述路径或序列在与节点相交的路径的两个端节点之间提供备选连接。使用备份路径和剩余的泛洪拓扑,链路状态(link state,LS)可以快速泛洪到网络中的每个有效节点(通过有效链路),以解决故障问题并重新连接分裂的泛洪拓扑(即从网络故障中恢复)。在一个实施例中,故障链路之间的两个端节点可以通过发送LS来向其它节点表示链路故障。设置所述LS的标志(例如,位标志)表示故障。在另一个实施例中,当沿备份路径的节点接收到LS时,该节点能够快速确定已经发生链路故障,并使用故障链路的备份路径和剩余拓扑来泛洪LS(以及任何其它LS)。
图3A和图3B示出了OSPF中1类路由器LSA的扩展报文格式(v2和v3)。节点(如路由器)为其所属的每个区域发出一个路由器LSA。该LSA描述了收集到的路由器到该区域的链路状态。LSA在特定的网络区域中泛洪(除非该LSA也是其它区域的网络指定的路由器)。通过在报文中设置标志,节点还通过设置位标志B来表示该节点是一个区域边界路由器,或者通过设置该节点的路由器LSA中的位标志E来表示该节点是一个AS系统边界路由器。也可以设置位标志V表示路由器是一个或多个完全相邻的虚拟链路的端点,所述虚拟链路的所述区域为传输区域。在一个实施例中,扩展标志以包括两个新的标志302-标志L 和N。标志L在OSFP路由器LSA中定义如下:当与该路由器相连的本地链路故障时,路由器将LSA中的标志L设置为“1”;当未检测到本地链路故障时,将LSA中的标志L设置为“0”。OSFP路由器LSA中定义了标志N,当路由器的邻节点发生故障,并且检测到该节点故障时,LSA中的标志N设置为“1”;当未检测到邻节点故障时,将LSA中的标志N设置为“0”。图3A示出了OSPFv2中1类LSA的扩展报文格式,图3B示出了OSPFv3中1 类LSA的扩展报文格式。
LSA除了位标志外,还包括以下字段:路由器链路数表示通向该区域的集合或路由器链路总数。附加字段用于描述每个路由器链路:每个路由器链路都经过“分类”。类型字段表示正在描述的链路类型。该链路可以是通向传输网络、另一路由器或基层网络的链路。描述路由器链接的所有其它字段的值取决于链路的类型。例如,每个链路都有一个关联的32比特的链路数据字段。链路ID标识此路由器链路所连接的对象。当与同样发出LSA的对象(即另一路由器或传输网络)相连时,链路ID等于相邻LSA的链路状态ID。这在路由表计算过程中为在LSDB中查找相邻LSA提供密钥。链接数据值还取决于链接的类型字段。 TOS编号是为该链路给出的不同TOS度量的数量,不包括所需的链路度量(称为TOS 0度量)。例如,如果未给出额外的TOS度量,则该字段设置为0。最后,TOS度量是使用此路由器链路的成本。
参考图3C,图3C示出了ISIS的扩展。如Ginsberg等人于2016年10月发布的题为“用于通告路由器信息的IS-IS扩展(IS-IS Extensions for Advertising RouterInformation)”的互联网工程任务组(Internet Engineering Task Force,IETF)文档中所解释,所述文档的全部内容通过引用的方式并入本文本中,一个新的可选中间系统到中间系统(Intermediate System to Intermediate System,IS-IS)的类型长度值(Type-Length-Value,TLV),命名为 CAPABILITY,由多个子TLV组成,该值允许路由器在IS-IS级别或整个路由域内通告自己的能力。ISIS路由器能力TLV的类型由1个八位字节组成,其中1个八位字节表示值字段的字节数,以及路由器ID的4个八位字节开始的可变长度值字段,表示TLV的来源,后面是标志的1个八位字节。图3C示出了标志的八位字节,具有两个新的标志302-标志Land N。标志Land N如上文在OSFP示例中解释的那样设置。
图4A至图4C示出了将分裂的部件连接成单个部件的示例。分裂成多个部分的泛洪拓扑的连接可以使用以下四种方法中的任一种实现:近似方法、将链路故障视为节点故障的方法、利用链路故障和节点故障的方法或考虑邻节点故障的方法。
近似方法
当一个节点检测到其本地链路故障(即与该节点相连的链路发生故障)时,该节点发出一个链路状态(OSPF中的LSA或ISIS中的LSP),标志L设置为“1”。链路状态被发送到其它链路(除故障的本地链路外)的每个节点。链路状态反映了链路故障,即链路状态不包含故障链路。当节点接收到标志L=1的链路状态时,通过比较自己LSDB中对应的链路状态和接收到的标志L来判断故障链路,故障链路由本节点LSDB中的链路状态(不是刚接收到的链路状态中)的链路确定。如果故障链路处于泛洪拓扑中,并且从节点到链路状态发出者的跳数小于指定数量,如4跳,则将接收到的链路状态发送到除该接收链路状态的链路外的其它链路的每个节点。
在一个实施例中,当链路或节点发生故障时,距离故障1跳内的每个节点(即,故障链路或节点)向除接收链路状态的链路外的每个链路发送该节点接收或发出的链路状态。例如,参考图4A,当L1和R1之间的链路发生故障时,距离故障1跳内的每个节点(即故障链路L1-R1)向除接收链路状态的链路外的每个链路发送该节点接收或发出的链路状态。在这种情况下,链路状态将发送到本地节点和远端节点L1、R1、R11、R2和R3,因为它们距离故障链路L1-R2只有一跳。其它节点均未接收到链路状态。
节点故障为链路故障
在一个实施例中,本地节点检测到链路故障。当节点检测到本地链路故障时,本地链路中的邻节点发生故障。但是节点无法确定是本地链路故障还是邻节点故障。因此,该节点认为该链路故障为邻节点故障。当检测到本地链路故障时,该节点发出一个链路状态(OSPF 中的LSA或ISIS中的LSP),标志L设置为“1”。链路状态反映了链路故障,但不包含故障链路本身。在一个实施例中,节点假设邻节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。然后,链路状态被发送到泛洪拓扑中的其它链路 (除故障的本地链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路 (除故障的本地链路外)的每个节点。
在另一个实施例中,节点接收标志L=1的LSA,但是无法确定链路的远端。因此,当节点接收到标志L=1的链路状态时,通过比较节点LSDB中对应的链路状态和接收到的链路状态,确定故障链路或节点。故障链路由节点LSDB中处于链路状态(不是刚接收到的链路状态)的链路确定。故障链路是节点LSDB中处于链路状态(不是刚接收到的链路状态)的链路。故障节点是故障链路另一端的节点(一端是发出链路状态的节点)。在一个实施例中,节点假设故障节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止,并将链路状态发送给泛洪拓扑中的其它链路(除接收链路状态的链路外)。在另一个实施例中,节点将链路状态发送到其它链路(除接收链路状态的链路外)的每个节点。
在另一个实施例中,节点接收标志L=1的LSA,并确定链路的远端已经发生故障或保持有效。因此,当节点接收到L=1的链路状态时,节点确定故障链路,而不是链路中的故障节点。故障链路是节点LSDB中处于链路状态(不是接收到的链路状态)的链路。此外,由于在从链路的两个端节点接收到链路状态时,未在链路上检测到故障节点,这表示同一链路已经发生故障。在一个实施例中,节点假设故障链路的备份路径中的本地链路在当前泛洪拓扑中(在这种情况下,从泛洪拓扑中删除之前假设的故障节点的备份路径中的本地链路,因为该节点没有发生故障),直到计算出或接收到新的泛洪拓扑为止。然后,链路状态被发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
存在用于计算和存储备份路径的几个不同的实施例。在一个实施例中,链路(例如,故障链路)的备份路径和节点(例如,故障节点)的备份路径由在计算或接收新的泛洪拓扑时接收链路状态的节点计算。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在节点的LSDB中)。另一方面,如果备份路径不经过该节点,并且节点LSDB中没有存储链路和节点的备份路径,则节点存储计算链路和节点的备份路径的指示。
在一个实施例中,链路(例如,故障链路)的备份路径和节点(例如,故障节点)的备份路径由主节点计算并泛洪,接收链路状态的节点还接收备份路径。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在节点的LSDB中)。另一方面,如果备份路径不经过该节点,并且节点LSDB中没有存储链路和节点的备份路径,则节点存储接收链路和节点的备份路径的指示。
在又一实施例中,链路的备份路径由接收链路状态的节点计算。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在节点的LSDB中)。如果计算出的备份路径不经过该节点,并且节点LSDB中没有存储链路的备份路径,则节点存储指示计算链路的备份路径的指示。当网络拓扑发生变化时,LSDB中保存的备份路径和指示被删除或更新。节点(例如,故障节点)的备份路径由接收链路状态的节点计算,并且如果备份路径经过该节点,该节点存储备份路径(例如,存储到节点的LSDB中)。如果计算出的备份路径不经过该节点,并且节点LSDB中没有存储节点的备份路径,则节点存储计算节点的备份路径的指示。当网络拓扑发生变化时,LSDB中保存的备份路径和指示被删除或更新。
在另一个实施例中,节点不需要计算网络区域中的每个链路或节点的备份路径。相反,节点可以仅计算备份路径所经过的每个链路或节点的备份路径。对于备份路径不经过的链路或节点,该节点不需要进行计算。
在计算和存储备份路径的一个示例中,节点开始计算每个链路或距离节点m跳的其它节点的备份路径,其中m从0开始,递增1。当m达到指定数目(例如,8)时,使得为每个链路和距离计算节点m跳的其它节点计算出的备份路径不经过该节点。节点停止计算其它链路和其它节点的备份路径(因为其它链路和节点的备份路径不会经过计算节点)。
图4B和图4C示出了将链路故障视为节点故障的示例性实施例。参考图4B,图示的网络拓扑示出了链路L1-R1的备份路径(backup path,BP)是链路L1-R2-R1。当链路L1-R1发生故障时,故障链路L1-R1的备份路径中的链路暂时处于泛洪拓扑(即:故障链路L1-R1的备用路径L1-R2-R1中的链路暂时添加到泛洪拓扑中),直到计算出或接收到新的泛洪拓扑为止。例如,如图4C所示,由于链路R1-R2在备份路径中,但不在泛洪拓扑中,因此暂时添加链路R1-R2(用R1和R2之间的虚线表示)。另一方面,泛洪拓扑中已经存在链路L1- R2。因此,暂时不需要在备份路径中添加链路(即链路存在)。
当远端节点R1检测到本地链路R1-L1发生故障时,远端节点R1发出链路状态(OSPF中的LSA或ISIS中的LSP),标志L设置为“1”,并且将远端节点R1与R11相连,远端节点R1与R2相连(由于链路R1-L1发生故障,因此不包括在内)。远端节点R1在泛洪拓扑中的故障链路R1-L1的备份路径中暂时添加链路R1-R2,并将链路状态发送到泛洪拓扑中的每个链路(即,链路R1-R11,链路R1-R2)。类似地,当链路L1检测到本地链路L1-R1发生故障时,会发起链路状态(OSPF中的LSA或ISIS中的LSP),标志L设置为“1”,并将 L1与R2相连,L1与R3相连(由于链路L1-R1发生故障,因此不包括在内)。故障链路 R1-L1的备份路径中的链路L1-R2在泛洪拓扑中已经存在,不需要添加。然后,链路L1将链路状态发送到泛洪拓扑中的每个链路(即链路L1-R2和L1-R3)。
当R2接收到远端节点R1或链路L1发出的链路状态时,所述链路状态表示链路R1-L1 或L1-R1发生故障,则远端节点R2将在泛洪拓扑中的故障链路R1-L1的备份路径中暂时添加链路R2-R1。然后,远端节点R2将新接收(或发出)的链路状态发送到泛洪拓扑中的每个链路(除接收链路状态的链路外)。例如,当链路R2-R3在计算出或接收到新的泛洪拓扑之前发生故障时,远端节点R2发出包含5个链路R2-L1、R2-R1、R2-R11、R2-R21和R2- R22(除链路R2-R3)的链路状态,并且将链路状态发送到泛洪拓扑中的每个链路(即链路 R2-L1、R2-R1、R2-R21和R2-R22)。
链路故障和节点故障
在一个实施例中,节点检测本地链路和邻(例如,1跳)节点故障。当本地链路发生故障时,标志L设置为“1”,链路状态表示链路故障(非节点故障)。在一个示例中,当节点检测到本地链路故障时,该节点发出一个链路状态(OSPF中的LSA或ISIS中的LSP),标志L设置为“1”。此时链路状态只反映链路故障,不反映故障的链路。在一个实施例中,节点假设链路的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。计算出或接收到新的泛洪拓扑之后,节点将链路状态发送到泛洪拓扑中的其它链路 (除故障的本地链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路 (除故障的本地链路外)的每个节点。在又一个实施例中,如果故障链路不是关键链路,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路外)的每个节点。
在另一个实施例中,当节点检测到本地链路中的邻节点发生故障时,该节点发出一个链路状态(OSPF中的LSA或ISIS中的LSP),标志L设置为“1”,标志N设置为“1”。和之前一样,链路状态只反映链路故障,不反映故障的链路。在一个实施例中,节点假设邻节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路外)的每个节点。在一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路外)的每个节点。在再一个实施例中,如果故障链路不是关键链路,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路外)的每个节点。
在再一个实施例中,当节点接收到标志L设置为“1”且标志N设置为“0”的链路状态时,节点检测到链路中的故障链路(没有故障节点)。这种情况下,故障链路是节点 LSDB中处于链路状态(不是接收到的链路状态)的链路。在一个实施例中,节点假设故障链路的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。在计算出或接收到新的泛洪拓扑之后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在又一个实施例中,如果故障链路不是关键链路,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
在再一个实施例中,当节点接收到标志L设置为“1”且标志N设置为“1”的链路状态时,节点检测到链路中的故障链路和故障节点。故障链路是节点LSDB中处于链路状态 (不是接收到的链路状态)的链路。故障节点是故障链路另一端的节点(一端是发出链路状态的节点)。在一个实施例中,节点假设故障节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在又一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在再一个实施例中,如果故障节点不是泛洪拓扑中的关键节点,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
邻节点故障
在一个实施例中,当两个或两个以上邻节点同时(或几乎同时)发生故障时,导致泛洪拓扑分裂为两个或两个以上部分,计算节点的备份路径以将分裂部分连接为单个部分。
在一个示例中,当节点检测到本地链路故障时,该节点发出一个链路状态(OSPF中的 LSA或ISIS中的LSP),标志L设置为“1”。链路状态反映了链路故障,即链路状态不包含故障链路。在一个实施例中,节点假设邻节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路外)的每个节点。在再一个实施例中,如果故障链路不是关键链路,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路外)的每个节点。
在另一个示例中,当节点接收到标志L=1的链路状态时,通过比较节点LSDB中对应的链路状态和接收到的链路状态,确定故障链路和节点。这种情况下,故障链路是节点LSDB 中处于链路状态(不是接收到的链路状态)的链路。故障节点是故障链路另一端的节点(一端是发出链路状态的节点)。在一个实施例中,节点假设故障节点的备份路径中的本地链路在当前泛洪拓扑中,直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外) 的每个节点。在再一个实施例中,如果故障节点不是关键节点,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
在另一示例中,当节点接收到标志L设置为“1”的链路状态时,节点检测故障链路,而不是链路中的故障节点。故障链路是节点LSDB中处于链路状态(不是接收到的链路状态)的链路。链路中节点的非故障通过从链路的两个端节点接收链路状态来确定,该链路状态表示同一个故障链路。在一个实施例中,节点假设故障链路的备份路径中的本地链路在当前泛洪拓扑中(从泛洪拓扑中删除之前假设的故障节点的备份路径中的本地链路,因为该节点没有发生故障),直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在又一个实施例中,如果故障链路不是关键链路,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
在再一个实施例中,当节点N接收到标志L设置为“1”的链路状态时,节点检测故障链路以及与另一故障节点N2相邻的另一节点N1。这种情况下,故障链路是节点LSDB中处于链路状态(不是接收到的链路状态)的链路。故障节点N1是故障链路另一端的节点(一端是发出链路状态的节点)。故障节点N2是之前已被检测为已保存且与故障节点N1相邻的故障节点。根据需要计算邻节点故障的备份路径。在一个实施例中,节点N假设故障节点的备份路径中的本地链路在当前泛洪拓扑中(从泛洪拓扑中删除故障节点N1的备份路径中的本地链路),直到计算出或接收到新的泛洪拓扑为止。然后,节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在另一个实施例中,节点将链路状态发送到其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。在再一个实施例中,如果故障节点不是关键节点,则节点将链路状态发送到泛洪拓扑中的其它链路(除故障的本地链路或接收链路状态的链路外)的每个节点。
在一个实施例中,当计算出或接收到新的泛洪拓扑时,由接收链路状态的节点计算(同时或几乎同时发生故障)两个或两个以上邻节点的备份路径。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在LSDB中)。如果计算出的备份路径不经过该节点,并且节点LSDB中没有存储备份路径,则节点存储计算这些邻节点的备份路径的指示。
在另一个实施例中,另个或两个以上邻节点的备份路径由主节点计算并泛洪,接收链路状态的节点还接收备份路径。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在节点的LSDB中)。如果接收到的备份路径不经过该节点,并且节点LSDB中没有存储这些节点的备份路径,则节点存储表示接收/计算这些邻节点的备份路径的指示。
在再一个实施例中,不计算或接收(同时或几乎同时发生故障)两个或两个以上邻节点的备份路径。相反,节点计算故障的邻节点的备份路径,并且如果备份路径经过节点,则存储备份路径(例如,存储在LSDB中)。如果计算出的备份路径不经过该并且节点LSDB中没有存储邻节点的备份路径,则节点存储计算这些邻节点的备份路径的指示。当计算出或接收到新的泛洪拓扑时,LSDB中存储的备份路径和指示将被删除或更新。
在一个其它实施例中,(同时或几乎同时发生故障)两个或两个以上邻节点的备份路径由接收链路状态的节点计算。如果备份路径经过该节点,则该节点存储备份路径(例如,存储在LSDB中)。如果计算出的备份路径不经过该节点,并且节点LSDB中没有存储备份路径,则节点存储计算这些邻节点的备份路径的指示。当网络拓扑发生变化时,LSDB中保存的备份路径和指示被删除或更新。
备份路径编码
区域的主节点在计算泛洪拓扑时,可能会为泛洪拓扑中的关键链路计算出一个备份路径或多个备份路径。当关键链路故障时,链路状态可以通过一个备份路径和泛洪拓扑中的其它链路分发到区域中的每个节点。另外,该主节点可以为一个节点计算出一个备份路径,也可以计算出多个备份路径。当该节点发生故障时,通过备份路径和泛洪拓扑中的链路,将链路状态分发到区域中的其它节点。
尽管不是本发明的重点,但是图5至图24示出了对备份路径进行编码的各种示例。对备份路径进行编码分为单独编码和一体化编码。在单独编码中,将备份路径编码在单独的新消息中,其中,需要泛洪拓扑的消息。一体化编码将备份路径一体化到泛洪拓扑的链路编码中,其中,一个消息包含泛洪拓扑和备份路径。
参考图5,节点的备份路径可以用节点索引编码和节点备份路径编码表示。节点索引编码与本地节点索引编码类似。备份路径编码的格式如图所示。所述格式包括1比特的标志K (关键节点标志)、3比特的NNBP字段(节点的备份路径的数量),以及每个备份路径编码,所述备份路径编码由表示路径的长度(即,节点的数量)的4比特的路径长度PLEN,以及沿该路径的节点序列的编码,例如节点PN1……PNn的编码组成。每个节点的编码可以使用本地节点的编码,包括编码节点索引大小指示(encoded node index size indication,ENSI) 和压缩节点索引(compact node index,CNI)。
参考图6,沿路径的节点序列的另一种编码使用用于路径中的所有节点的一个编码节点索引大小指示(encoded node index size indication,ENSI)。图中示出了节点的备份路径编码。
参考图7,定义了称为节点备份路径TLV的新TLV。节点备份路径TLV可以包括多个节点及其备份路径。每个节点都用节点的索引编码表示,索引编码之后是节点的备份路径编码。
参考图8,泛洪拓扑中链路的备份路径的编码包括链路编码,如链路索引编码和链路备份路径编码,类似于本地节点编码。编码包括编码链路索引大小指示(encoded linkindex size indication,ELSI)和压缩链路索引(compact link index,CLI)。CLI的格式包括1比特的标志C(关键链路标志)、2比特的NLB字段(链路的备份路径的数量),以及每个备份路径编码,所述备份路径编码由表示路径的长度(即,节点的数量)的3比特的路径长度PLEN,以及沿该路径的节点序列的编码,例如节点PN1……PNm的编码组成。待编码路径中不需要链路的两端(即链路的本地节点和远端节点)。每个节点的编码可以使用本地节点的编码,包括编码节点索引大小指示(encoded node index size indication,ENSI)和压缩节点索引(compact node index,CNI)。
参考图9,沿路径的节点序列的编码使用用于路径中的每个节点的一个编码节点索引大小指示(encoded node index size indication,ENSI)。图中示出了链路的备份路径编码。
参考图10,如图所示定义了称为链路的备份路径TLV的新TLV。该TLV可以包括多个链路(链路1、链路2等)及其备份路径。每个链路都用链路的索引编码表示,索引编码之后是链路的备份路径编码。
参考图11,对于OSPFv2,使用包含节点的备份路径TLV和链路的备份路径TLV的新的不透明类型的不透明LSA(TBD3),将备份路径从区域的主节点泛洪到区域的所有其它节点。
参考图12,对于OSPFv3,使用包含泛洪拓扑链路TLV的新LSA功能码的区域范围LSA(TBD4),将泛洪拓扑从区域的主节点泛洪到区域的所有其它节点。
参考图13,本地节点和多个远端节点之间的链路可以编码为本地节点,然后是远端节点。例如,本地节点LN1和三个远端节点RN10、RN20和R30之间的三个链路被编码为45个比特(即5.625个字节)。
结合图14,对于区域的主节点计算的泛洪拓扑,编码可以由泛洪拓扑中的每个链路表示。所示的链路编码的的格式的TLV可以包括在LSA中以表示泛洪拓扑(floodingtopology, FT),并将该FT泛洪到区域中的每个节点。
参考图15,对于OSPFv2,使用包含泛洪拓扑的链路TLV的新的不透明类型的不透明LSA(TBD6),将泛洪拓扑从区域的主节点泛洪到区域的每个其它节点。
参考图16,对于OSPFv3,使用包含泛洪拓扑链路TLV的新LSA功能码的区域范围LSA(TBD7),将泛洪拓扑从区域的主节点泛洪到区域的每个其它节点。
参考图17,本地节点和备份路径可以以图示的格式进行编码,该格式是本地节点(例如本地节点LN1)编码,然后是本地节点的备份路径编码,与上文描述的节点的备份路径编码相同。
参考图18,远端节点和备份路径可以以图示的格式进行编码,该格式是远端节点(例如,远端节点RN10)索引值,然后是远端节点的备份路径编码,与上文描述的节点的备份路径编码相同。
参考图19,本地节点和多个远端节点之间的链路、每个节点的备份路径以及每个链路的备份路径可以以图示的格式进行编码。
参考图20,例如,所示数据结构表示:本地节点LN1与三个远端节点RN10、RN20和RN30之间的三个链路;节点LN1的备份路径,节点RN10的备份路径,节点RN20的备份路径和节点RN30的备份路径。
参考图21,在另一个示例中,以下数据结构表示:本地节点LN1与三个远端节点RN10、RN20和RN30之间的三条链路;节点LN1的备份路径,节点RN10的备份路径,节点RN20的备份路径和节点RN30的备份路径;节点LN1和节点RN10之间的链路的备份路径,节点LN1和节点RN20之间的链路的备份路径和节点LN1和节点RN30之间的链路的备份路径。
参考图22,如图所示定义了称为链路的备份路径TLV的新TLV。新TLV包括多个如上所述的节点的备份路径编码的链路。该TLV既包含泛洪拓扑,也包含泛洪拓扑中链路和节点的备份路径。
参考图23,对于OSPFv2,使用包含链路的备份路径TLV的新的不透明类型的不透明LSA(TBD9),将泛洪备份路径拓扑从区域的主节点泛洪到区域的每个其它节点,所述不透明LSA称为泛洪备份路径拓扑(Flooding Topology with Backup Path,FTBP)的不透明LSA。
参考图24,对于OSPFv3,使用包含链路的备份路径TLV的新LSA功能码(TBDa)的区域范围LSA,将泛洪备份路径拓扑从区域的主节点泛洪到区域的每个其它节点。
图25为计算网络中路径的示例性流程图。在实施例中,流程图可以是计算机实现的方法,至少部分地由各种附图中示出的并且如本文所述硬件和/或软件组件执行。在一个实施例中,所公开的流程可以由图1、图2A至图20等中公开的节点执行。在一个实施例中,由一个或多个处理器(如处理器2620或2702)执行的软件组件执行该流程的至少一部分。
该流程从步骤2502开始,其中,网络中的节点(例如主节点或本地节点)计算由网络中的节点之间的链路表示的泛洪拓扑,以及泛洪拓扑中的链路和节点的备选连接。在步骤 2504中,检测到泛洪拓扑发生变化,所述变化表示网络出现故障,导致泛洪拓扑分裂。然后,在步骤2506中,将链路状态消息泛洪到泛洪拓扑的剩余部分中的每个节点和备选连接使得链路状态消息标识网络中的故障。在步骤2508中,通过使用链路状态消息中标识的泛洪拓扑的剩余部分和备选连接来连接分裂的泛洪拓扑,解决了网络中的故障问题。
图26示出了路由器的实施例。例如,节点(例如,路由器)2600可以是图1和图2中描述的任何节点或路由器。节点2600可以包括:多个输入/输出端口2610/2630和/或接收器(receiver,Rx)2612和发送器(transmitter,Tx)2632,用于从其它节点接收和发送数据;处理器2620,用于处理数据并确定将数据发送到哪个节点;以及存储器。节点2600还可以生成和分发LSA以对网络的各种拓扑和/或区域进行描述和泛洪。尽管图示为单个处理器,但处理器2620不限于此,并且可以包括多个处理器。处理器2620可以实现为一个或多个中央处理单元(central processing unit,CPU)芯片、核心(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specificintegrated circuit,ASIC)和/或数字信号处理器(digital signal processor,DSP),和/或可以是一个或多个ASIC的一部分。此外,处理器2620可以使用硬件、软件或两者实现。处理器2620包括OSPF模块2621,所述OSPF模块2621实现所公开的实施例。因此,包括 OSPF模块2621为网络设备2600的功能提供了实质性改进,并且实现了节点2600到不同状态的转换。或者,存储器2622将OSPF模块2621存储为指令,并且处理器2620执行这些指令。
存储器2622可用于存储单结构、网络拓扑等参考结构。尽管图示为单个存储器,但存储器2622可实现为只读存储器(read only memory,ROM)、随机存取存储器(randomaccess memory,RAM)或二级存储器(例如,用于非易失性数据存储的一个或多个磁盘驱动器或磁带驱动器)的组合。
上述方案可以在任何通用网络组件上实现,例如具有足够的处理能力、内存资源和网络吞吐能力的计算机或网络组件,以处理施加在该组件上的必要工作负载。
图27示出了通用网络组件或计算机系统的示意图。通用网络组件或计算机系统2700包括:处理器2702(可以称为中央处理器单元或CPU),所述处理器2702与包括二级存储器 2704的存储设备、ROM 2706、RAM 2708等存储器、输入/输出(input/output,I/O)设备2710和互联网或任何其它公知类型的网络等网络2712进行通信,所述网络2712可以包括网络连接设备,例如网络接口。尽管图示为单个处理器,但处理器2702不限于此,并且可以包括多个处理器。处理器2702可以实现为一个或多个CPU芯片、核心(例如,多核处理器)、FPGA、ASIC和/或DSP,和/或可以是一个或多个ASIC的一部分。处理器2702可用于实现本文所描述的方案中的任一种。处理器2702可以使用硬件、软件或两者实现。
二级存储器2704通常包括一个或多个磁盘驱动器或磁带驱动器,且用于非易失性数据存储,而且如果RAM 2708的容量不足以存储所有工作数据时,二级存储器2704则用作溢流数据存储设备。二级存储器2704可以用于存储程序,当选择执行这些程序时,所述程序将加载到RAM 2708中。ROM 2706可用于存储在程序执行期间读取的指令以及可能读取的数据。ROM 2706是一种非易失性存储设备,与二级存储器2704的较大内存容量相比,非易失性存储设备的内存容量通常较小。RAM 2708用于存储易失性数据,并且可能用于存储指令。对ROM 2706和RAM 2708二者的访问通常比对二级存储器2704的访问快。二级存储器2704或RAM 2708中的至少一个可用于存储路由表、转发表或者本文公开的其它表或信息。
应理解,通过将可执行指令编程和/或加载到节点2600中,处理器2720和/或存储器 2722中的至少一个发生改变,从而将节点2600部分转换成具有本发明新颖功能的特定机器或装置,例如路由器。类似地,通过将可执行指令编程和/或加载到节点2600中,处理器2702、ROM 2706和RAM 2708中的至少一个发生改变,从而将节点2600部分转换成具有本发明新颖功能的特定机器或装置,例如路由器。对于电力工程及软件工程技术而言,基本原理是,可通过将可执行软件加载到计算机中而实现的功能可通过公知的设计规则转换为硬件实现。在软件还是硬件中实现概念之间的决策通常取决于对设计的稳定性及待产生的单元的数目的考虑,而与从软件域转译到硬件域所涉及的任何问题无关。通常,仍在经受频繁改变的设计可以优选在软件中实现,因为重改硬件实现比重改软件设计更为昂贵。通常,稳定及大规模生产的设计更适于在如ASIC这样的硬件中实现,因为运行硬件实现的大规模生产比软件实现更为便宜。通常,一个设计可以软件形式进行开发及测试,且随后通过公知设计规则转换为对软件的指令进行硬连线的专用集成电路中的等效硬件实现。由新ASIC控制的机器是一特定的机器或装置,同样地,编程和/或加载有可执行指令的电脑可视为特定的机器或装置。
本发明的描述是为了说明和描述的目的而提出的,但并不旨在以所公开的形式详尽无遗或限于本发明。在不偏离本发明的范围和精神的前提下,多种修改和改变对本领域技术人员而言是显而易见的。选择和描述的本发明各个方面以便更好地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明适合预期特定用途的各种修改。
出于本文档的目的,与所公开的技术相关联的每个过程可以连续执行并由一个或多个计算设备执行。过程中的每个步骤均可以由与在其它步骤中使用的相同或不同的计算设备执行,并且每个步骤不一定由单个计算设备执行。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。相反,公开上述具体特征和行为作为实现权利要求的示例形式。
Claims (24)
1.一种具有一个或多个节点的网络系统,其特征在于,包括:
第一节点,包括处理器、接收器和发送器,用于:
计算泛洪拓扑,所述泛洪拓扑由所述网络中的所述一个或多个节点之间的链路表示;
计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;
检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;
将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,所述链路状态消息标识所述网络中的故障;
使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑;
根据连接的泛洪拓扑,计算新的泛洪拓扑;
自所述泛洪拓扑发生变化到所述新的泛洪拓扑计算完成之前链路或节点继续发生故障,当与发生故障的节点连接的链路不在所述连接的泛洪拓扑中的情况下,在所述新的泛洪拓扑中发生故障的所述节点向链路中的邻节点发送所述链路状态的状态或增量,其中,所述链路与所述节点相连,所述链路状态的状态或增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的链路状态或发生变化的链路状态。
2.一种用于网络中故障恢复的计算机实现的方法,其特征在于,包括:
计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示;
计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;
检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;
将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,所述链路状态消息标识所述网络中的故障;
使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑;
根据连接的泛洪拓扑,计算新的泛洪拓扑;
自所述泛洪拓扑发生变化到所述新的泛洪拓扑计算完成之前链路或节点继续发生故障,当与发生故障的节点连接的链路不在所述连接的泛洪拓扑中的情况下,在所述新的泛洪拓扑中发生故障的所述节点向链路中的邻节点发送所述链路状态的状态或增量,其中,所述链路与所述节点相连,所述链路状态的状态或增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的链路状态或发生变化的链路状态。
3.根据权利要求2所述的计算机实现的方法,其特征在于,还包括:
确定所述泛洪拓扑中的一个或多个关键节点,其中所述一个或多个关键节点的故障导致所述泛洪拓扑分裂;
确定所述网络中的所述关键节点与所述一个或多个节点之间的所述泛洪拓扑中的一个或多个关键链路,其中所述一个或多个关键链路的故障导致所述泛洪拓扑分裂。
4.根据权利要求3所述的计算机实现的方法,其特征在于,
所述备选连接在所述泛洪拓扑中的链路的两个端节点之间,或者为与所述泛洪拓扑中的节点之一相交的路径;
所述方法还包括:
在所述一个或多个关键链路故障时,向所述两个端节点分发包括所述备选连接的链路状态消息,以连接所述分裂的泛洪拓扑;
在所述关键节点故障时,分发包括与所述节点之一相交的所述路径的链路状态消息,以连接所述分裂的泛洪拓扑。
5.根据权利要求4所述的计算机实现的方法,其特征在于,所述链路状态的状态是节点在所述泛洪拓扑分裂的时间段内发出或接收的链路状态,和节点在所述泛洪拓扑分裂的时间段内发出或接收的发生变化的链路状态之一。
6.根据权利要求5所述的计算机实现的方法,其特征在于,所述时间段是发生变化的链路状态对所述泛洪拓扑进行泛洪所花费的最大时间量、计算新的泛洪拓扑所花费的最大时间量,以及所述新的泛洪拓扑分布到网络区域中的一个或多个节点所花费的最大时间量之和。
7.根据权利要求4所述的计算机实现的方法,其特征在于,所述一个或多个节点中的每个节点包括链路状态数据库,所述方法还包括:
将所述网络中的任一节点中的链路状态数据库与所述新的泛洪拓扑中的链路中的任一其它邻节点同步。
8.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在所述节点之一检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;
向除故障的本地链路外的每个链路发送所述链路状态消息,其中,所述链路与所述泛洪拓扑中的所述节点相连。
9.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;
通过将所述节点的链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路;
当所述故障的本地链路处于所述泛洪拓扑中,且所述节点到发出所述链路状态消息的节点的跳数小于指定数量时,将所述链路状态消息中接收的链路状态发送到除所述故障的本地链路外的链路,所述链路与所述节点相连。
10.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在所述节点之一检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;
向所述泛洪拓扑中除所述故障的本地链路外的每个节点链路发送所述链路状态消息,所述泛洪拓扑包括邻节点的备选连接上的本地链路。
11.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;
通过将所述节点的链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路;
向所述泛洪拓扑中除所述故障的本地链路外的每个节点链路发送所述链路状态消息,所述泛洪拓扑包括邻节点的备选连接上的本地链路。
12.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;
通过从所述本地链路的两个端节点接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障;
向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
13.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在检测到本地链路中的邻节点故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示本地节点故障;
向除故障的本地链路外的每个链路发送所述链路状态消息,其中,所述链路与所述泛洪拓扑中的所述节点相连。
14.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在检测到本地链路中的邻节点故障时,接收链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示本地节点故障;
通过接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障;
向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
15.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在检测到本地链路中的邻节点故障时,接收链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障,设置所述链路状态消息的第二标志表示本地节点故障;
通过接收所述链路状态消息,确定所述故障的本地链路,其中,设置所述链路状态消息的所述第一标志表示本地链路故障,设置所述链路状态消息的所述第二标志表示本地节点故障;
向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
16.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
检测到两个或两个以上邻节点故障;
在所述节点检测到本地链路故障时,发出链路状态消息,其中,设置所述链路状态消息的第一标志表示本地链路故障;
向所述泛洪拓扑中除故障的本地链路外的每个节点链路发送所述链路状态消息。
17.根据权利要求2至7中任一项所述的计算机实现的方法,其特征在于,还包括:
检测到两个或两个以上邻节点故障;
接收包括链路状态的链路状态消息,所述链路状态可由第一标志标识,其中,设置所述第一标志表示本地链路故障;
通过将所述链路状态数据库中的链路状态与所述链路状态消息中接收的链路状态进行比较,确定所述故障的本地链路和所述两个或两个以上邻节点;
向所述泛洪拓扑中除所述故障的本地链路或接收所述链路状态消息的链路外的每个节点链路发送所述链路状态消息。
18.一种用于网络路径计算和建立的设备,其特征在于,包括:
非瞬时性存储器,所述存储器包括指令;
一个或多个处理器,与所述存储器进行通信,其中,所述一个或多个处理器执行所述指令以:
计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示;
计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;
检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;
将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,所述链路状态消息标识所述网络中的故障;
使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑;
根据连接的泛洪拓扑,计算新的泛洪拓扑;
自所述泛洪拓扑发生变化到所述新的泛洪拓扑计算完成之前链路或节点继续发生故障,当与发生故障的节点连接的链路不在所述连接的泛洪拓扑中的情况下,在所述新的泛洪拓扑中发生故障的所述节点向链路中的邻节点发送所述链路状态的状态或增量,其中,所述链路与所述节点相连,所述链路状态的状态或增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的链路状态或发生变化的链路状态。
19.根据权利要求18所述的设备,其特征在于,所述一个或多个处理器还执行所述指令以:
确定所述泛洪拓扑中的一个或多个关键节点,其中,所述一个或多个关键节点的故障导致所述泛洪拓扑分裂;
确定所述网络中的所述关键节点与所述一个或多个节点之间的所述泛洪拓扑中的一个或多个关键链路,其中所述一个或多个关键链路的故障导致所述泛洪拓扑分裂。
20.根据权利要求19所述的设备,其特征在于,
所述备选连接在所述泛洪拓扑中的链路的两个端节点之间,或者为与所述泛洪拓扑中的节点之一相交的路径;
其中,所述一个或多个处理器还执行所述指令以:在所述一个或多个关键链路故障时,向所述两个端节点分发包括所述备选连接的链路状态消息,以连接所述分裂的泛洪拓扑;
在所述关键节点故障时,分发包括与所述节点之一相交的所述路径的链路状态消息,以连接所述分裂的泛洪拓扑。
21.根据权利要求20所述的设备,其特征在于,所述链路状态的状态是节点在所述泛洪拓扑分裂的时间段内发出或接收的链路状态,和节点在所述泛洪拓扑分裂的时间段内发出或接收的发生变化的链路状态之一。
22.根据权利要求21所述的设备,其特征在于,所述时间段是发生变化的链路状态对所述泛洪拓扑进行泛洪所花费的最大时间量、计算新的泛洪拓扑所花费的最大时间量,以及所述新的泛洪拓扑分布到网络区域中的一个或多个节点所花费的最大时间量之和。
23.根据权利要求20所述的设备,其特征在于,所述一个或多个节点中的每个节点包括链路状态数据库,所述处理器还执行指令以:将所述网络中的任一节点中的链路状态数据库与所述新的泛洪拓扑中的链路中的任一其它邻节点同步。
24.一种非瞬时性计算机可读介质,其特征在于,所述非瞬时性计算机可读介质存储用于网络中故障恢复的计算机指令,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:
计算泛洪拓扑,所述泛洪拓扑由所述网络中的一个或多个节点之间的链路表示;
计算所述泛洪拓扑中的所述链路与所述一个或多个节点的备选连接;
检测到所述泛洪拓扑发生变化,所述变化表示所述网络出现故障,导致所述泛洪拓扑分裂;
将链路状态消息泛洪到所述泛洪拓扑的剩余部分中的一个或多个节点中的每个节点和所述备选连接,所述链路状态消息标识所述网络中的故障;
使用所述链路状态消息中标识的所述泛洪拓扑的所述剩余部分和所述备选连接来连接分裂的泛洪拓扑;
根据连接的泛洪拓扑,计算新的泛洪拓扑;
自所述泛洪拓扑发生变化到所述新的泛洪拓扑计算完成之前链路或节点继续发生故障,当与发生故障的节点连接的链路不在所述连接的泛洪拓扑中的情况下,在所述新的泛洪拓扑中发生故障的所述节点向链路中的邻节点发送所述链路状态的状态或增量,其中,所述链路与所述节点相连,所述链路状态的状态或增量是节点在当前泛洪拓扑分裂的给定时间段内接收或发出的链路状态或发生变化的链路状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862773571P | 2018-11-30 | 2018-11-30 | |
US62/773,571 | 2018-11-30 | ||
PCT/US2019/063987 WO2020113214A1 (en) | 2018-11-30 | 2019-12-02 | System and method to recover from link or node failure in a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113261245A CN113261245A (zh) | 2021-08-13 |
CN113261245B true CN113261245B (zh) | 2022-12-13 |
Family
ID=68966096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980067036.2A Active CN113261245B (zh) | 2018-11-30 | 2019-12-02 | 网络链路或节点故障的恢复系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11848823B2 (zh) |
EP (1) | EP3861687A1 (zh) |
CN (1) | CN113261245B (zh) |
WO (1) | WO2020113214A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200084109A1 (en) * | 2018-09-12 | 2020-03-12 | Nokia Solutions And Networks Oy | Sparse link-state flooding |
WO2020160557A1 (en) * | 2019-02-01 | 2020-08-06 | Nuodb, Inc. | Node failure detection and resolution in distributed databases |
KR20210126128A (ko) | 2019-02-27 | 2021-10-19 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 플러딩 토폴로지 불일치를 처리하기 위한 시스템 및 방법 |
CN112751724B (zh) * | 2019-10-31 | 2023-07-11 | 华为技术有限公司 | 检测链路状态的方法及装置 |
US11451475B2 (en) | 2019-12-19 | 2022-09-20 | Huawei Technologies Co., Ltd. | Packet forwarding based on geometric location |
US11374852B2 (en) | 2020-05-29 | 2022-06-28 | Huawei Technologies Co., Ltd. | Piecewise shortest path first routing |
US11438823B2 (en) | 2020-05-29 | 2022-09-06 | Huawei Technologies Co., Ltd. | Orthodromic routing |
US11374652B1 (en) | 2020-12-10 | 2022-06-28 | Huawei Technologies Co., Ltd. | Method and apparatus for limited flooding and network routing region membership management |
US11909627B2 (en) | 2021-01-04 | 2024-02-20 | Huawei Technologies Co., Ltd. | Method and apparatus for managing network status information using multiple degree of precision graph |
US11601780B2 (en) | 2021-01-05 | 2023-03-07 | Huawei Technologies Co., Ltd. | Method and apparatus for propagating network status updates using directional tracking |
US11476925B2 (en) | 2021-02-04 | 2022-10-18 | Huawei Technologies Co., Ltd. | Method and apparatus for limited flooding in networks using transit nodes |
CN115297045A (zh) * | 2022-05-10 | 2022-11-04 | 北京邮电大学 | 面向低轨卫星网络的洪泛拓扑构建方法、装置和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651608A (zh) * | 2008-08-14 | 2010-02-17 | 华为技术有限公司 | 链路管理方法及相应管理实体、执行节点和移动通信系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7330440B1 (en) * | 2003-05-20 | 2008-02-12 | Cisco Technology, Inc. | Method and apparatus for constructing a transition route in a data communications network |
US8619785B2 (en) * | 2009-04-28 | 2013-12-31 | Ciena Corporation | Pre-computing alternate forwarding state in a routed ethernet mesh network |
US8842520B2 (en) * | 2011-09-12 | 2014-09-23 | Honeywell International Inc. | Apparatus and method for identifying optimal node placement to form redundant paths around critical nodes and critical links in a multi-hop network |
US10038623B2 (en) * | 2016-10-24 | 2018-07-31 | Microsoft Technology Licensing, Llc | Reducing flooding of link state changes in networks |
US11102106B2 (en) * | 2018-04-04 | 2021-08-24 | Arista Networks, Inc. | Dynamic flooding for link state protocols |
-
2019
- 2019-12-02 EP EP19824161.4A patent/EP3861687A1/en active Pending
- 2019-12-02 CN CN201980067036.2A patent/CN113261245B/zh active Active
- 2019-12-02 WO PCT/US2019/063987 patent/WO2020113214A1/en unknown
-
2021
- 2021-03-04 US US17/192,019 patent/US11848823B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651608A (zh) * | 2008-08-14 | 2010-02-17 | 华为技术有限公司 | 链路管理方法及相应管理实体、执行节点和移动通信系统 |
Non-Patent Citations (1)
Title |
---|
LS Flooding Reduction draft-cc-ospf-flooding-reduction-04;H. Chen;《IEFT》;20180920;正文第5-33页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113261245A (zh) | 2021-08-13 |
EP3861687A1 (en) | 2021-08-11 |
US11848823B2 (en) | 2023-12-19 |
WO2020113214A1 (en) | 2020-06-04 |
US20210203562A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113261245B (zh) | 网络链路或节点故障的恢复系统和方法 | |
CN114615198B (zh) | 内部网关协议洪泛最小化的洪泛链路状态消息方法和节点 | |
CN101455030B (zh) | 动态共享风险节点组(srng)成员发现 | |
US7466661B1 (en) | Method and apparatus for establishing adjacency for a restarting router during convergence | |
US8908676B2 (en) | Automatically detecting best paths from shadow route reflectors | |
US8619785B2 (en) | Pre-computing alternate forwarding state in a routed ethernet mesh network | |
US11924042B2 (en) | System and method to reduce flooding topology size | |
US10567272B2 (en) | Bit error information transfer method, network device, and communications system | |
US20210029017A1 (en) | System and method for handling igp flooding topology inconsistency | |
US11811611B2 (en) | System and method for backup flooding topology split | |
CN117957825A (zh) | 边界网关协议(bgp)-最短路径优先(spf)泛洪减少 | |
CN113839866A (zh) | 信息发送和分发树建立的方法、装置、设备和存储介质 |
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 |