一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

快速泛洪拓扑保护的制作方法

2021-11-05 19:17:00 来源:中国专利 TAG:

快速泛洪拓扑保护
1.相关申请案交叉申请
2.本技术要求于2019年3月15日由huaimo chen等人递交的发明名称为“快速并行泛洪拓扑保护”的第62/819,062号美国暂时专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
3.本技术涉及网络通信,更具体地,涉及用于快速泛洪拓扑保护的方法和系统。


背景技术:

4.路由协议规定了路由器之间的通信方式,并分配信息使这些路由器能够在计算机网络中任意两个节点之间选择路由。内部网关协议(interior gateway protocol,简称igp)是一种用于在自治系统(autonomous system,简称as)内的网关(通常是路由器)之间交换路由信息的协议。所述路由信息则可以用来路由网络层协议,例如,互联网协议(internet protocol,简称ip)报文。as是代表单一管理实体或域的一个或多个网络运营商控制下的连接的ip路由前缀的集合,向互联网(例如,企业局域网系统)呈现通用且明确定义的路由策略。
5.igp内分不同的类型。第一类igp称为链路状态路由协议。所述链路状态路由协议由网络中的每个交换节点(即,准备转发报文的节点;在互联网中,这些被称为路由器)实现。链路状态路由的基本概念是,每个节点构建到网络的连接图,以图形的形式显示哪些节点连接到哪些其他节点。然后,每个节点独立计算从这个节点到网络中每个可能目的地的最佳逻辑路径或最佳下一跳接口。之后,每个最佳路径集合将形成每个节点的路由表。链路状态路由协议的示例包括开放式最短路径优先(open shortest path first,简称ospf)路由协议和中间系统到中间系统(intermediate system to intermediate system,简称is

is或isis)。
6.ospf是互联网工程任务组(internet engineering task force,简称ietf)指定的标准路由协议。ospf通过链路状态通告(link state advertisement,简称lsa)在路由器之间交换路由信息。一个区域内的每个路由器将在这个区域内泛洪第一类lsa(也称为路由器lsa)。lsa封装在opsf报文和ip报文之后。区域是具有相同区域号的基于ospf的网络、路由器和链路的逻辑组。属于同一区域的路由器保留整个区域的拓扑数据库。路由器lsa包含路由器所属区域中直连链路的信息(例如,具有所述路由器的所有直连链路的列表)。这些直连链路被泛洪给这个区域中所有路由器。如果路由器是区域边界路由器(area border router,简称abr),则所述路由器为所述路由器连接的所有区域生成第一类lsa,并将这些lsa发送给相应区域中的所有邻居。
7.is

is是国际标准化组织(international organization for standardization,简称iso)标准化的路由协议。is

is通过链路状态协议数据单元(link state protocol,lsp)在路由器之间交换路由信息。lsp是网络路由器根据列出路由器邻居的链路状态路由
协议生成的信息报文。lsp报文还可以进一步被定义为确定任何相邻路由器和关联网络的名称、以及到任何相邻路由器和关联网络的成本或距离的特殊数据报。如果发生链路故障,这些信息用于高效确定新邻居是什么,以及有需要的情况下改变链路的成本。
8.ospf和is

is的另外一些区别在于:ospf支持非广播多重访问(non

broadcast multiple access,简称nbma)网络和点对多点链路,而is

is不支持;is

is在数据链路层(l2)运行,而ospf在网络层(l3)运行;ospf支持虚拟链路,而is

is不支持。
9.无论采用哪种igp路由协议,随着网络变得越来越大,当所述网络发生链路故障等变化时,igp路由收敛速度越来越慢。当网络中每个路由器的所有组件(包括路由信息库(routing information base,简称rib)和转发信息库(forwarding information base,简称fib)以及软件和硬件表)具备最新的路由变化时,igp会发生融合,使得在最佳出口(或说下一跳)接口上路由条目被成功转发。
10.即使底层(物理)拓扑未被拆分,一个或多个故障也可以拆分泛洪拓扑(flooding topology,简称ft)。需要时间计算并构建新的ft,并将这个新的ft从主节点泛洪到网络中的每个节点。此时,链路状态数据库之间(link state databse,简称lsdb)可能不同步,网络收敛速度变慢。


技术实现要素:

11.所公开的实施例旨在解决上述问题。在一个实施例中,当几乎相同的时间发生多个故障时,网络区域中的每个节点并行检测链路故障和/或节点故障,检测ft拆分,并修复一个或多个链路故障和/或节点故障。在一个实施例中,为了修复所述一个或多个链路故障和/或节点故障,ft中的每个节点或部分节点并行计算针对导致ft拆分的链路故障和/或节点故障的备用路径。当ft中的链路中断时,备用路径指的是路径或链路序列,只要能为连接拆分的ft的两部分提供连接。当ft中的节点发生故障时,ft可以分为两个或两个以上部分。在这种情况下,需要两条或两条以上备用路径将所有被拆分的部分连接成一条。在一个实施例中,沿着所述备用路径的节点通过剩余ft和备用路径将链路状态(lsa或lsp)泛洪到每个活动节点,以修复所述一个或多个链路故障和/或节点故障。公开的实施例提供了在发生多次故障时更快地检测和修复ft拆分的过程。这会导致更快的网络融合,致使丢包更少。
12.如本文所引用的,术语“并行”是指两个或两个以上网络节点或节点无特定顺序独立执行所公开的实施例中描述的过程。所述多个网络节点的独立执行过程可以同时进行,但不要求完全同步。
13.在一个替换实施例中,ft拆分也可以顺序修复。在一个实施例中,只有故障旁边的节点检测导致ft拆分的ft中的链路故障和/或节点故障。例如,在一个实施例中,当附接到故障点(即,故障链路或故障节点)的节点首先检测到故障时,所述节点确定ft是否被拆分,然后计算备用路径,并将所述节点的本地链路暂时添加到ft中,直到构建成新的ft,从而自行修复这些故障(即,修复ft拆分)。然后,所述节点请求相关节点(即,需要将在备用路径上节点的本地链路暂时添加到ft中的节点,如果在ft中尚未添加这些链路的话)来修复这些故障。在一个实施例中,顺序进程比并行进程慢,从而使得网络收敛时间更长。
14.第一方面涉及一种用于修复泛洪拓扑的节点执行的并行泛洪拓扑修复方法。所述并行泛洪拓扑修复方法包括:检测网络故障,其中所述网络故障为故障链路和故障节点中
的至少一个;确定所述泛洪拓扑中是否存在所述网络故障;当确定所述泛洪拓扑中存在所述网络故障时,确定所述泛洪拓扑是否被拆分;当确定所述泛洪拓扑被拆分时,执行本地泛洪拓扑修复过程来修复所述泛洪拓扑。
15.根据第一方面,在所述计算机实现方法的第一种实现方式中,所述本地泛洪拓扑修复过程包括:计算所述网络故障的备用路径来修复所述泛洪拓扑;确定所述备用路径是否经过所述节点;当确定所述备用路径经过所述节点时,确定所述泛洪拓扑是否存在所述备用路径上所述节点的本地链路中;当确定所述泛洪拓扑中不存在所述备用路径上的所述节点的所述本地链路时,将所述备用路径上的所述节点的所述本地链路暂时添加到所述泛洪拓扑中,直到构建成新的泛洪拓扑。
16.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第二种实现方式中,通过链路中断事件在本地检测到所述故障链路。
17.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第三种实现方式中,识别节点的链路状态数据库(link state database,简称lsdb)中不处于接收链路状态的链路,检测到所述故障链路。
18.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第四种实现方式中,确定所述故障节点附接的每条链路均发生故障,检测到所述故障节点。
19.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第五种实现方式中,当所述lsdb中存在所述故障链路的标志指示所述泛洪拓扑中存在所述故障链路时,所述泛洪拓扑中存在所述故障链路。
20.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第六种实现方式中,当所述故障链路处于用于所述泛洪拓扑的所述lsdb中的链路状态时,所述泛洪拓扑中存在所述故障链路。
21.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第七种实现方式中,当所述泛洪拓扑中存在连接所述故障节点的链路时,所述泛洪拓扑中存在所述故障链路。
22.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第八种实现方式中,当所述故障节点处于用于所述泛洪拓扑的所述lsdb中的链路状态时,所述泛洪拓扑中存在所述故障节点。
23.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第九种实现方式中,所述确定所述泛洪拓扑是否被所述故障链路拆分包括:确定所述泛洪拓扑中所述故障链路连接的第一节点和第二节点之间是否存在路径;当所述泛洪拓扑中所述故障链路连接的所述第一节点和所述第二节点之间不存在路径时,确定所述泛洪拓扑被所述故障链路拆分;当所述泛洪拓扑中所述故障链路连接的所述第一节点和所述第二节点之间存在路径时,确定所述泛洪拓扑没有被所述故障链路拆分。
24.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十种实现方式中,所述确定所述泛洪拓扑是否被所述故障链路拆分包括:遍历所述泛洪拓扑,确定所述泛洪拓扑中节点的第一数量;将所述泛洪拓扑中节点的所述第一数量与所述泛洪拓扑中在所述lsdb中维护的节点的第二数量进行比较;当所述泛洪拓扑中节点的所述第一数量小于所述泛洪拓扑中节点的所述第二数量时,确定所述泛洪拓扑被拆分。
25.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十一种实现方式中,确定所述泛洪拓扑是否被所述故障节点拆分包括:确定节点与所述故障节点之间是否有直连链路;确定所述泛洪拓扑中所述节点与和所述故障节点直接连接的每个其他节点之间是否存在路径;当所述泛洪拓扑中所述节点与和所述故障节点直接连接的每个其他节点之间不存在路径时,确定所述泛洪拓扑被所述故障节点拆分。
26.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十二种实现方式中,确定所述泛洪拓扑是否被所述故障节点拆分包括:遍历所述泛洪拓扑,确定所述泛洪拓扑中节点的第一数量;将所述泛洪拓扑中节点的所述第一数量与所述泛洪拓扑中在所述lsdb中维护的节点的第二数量进行比较;当所述泛洪拓扑中节点的所述第一数量小于所述泛洪拓扑中节点的所述第二数量时,确定所述泛洪拓扑被拆分。
27.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十三种实现方式中,所述计算所述故障链路的备用路径来修复所述泛洪拓扑包括:计算所述故障链路连接的第一节点和第二节点之间的所述备用路径。
28.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十四种实现方式中,计算所述故障节点的所述备用路径来修复所述泛洪拓扑包括:计算和所述故障节点直接连接的第一节点与和所述故障节点直接连接的每个其他节点之间的所述备用路径。
29.根据第一方面或第一方面的任一前述实现方式,在所述计算机实现方法的第十五种实现方式中,对于导致所述泛洪拓扑被拆分的每个网络故障,重复本地泛洪拓扑修复过程。
30.第二方面涉及一种由用于修复泛洪拓扑的附接到网络故障的节点执行的顺序泛洪拓扑修复方法。所述顺序泛洪拓扑修复方法包括:检测网络故障,其中所述网络故障为故障链路和故障节点中的至少一个;确定所述泛洪拓扑中是否存在所述网络故障;当确定所述泛洪拓扑中存在所述网络故障时,确定所述泛洪拓扑是否被拆分;当确定所述泛洪拓扑被拆分时,执行顺序泛洪拓扑修复过程来修复所述泛洪拓扑。
31.根据第二方面,在所述计算机实现方法的第一种实现方式中,所述顺序泛洪拓扑修复过程包括:计算从节点到和所述网络故障相连的每个其他节点的第一备用路径;确定所述泛洪拓扑中是否存在所述备用路径上节点的本地链路;当确定所述泛洪拓扑中不存在所述备用路径上的所述节点的所述本地链路时,将所述备用路径上的所述节点的所述本地链路暂时添加到所述泛洪拓扑中,直到构建成新的泛洪拓扑;沿着所述备用路径向下一跳节点发送泛洪拓扑修复请求。
32.第三方面涉及一种由用于修复泛洪拓扑的附接到网络故障的节点执行的顺序泛洪拓扑修复方法。所述顺序泛洪拓扑修复方法包括:接收泛洪拓扑修复请求;确定所述泛洪拓扑中是否存在备用路径上节点的本地链路;当确定所述泛洪拓扑中不存在所述备用路径上所述节点的所述本地链路时,将所述备用路径上所述节点的所述本地链路暂时添加到所述泛洪拓扑中,直到构建成新的泛洪拓扑;沿着所述备用路径向下一跳节点发送所述泛洪拓扑修复请求。
33.根据第三方面,在所述计算机实现方法的第一种实现方式中,所述顺序泛洪拓扑修复方法还包括:从所述泛洪拓扑修复请求中提取所述备用路径。
34.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第二种实现方式中,所述顺序泛洪拓扑修复方法还包括:当所述泛洪拓扑修复请求中不包括所述备用路径时,计算从所述节点到所述备用路径的端节点的备用路径。
35.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第三种实现方式中,所述泛洪拓扑修复请求为扩展hello报文。
36.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第四种实现方式中,所述扩展hello报文是开放式最短路径优先(open shortest path first,简称ospf)hello报文,其中包括所述ospf hello报文中的扩展选项和标志类型长度值(extended options and flags type

length

value,简称eof

tlv)的扩展选项和标志字段中的备用路径比特(backup path bit,简称bp

bit)。
37.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第五种实现方式中,所述bp比特设置为1,以指示连接发送节点和接收节点的备用路径上链路被所述发送节点暂时添加到所述泛洪拓扑中。
38.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第六种实现方式中,所述ospf hello报文包括在所述ospf hello报文的本地链路信令(link

local signaling,简称lls)数据块中定义的备用路径端点tlv,所述备用路径端点tlv包括所述备用路径的两个端节点。
39.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第七种实现方式中,所述泛洪拓扑修复请求为扩展中间系统到中间系统(intermediate system to intermediate system,简称is

is)hello报文。
40.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第八种实现方式中,所述扩展hello报文是is

is hello报文,其中包括所述is

is hello报文中的eof

tlv的扩展选项和标志字段中的备用路径比特(backup path bit,简称bp

bit)。
41.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第九种实现方式中,所述bp比特设置为1,以指示连接发送节点和接收节点的备用路径上的链路被所述发送节点暂时添加到所述泛洪拓扑中。
42.根据第三方面或第三方面的任一前述实现方式,在所述计算机实现方法的第十种实现方式中,所述is

is hello报文包括备用路径端点tlv,其中所述备用路径端点tlv包括所述备用路径的两个端节点。
43.第四方面涉及网络节点,其中包括存储指令的存储器;耦合至所述存储器的处理器,其中所述处理器用于执行所述指令,以使所述网络节点执行任一前述方面或者前述方面的任一实现方式。
44.为表述清楚,在本发明范围内,任何一个前述实施例都可以与任何一个或多个其他前述实施例结合以创建新的实施例。
45.通过以下结合附图和权利要求的详细描述,这些以及其它特征和优点将会被更清楚地理解。
附图说明
46.为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说
明,其中的相同附图标记表示相同部分。
47.图1为本发明实施例提供的网络拓扑和泛洪拓扑(flooding topology,简称ft)的示意图。
48.图2为本发明实施例提供的拆分的ft的示意图。
49.图3为本发明实施例提供的修复的ft的示意图。
50.图4为本发明实施例提供的并行ft修复过程的流程图。
51.图5为本发明实施例提供的本地ft修复过程的流程图。
52.图6为本发明实施例提供的顺序ft修复过程的流程图。
53.图7为本发明实施例提供的顺序ft修复的流程图。
54.图8为本发明实施例提供的扩展选项和标志(extended options and flags,简称eof)类型长度值(type

length

value,简称tlv)的数据结构示意图。
55.图9为本发明实施例提供的ospf备用路径端点tlv的数据结构示意图。
56.图10为本发明实施例提供的eof

tlv的数据结构示意图。
57.图11为本发明实施例提供的is

is备用路径端点tlv的数据结构示意图。
58.图12为本发明实施例提供的网元的示意图。
具体实施方式
59.首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
60.如上所述,即使底层(物理)拓扑未被拆分,一个或多个故障也可以拆分ft。需要时间计算并构建新的ft,并将这个新的ft从主节点泛洪到网络中的每个节点。此时,lsdb之间可能不同步,网络收敛速度变慢。本发明公开的实施例提供用于快速并行保护ft的各种系统和方法,以期解决上述问题。
61.在一个实施例中,ft中的每个节点或部分节点并行计算针对导致ft拆分的链路故障和/或节点故障的备用路径。沿着所述备用路径的节点通过剩余ft和备用路径将链路状态泛洪到每个活动节点,以修复所述一个或多个链路故障和/或节点故障。剩余ft为从ft中去除了故障链路和故障节点之后得到的ft拓扑。
62.图1为本发明实施例提供的网络拓扑100和泛洪拓扑(flooding topology,简称ft)的示意图。所述网络拓扑100包括路由器r0至r12以及连接所述网络拓扑100中路由器的描绘的链路(实线和虚线)。所述ft是所述(物理)网络拓扑100的子网络。在所示实施例中,所述ft通过连接路由器r0至r12的虚线示出。所述ft与所述网络拓扑100到每个节点(即路由器r0至r12)具有相同的可达性。所述ft用于分发所述网络拓扑100中每个路由器的链路状态信息(即,对于ospf,在ft中泛洪lsa,对于is

is,泛洪lsp)。在图1中,假设r0的标识(identifier,简称id)小于rl的id,rl的id小于r2的id,以此类推(即r0的id<rl的id<r2的id<
……
<r12的id)。在正常运行条件下(即,所述网络中没有故障),每个节点(例如,图1中的路由器r0至r12)具有相同的链路状态数据库(link state database,简称lsdb)、相同的网络拓扑100和相同的ft。所述lsdb是ospf构建的数据库,基于每个网络节点/路由器在lsa
中分发的信息。所述lsdb在同一区域内的路由器之间同步。
63.当所述网络拓扑100中的所述ft上存在链路故障或节点故障时,每个网络节点或指定网络节点计算所述网络拓扑100中针对故障的备用路径。例如,网络节点可以执行算法以获得路由器ri到路由器rj的最小跳数路径,以解决ft中链路ri——rj故障的问题。路由器ri和路由器rj可以是所述网络拓扑100内所述ft中的任意两个路由器(例如,r5和r8)。与最短路径优先(shortest path first,简称spf)一样,备用路径中使用的任何链路都必须是双向的。在一个实施例中,对于所述ft中所述链路ri—rj的故障,每个节点(rk)获取从ri到rj的所有最小跳数路径来计算链路ri—rj(假设ri的id<rj的id)的唯一备用路径,其中每个最小跳数路径在ft(hc

ft)值具有跳数。如果存在具有最小hc

ft值的多条路径,则网络节点选择包含沿着从目的路由器rj到源路由器ri的方向具有较小或最小远程节点id的链路的路径。然后,如果所述ft中没有节点的本地链路,则备用路径上的节点rk将备用路径上所述节点的本地链路暂时添加到ft中,从而启用链路ri—rj的备用路径,在备用路径上进行暂时的泛洪。
64.图2为本发明实施例提供的拆分的ft的示意图。在所示实施例中,当ft中的链路r4至r7(r4—r7)和链路r5—r8同时发生故障时,所述ft(如图1所示)被拆分。这里,如图2所示,所述ft被拆分为两个分区,ft分区a和ft分区b。ft分区a包括路由器r0、r1、r2、r3、r4和r5。ft分区b包括路由器r6、r7、r8、r9、r10、r11和r12。在ft分区a中,每个节点(路由器r0、r1、r2、r3和r5)从路由器r4接收lsa,指示路由器r4到路由器r7的链路中断。此外,在ft分区a中,每个节点(路由器r0、r1、r2、r3和r4)从路由器r5接收lsa,指示路由器r5到路由器r8的链路中断。
65.类似地,在ft分区b中,每个节点(路由器r6、r8、r9、r10、r11和r12)从路由器r7接收lsa,指示路由器r7到路由器r4的链路中断。此外,在ft分区b中,每个节点(路由器r6、r7、r9、r10、r11和r12)从路由器r8接收lsa,指示路由器r8到路由器r5的链路中断。
66.图3为本发明实施例提供的修复的ft的示意图。在所示实施例中,计算链路r4—r7的唯一备用路径和链路r5—r8的唯一备用路径,然后启用用于暂时泛洪的备用路径,从而修复拆分ft(如图2所述)。对于链路r4—r7,路由器r4、r3、r6、r7和ft中的其他节点计算备用路径。在一个实施例中,分区a中的路由器r3和r4计算备用路径,分区b中的路由器r6和r7计算备用路径。在分区a中,存在两条单向链路:从路由器r7到路由器r4的链路和从路由器r8到路由器r5的链路。在备用路径计算中,路由器r3和r4不使用这两条链路。类似地,在分区b中,存在两条单向链路:从路由器r4到路由器r7的链路和从路由器r5到路由器r8的链路。在备用路径计算中,路由器r6和r7不使用这两条链路。在所示实施例中,链路r4—r7的备用路径为r4—r3—r6—r7。如图3所示,为了创建备用路径r4—r3—r6—r7,路由器r3添加了链路r3—r6,路由器r6将链路r6—r3暂时添加到所述ft中。然后,路由器r4、r3、r6和r7启用备用路径以进行暂时泛洪。如前述图1所示,链路r4—r3已经在ft中。因此,路由器r4和r3不会再次将链路r4—r3添加到ft中。类似地,由于链路r6—r7已经在ft中,路由器r6和r7不会再将这条链路添加到ft中。
67.类似地,计算并启用链路r5—r8的唯一备用路径,以进行暂时泛洪。对于链路r5—r8,路由器r5、r2、r9、r8和ft中的其他节点计算备用路径。在一个实施例中,分区a中的路由器r2和r5计算备用路径,分区b中的路由器r8和r9计算备用路径。如上所述,在分区a中,存
在两条单向链路:从路由器r7到路由器r4的链路和从路由器r8到路由器r5的链路。在备用路径计算中,路由器r2和r5不使用这两条链路。在分区b中,存在两条单向链路:从路由器r4到路由器r7的链路和从路由器r5到路由器r8的链路。在备用路径计算中,路由器r8和r9不使用这两条链路。在所示实施例中,链路r5—r8的备用路径为r5—r2—r9—r8。创建备用路径r5—r2—r9—r8,路由器r5暂时将链路r5—r2添加到ft中,路由器r2暂时将链路r2—r5添加到ft中,路由器r2暂时将链路r2—r9添加到ft中,路由器r9暂时将链路r9—r2添加到ft中,路由器r9暂时将链路r9—r8添加到ft中,路由器r8暂时将链路r8—r9添加到ft中。然后,路由器r5、r2、r9和r8启用备用路径r5—r2—r9—r8以进行暂时泛洪。通过暂时添加到ft中的链路,连接分区a和ft分区b,从而修复ft拆分。
68.图4为本发明实施例提供的并行ft修复过程400的流程图。在一个实施例中,并行ft修复过程400可由网络区域中的每个节点(例如,图1中的网络拓扑100中的路由器r0至r12)并行执行,以检测链路故障和/或节点故障、检测ft拆分以及修复一个或多个链路故障/节点故障。在发生多个故障时,通过并行执行所述过程,所述并行ft修复过程400提供快速ft拆分保护。
69.所述并行ft修复过程400从步骤402开始,检测链路故障或节点故障。在一个实施例中,如果所述节点附接到所述故障链路,则通过链路中断事件在本地检测所述故障。否则,将lsdb中对应的链路状态信息与从ft中其他节点接收的在lsa中的链路状态信息进行比较,确定故障链路。所述故障链路指的是lsdb中链路状态信息中的链路,而不是lsa中接收到的链路状态信息中的链路。如果一个节点检测到附接到所述节点的每个链路发生故障,则所述节点本身发生了故障。
70.在步骤404中,所述并行ft修复过程400中,确定在当前ft中的是故障链路还是故障节点。在一个实施例中,如果网络节点的lsdb中存在故障链路的标志指示ft中存在所述链路,则当前ft中存在所述故障链路。在另一个实施例中,如果故障链路处于ft的lsdb中的链路状态,则当前ft中存在故障链路。对于故障节点,在一个实施例中,所述并行ft修复过程400通过确定当前ft中是否存在连接故障节点的链路来确定在当前ft中是否存在故障节点。在一个实施例中,如果lsdb中有一条附接到故障节点的故障链路的标志指示当前ft中存在所述链路,则在当前ft中存在故障节点。在另一个实施例中,如果故障节点处于当前ft的lsdb中的链路状态,则在当前ft中存在故障节点。
71.如果在步骤404中,所述并行ft修复进程400确定在当前ft中不存在故障链路或故障节点,则所述并行ft修复进程400在步骤406中不进行进一步操作,并终止。但是,如果所述并行ft修复过程400确定在当前ft中是否存在故障链路或故障节点,则所述并行ft修复过程400在步骤408确定故障节点或故障链路是否导致ft拆分。如图2中给定示例所示,当ft被拆分为两个或两个以上独立的节点组时,ft被拆分。在一个实施例中,对于当前ft中节点a和节点b之间的故障链路,所述并行ft修复过程400可以通过尝试在当前ft中查找从节点a到节点b(或从节点b到节点a)的路径来确定当前ft是否被拆分。如果在当前ft中找到路径,则所述并行ft修复过程400确定当前ft未被拆分。否则(即,当前ft中没有从节点a到节点b的任何路径),所述并行ft修复过程400确定当前ft被拆分。
72.在另一个实施例中,对于在当前ft中节点a和节点b之间的故障链路,通过遍历当前ft确定所述ft中节点的第一数量,维护网络节点的lsdb中第二数量个活跃(或活动)节
点,所述并行ft修复过程400可以确定当前ft是否被拆分。如果所述第一数量小于所述第二数量,则所述并行ft修复过程400确定所述当前ft被拆分。如果所述第一数量大于所述第二数量,则网络或节点x内部存在问题,并发出或记录警告。
73.在一个实施例中,对于当前ft中的故障节点,对于通过当前ft中的链路连接到故障节点的所有节点,从通过当前ft中链路连接到故障节点一个节点,到通过当前ft中链路连接到故障节点的每个其他节点,试图在当前ft中查找路径,所述并行ft修复过程400确定当前ft是否被拆分。如果在当前ft中查找到路径,则所述并行ft修复过程400确定由于故障节点当前ft未被拆分。否则(即,从通过当前ft中链路连接到故障节点一个节点,到通过当前ft中链路连接到故障节点的每个其他节点,不存在路径),所述并行ft修复过程400确定由于故障节点当前ft被拆分。
74.在另一个实施例中,所述并行ft修复过程400通过遍历当前ft来确定当前ft中节点的第一数量,并维护在网络节点的lsdb中第二数量个活跃节点或活动节点。如果所述第一数量小于所述第二数量,则所述并行ft修复过程400确定由于故障节点当前ft被拆分。如果所述第一数量大于所述第二数量,则网络或节点x内部存在问题,并发出或记录警告。
75.如果所述并行ft修复过程400确定故障节点或故障链路不会造成当前ft被拆分,则在步骤406中,所述并行ft修复进程400不进行进一步操作,并终止。
76.在一个实施例中,如果所述并行ft修复进程400确定故障节点或故障链路导致ft拆分,则在步骤412,所述并行ft修复进程400确定正在执行所述并行ft修复过程400的节点(节点x)与故障节点或故障链路(即故障点)是否离得太远。在一个实施例中,与故障点的距离可以是用户指定的(例如,与故障点相距5跳,或者与故障点相距其他预定数量个跳)。在一个实施例中,当节点x离故障点太远时,在步骤406中,所述并行ft修复过程400不采取动作,并终止。如果所述并行ft修复过程400确定所述节点x离所述故障点不太远,则在步骤414,所述并行ft修复过程400修复ft(例如,如图5中所述)。在一个替换实施例中,所述并行ft修复过程400可以跳过步骤412,在步骤414中不论节点x与故障点的距离是多少修复ft。
77.图5为本发明实施例提供的ft修复过程500的流程图。在一个实施例中,网络区域(例如,图1中网络拓扑100中的路由器r0至r12)中的每个节点(节点x)并行执行所述ft修复过程500。在一个实施例中,在图4的步骤414中执行ft修复过程500。
78.在步骤502中,所述ft修复过程500计算当前ft中每个故障链路的备用路径。例如,为了修复当前ft中节点a和节点b之间的单链路故障,在步骤502,所述ft修复过程500计算节点a和节点b之间的备用路径。在一个实施例中,所述ft修复过程500计算从低id节点到高id节点的备用路径。例如,当节点a的id小于节点b的id时,所述ft修复过程500计算从节点a到节点b的备用路径。
79.在一个实施例中,如果当前ft中两条或两条以上相邻链路发生故障,则在步骤502,所述ft修复过程500计算当前ft上相邻故障链路的两个端节点之间的备用路径。当当前ft中两条链路共享一个公共节点且当前ft中没有附接到这个公共节点的其他链路时,将这两条链路视为相邻链路。当前ft中相邻两条链路的两个端节点之间存在一条路径(需要说明的是,公共节点是路径的中转节点)。类似地,在当前ft中两条以上相邻链路的两个端节点之间存在一条路径。
80.在一个实施例中,如果当前ft中存在节点故障或当前ft中两个相邻节点发生故
障,则在步骤502中,所述ft修复过程500计算备用路径,从通过当前ft中链路连接到故障节点一个节点,到通过当前ft中链路连接到故障节点的每个其他节点。当当前ft的两个节点直接连接时,则这两个节点被认为是当前ft中的相邻节点。
81.在步骤504中,所述ft修复进程500确定备用路径是否通过节点x(即,执行所述ft修复进程500的节点)。如果所述ft修复进程500确定所述备用路径不通过节点x,则在步骤506中,所述ft修复进程500不采取进一步的操作并终止。
82.如果在步骤504中,所述ft修复进程500确定所述备用路径通过节点x,则在步骤508中,所述ft修复进程500检索所述备用路径上节点x的本地链路(例如,链路l1和l2),并将所述备用路径上节点x的本地链路暂时添加到当前ft中,直到如果当前ft中不存在备用路径上节点x的本地链路构建新的ft。如果当前ft中已经存在备用路径上节点x的本地链路,则不需要将这些本地链路添加到当前ft中,并且所述ft修复过程500终止。由网络区域中每个节点并行执行所述ft修复过程500,修复ft拆分。
83.图6为本发明实施例提供的顺序ft修复过程600的流程图。在一个实施例中,所述顺序ft修复过程600由附接到故障点的节点执行(即,由故障旁边的节点检测故障)。如将进一步描述的,附接到故障点的节点首先检测故障(即故障链路或故障节点),确定ft被拆分,然后修复故障本身,之后请求相关节点来修复故障。这个顺序过程比并行过程(例如,如图4中所述)要慢,并且需要更多的时间进行网络融合。
84.所述顺序ft修复过程600从步骤602开始,附接到链路的节点首先检测链路故障。在一个实施例中,通过链路中断事件在本地检测故障。在步骤604中,所述顺序ft修复过程600确定当前ft中是否存在故障链路。在一个实施例中,如果lsdb中存在故障链路的标志指示ft中存在链路,则当前ft中存在故障链路。在另一个实施例中,如果故障链路处于ft的lsdb中的链路状态,则当前ft中存在所述故障链路。
85.在步骤606中,所述顺序ft修复过程600确定当前ft中是否存在节点故障。在一个实施例中,为了检测节点故障,所述顺序ft修复过程600在步骤606中检测附接到故障链路的另一端节点(节点x)的当前ft中每个其他链路。对于每个其他链路,通过将节点的lsdb中对应的链路状态与接收到的链路状态进行比较,节点确定是否为故障链路。故障链路是处于lsdb中链路状态而不是刚接收到的链路状态的链路。如果附接到节点x的当前ft中所有链路均发生故障,则所述顺序ft修复过程600确定当前ft中节点x发生故障。
86.在步骤608中,所述顺序ft修复过程600确定当前ft是否被拆分。对于当前ft中节点a和节点b之间的故障链路,所述顺序ft修复过程600可以通过尝试在当前ft中查找从节点a到节点b的路径来确定当前ft是否被拆分。如果在当前ft中找到路径,则当前ft未被拆分。否则(即当前ft中没有从节点a到节点b的任何路径),当前ft被拆分。或者,通过遍历当前ft检索所述ft中节点的第一数量,维护lsdb中第二数量个活跃节点或活动节点,所述顺序ft修复过程600可以确定当前ft是否被拆分。如果所述节点的第一数量小于lsdb中所述活跃节点或活动节点的第二数量,则当前ft被拆分。在一个实施例中,如果所述节点的第一数量大于lsdb中所述活跃节点或活动节点的第二数量,则网络中存在问题或者故障节点内存在问题,并发出或记录警告。如果在步骤608中,所述顺序ft修复进程600确定当前ft未被拆分,则所述顺序ft修复进程600在步骤612中不进行进一步操作,并终止。但是,如果在步骤608中,所述顺序ft修复进程600确定当前ft被拆分,则所述顺序ft修复进程600在步骤
610中修复ft(例如,如图7所述)。
87.图7为本发明实施例提供的ft修复过程700的流程图。在一个实施例中,所述ft修复过程700首先由故障旁边的节点执行,然后由每个下一跳节点沿着备用路径执行。所述ft修复过程700从步骤702开始,计算备用路径。如果所述ft修复过程700由故障旁边的节点执行,所述ft修复过程700计算从当前执行节点(节点a)到通过当前ft中链路连接到故障点(节点x)的每个其他节点的备用路径。
88.如果当前ft中不存在本地链路,则所述ft修复过程700在步骤704中将所述备用路径上执行节点的本地链路(例如,链路l1)暂时添加到当前ft中,直到构建成新的ft。在步骤706中,所述ft修复过程700向沿着备用路径的下一跳节点发送扩展hello报文(例如,图8)中的请求(例如,向链路ll的远端节点发送hello报文)来请求相关节点修复ft。
89.在接收到所述扩展hello报文后,所述远程终端节点重复所述ft修复过程700,在步骤702中计算从节点a(即,当前节点)到节点x的备用路径;如果当前ft中不存在本地链路,在步骤704中将所述备用路径上所述节点的所述本地链路(例如,链路l1和l2)暂时添加到当前ft中,直到构建成新的ft;在步骤706中,向沿着所述备用路径的下一跳节点发送扩展hello报文中的请求(例如,向链路l2的远端节点发送hello报文)。当目的节点将备用路径上的本地链路添加到当前ft中时,所述ft修复过程700终止。
90.图8为本发明实施例提供的扩展选项和标志(extended options and flags,简称eof)类型长度值(type

length

value,简称tlv)800的数据结构示意图。所述efo

tlv 800可以包含在ospf hello报文中。例如,在一个实施例中,所述eof

tlv 800包括在用于发现和维护邻居关系的ospf hello报文的本地链路信令(link

local signaling,简称lls)数据块中。在所示实施例中,所述eof

tlv 800包括类型字段802(第一类为请求注解(request for comments,简称rfc)5613中定义的eof

tlv)、包含所述eof

tlv 800的长度的长度字段804以及扩展选项和标志字段806。在一个实施例中,在eof

tlv 800中扩展选项和标志字段806中定义了称为创建备用路径(bp比特808)的新标志位。在一个实施例中,扩展选项和标志字段806中的比特29用于bp比特808。
91.如图7所示,当节点b通过链路从其相邻节点a接收包含eof

tlv 800的hello报文时,如果bp比特808被设置为eof

tlv 800中的1(1),则指示备用路径上的链路由节点a暂时添加到当前ft中。然后,如果链路不在hello报文中,节点b还将把链路添加到当前ft中,直到构建成新的ft,计算备用路径,并将hello报文与关于所述路径的一些信息一起发送到所述路径的下一跳。
92.图9为本发明实施例提供的ospf备用路径端点tlv 900的数据结构示意图。所述ospf备用路径端点tlv 900可以携带在ospf hello报文的本地链路信令(link

local signaling,简称lls)数据块中。所述ospf备用路径端点tlv 900包括类型字段902(类型待定(type to be determined,简称tbd))、长度字段904、源节点标识(identifier,简称id)字段906、目的节点id字段908和可选的子tlv字段910。所述源节点id字段906和所述目的节点id字段908指定备用路径的两个端节点。所述子tlv 910可被定义为详细包含备用路径。例如,所述子tlv 910可以包含备用路径的每一跳。
93.图10为本发明实施例提供的扩展选项和标志(extended options and flags,简称eof)tlv 1000的数据结构示意图。在一个实施例中,所述eof

tlv 1000包括在用于发现
和维护邻居关系的is

is hello报文中。所述eof

tlv 1000包括类型字段1002(type to be determined,简称tbd)、长度字段1004以及扩展选项和标志字段1006。在一个实施例中,在所述efo

tlv 1000中所述扩展选项和标志字段1006中定义了称为创建备用路径(bp比特1008)的新标志位。在一个实施例中,在eof

tlv tlv 1000中所述扩展选项和标志字段1006中的比特29用于bp比特1008。
94.在一个实施例中,当节点b通过链路从其相邻节点a接收包含eof

tlv 1000的hello报文时,如果bp比特1008被设置为hello报文中的1(1),则指示备用路径上的链路由节点a暂时添加到当前ft中。然后,如果链路不在hello报文中,节点b还将把链路暂时添加到当前ft中,直到构建成新的ft,计算备用路径,并将hello报文与关于所述路径的一些信息一起发送到所述路径的下一跳。
95.图11为本发明实施例提供的is

is备用路径端点tlv 1100的数据结构示意图。所述is

is备用路径端点tlv 1100可以携带在is

is hello报文中。所述is

is备用路径端点tlv1100包括类型字段1102(type to be determined,简称tbd)、长度字段1104、源节点id字段1106、目的节点id字段1108和可选的子tlv字段1110。所述源节点id字段1106和所述目的节点id字段1108指定备用路径的两个端节点。所述子tlv 1110可被定义为详细包含备用路径。例如,所述子tlv 1110可以包含备用路径的每一跳。
96.图12为本发明实施例提供的网元1200的示意图。所述网元1200可以是任何网络节点,例如但不限于世界各地的服务提供商使用的任何路由器、交换机和控制器。所述网元1200包括用于通过入口端口1210接收数据的接收器单元(receive,简称rx)1220或接收装置。所述网元1200还包括用于通过数据出口端口1250传输的发射器单元(transmit,简称tx)1240或传输装置。
97.所述网元1200包括用于存储指令和各种数据的存储器1260或数据存储装置。所述存储器1260可以是能够存储数据和/或指令的任何类型的存储器组件或存储器组件的组合。例如,所述存储器1260可以包括易失性和/或非易失性存储器,例如只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、三重内容寻址内存(ternary content

addressable memory,简称tcam)和/或静态随机存取存储器(static random

access memory,简称sram)。所述存储器1260还可以包括一个或多个磁盘、磁带驱动器和固态硬盘。在一些实施例中,所述存储器1260可用作溢出数据存储设备,用于在选择程序执行时存储此类程序,并且用于存储程序执行过程中读出的指令和数据。
98.所述网元1200具有一个或多个处理器1230或其他处理装置(例如,中央处理器(central processing unit,简称cpu))来处理指令。所述处理器1230可作为一个或更多cpu芯片、核心(例如,多核处理器)、现场可编程门阵列(field

programmable gate array,简称fpga)、专用集成电路(application

specific integrated circuit,简称asic)和数字信号处理器(digital signal processor,简称dsp)实现。所述处理器1230通过系统总线与入口端口1210、rx 1220、tx 1240、出口端口1250和存储器1260通信耦合。所述处理器1230可用于执行所述存储器1260中存储的指令。因此,当所述处理器执行适当指令时,所述处理器1230提供执行与权利要求对应的计算、比较、确定、发起、配置或任何其他操作的装置。在一些实施例中,所述存储器1260可以是与处理器1230集成的存储器。
99.在一个实施例中,所述存储器1260存储快速ft保护模块1270。所述快速ft保护模
块1270包括用于实现所公开实施例的数据和可执行指令。例如,所述快速ft保护模块1270可以包括用于实现图4至7中描述方法的指令。所述快速ft保护模块1270所包括的内容大大改善了所述网元1200的功能,实现了ft的快速修复,除此之外,在ft被拆分时降低了流量损失。
100.虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本公开并不限于本文中所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
101.此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献