CN103493441A - 使用路由轨迹生成无回路路由拓扑 - Google Patents

使用路由轨迹生成无回路路由拓扑 Download PDF

Info

Publication number
CN103493441A
CN103493441A CN201280019187.9A CN201280019187A CN103493441A CN 103493441 A CN103493441 A CN 103493441A CN 201280019187 A CN201280019187 A CN 201280019187A CN 103493441 A CN103493441 A CN 103493441A
Authority
CN
China
Prior art keywords
track
route
node
link
network
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.)
Granted
Application number
CN201280019187.9A
Other languages
English (en)
Other versions
CN103493441B (zh
Inventor
帕斯卡尔·蒂贝尔
帕特里斯·贝拉卡巴
德克·安特尤尼斯
埃里克·米歇尔·莱维-阿贝格诺里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN103493441A publication Critical patent/CN103493441A/zh
Application granted granted Critical
Publication of CN103493441B publication Critical patent/CN103493441B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在一个实施例中,一种方法包括:在计算网络中创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向目的地设备路由任意网络流量;以及使得网络流量沿着所述路由轨迹中的至少一个被转发到目的地设备。

Description

使用路由轨迹生成无回路路由拓扑
技术领域
本公开总地涉及在诸如因特网协议(IP)网络之类的计算网络中生成无回路路由拓扑。
背景技术
本部分描述可以被采用、但不一定是先前被构思出或采用的方法。因此,除非另有明确说明,否则在本部分中描述的任何方法并不是相对于本申请中的权利要求的现有技术,并且不应因为在本部分中包括了任何方法就认为在本部分中描述的这样的任何方法是现有技术。
现有的路由协议假定可以响应于检测到的故障(例如,链路或连接网络节点的丢失)而进行路由的重新计算;然而,路由的重新计算需要计算时间,这有可能会导致数据流量的损失。加速响应检测到的故障的一种尝试包括“无回路替代路径”(Loop Free Alternates,LFA),其中路由器可以通过识别用于到达目的地节点的可行后继者来响应于在去往目的地节点的路径中丢失下一跳路由器(只要该可行后继者不会通过将分组发送回路由器来创建回路)。Atlas的题为“U-turn Alternates for IP/LDP LocalProtection(draft-atlas-ip-local-protect-uturn-OO.txt)”的IETF草案在图3中图示出了一种网络拓扑,其中在链路故障的情况下,可以为网络节点N2、N4、和R3提供LFA方案以将数据分组转发给目的地节点D,但LFA无法为网络节点N3、S、P、R1、或R2中的任何一个提供任何方案。Atlas的IETF草案提出了“U形转弯协议(U-turn protocol)”以对链路进行反转,但在链路故障的情况下,U形转弯协议无法为图3的节点P、R1、或R2提供任何方案。
另一个提出的被称为“用于处理瞬态链路故障的快速本地重路由”(FIR)的路由协议需要响应于链路故障而完全重新计算路由,因此路由的重新计算需要计算时间,这有可能会导致数据流量的损失。
附图说明
参照附图,其中在各个附图中具有相同附图标记的元件表示相似的元件,并且在附图中:
图1示出了根据示例性实施例的包括用于到达目的地设备的多个路由轨迹(routing arc,也称为路由弧)的示例性无回路路由拓扑。
图2示出了根据示例性实施例的用于创建通过数据链路耦合的网络设备的链路层网络中的无回路路由拓扑的示例性装置。
图3A、3B、3C、和3D示出了根据示例性实施例的用于创建无回路路由拓扑的示例性方法。
图4(包括图4A、4B、4C、和4D)示出了根据示例性实施例的图2中的用于创建无回路路由拓扑的装置的存储器电路中的示例性数据结构。
图5示出了根据示例性实施例的图2中的用于创建无回路路由拓扑的装置的存储器电路中的另一个示例性数据结构。
图6A-6I示出了根据示例性实施例的从图2的链路层网络构造具有多个路由轨迹的无回路路由拓扑的示例序列。
具体实施方式
概述
在一个实施例中,一种方法包括:在计算网络中创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向所述目的地设备路由任意网络流量;以及使得所述网络流量沿着所述路由轨迹中的至少一个被转发到所述目的地设备。
在另一个实施例中,一种装置包括处理器电路、存储器电路、和设备接口电路。所述处理器电路被配置用于为计算网络创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向所述目的地设备路由任意网络流量。所述存储器电路被配置用于存储与所述路由轨迹相关联的参数。所述设备接口电路被配置用于将与所述路由轨迹相关联的至少所选择的参数输出到第二装置,用于所述无回路路由拓扑的部署。
详细描述
特定的实施例使得能够基于创建具有路由轨迹的无回路路由拓扑,响应于检测到的数据链路的故障而将网络流量立即重路由到目的地设备,所述路由轨迹使得网络流量能够沿着任意路由轨迹的两个末端中的任意一个被路由。无回路路由拓扑中的路由轨迹确保具有至少两个数据链路的任意网络设备能够经由路由轨迹中的至少一个到达目的地设备:基于对路由轨迹中的所识别出的可反转链路进行反转,能够响应于所检测到的数据链路故障(或网络节点故障)立即向路由轨迹的另一末端重路由网络流量。还确保路由轨迹中的所识别出的可反转链路的反转,以不将任何回路引入到无回路路由拓扑中。
接合节点被定义为这样的网络节点(即,基于其在网络拓扑中的相对位置被识别出的网络设备),所述网络节点具有至少两个数据链路,所述至少两个数据链路提供用于到达目的地设备的各非叠合路径:本说明书和所附权利要求中的词语“非叠合”要求来自接合节点的路径不共享用于到达目的地设备的任何公共数据链路,取而代之的是,属于一个路径(从接合节点到目的地设备)的每一个链路都是不同的,并且独立于属于第二非叠合路径(从接合节点到目的地设备)的任何链路。
如果接合节点的数据链路使得该数据链路的端点(即,经由数据链路直接耦接到接合节点的网络节点)变为具有其自身的用于到达目的地设备的非叠合路径的接合节点,则也可以将接合节点的数据链路视为“可反转链路”。
在一个实施例中,可以在逻辑上顺次连接通过可反转链路耦接的一个或多个接合节点,以创建路由轨迹作为具有其在目的地设备处终结的两个对应末端的第一基础结构轨迹。可以创建具有在先前创建的基础结构轨迹(例如,第一基础结构轨迹)中终结的至少一个末端、以及在先前创建的基础结构轨迹或目的地设备中终结的另一个末端的额外的路由轨迹,其中每一个新的路由轨迹包括与先前生成的路由轨迹中的任何网络设备不同的网络设备。换言之,被分配给一个现有的路由轨迹的网络设备无法在之后被分配给另一个路由轨迹(除非该网络设备是现有的路由轨迹和更新的路由轨迹的末端之间的接合点)。
在另一个实施例中,可以基于在用于到达目的地设备的第一有向无环图中识别具有用于经由非叠合路径到达目的地设备的可反转链路的一个或多个接合节点,来创建作为基础结构轨迹的路由轨迹;可以基于在第一有向无环图中识别用于到达第一有向无环图的接合节点之一(作为第二路由轨迹的一个末端)的第二有向无环图、并且在第二有向无环图中识别与所述一个接合节点不同的具有用于到达目的地设备的新的非叠合路径的新的接合节点,来创建第二路由轨迹,所述新的接合节点经由在目的地设备或先前创建的基础结构路由轨迹处终结的第二路由轨迹的第二末端提供新的非叠合路径。
因此,示例性实施例使得即使在无回路路由拓扑中的任意一个数据链路遇到故障的情况下,也能够基于反转所识别出的可反转链路来确保无回路路由拓扑中的具有两个数据链路的任意网络设备都能够到达目的地设备。
图1示出了根据示例性实施例的包括用于到达目的地设备14的多个路由轨迹12的示例性无回路路由拓扑10。每一个路由轨迹12包括多个网络设备16,每一个网络设备16均具有用于到达相邻的网络节点的至少两个数据链路。从图1中可以看出,无回路路由拓扑10确保沿着任意轨迹12的任意点的任意网络设备16(图1中通过“X”示出)都具有用于到达目的地设备14的至少两个非叠合路径,从而确保即使在无回路路由拓扑10中遇到链路故障的情况下,也能够到达目的地设备14。本说明书和权利要求中的词语“节点”是指在路由拓扑10中被分配有可识别位置的网络设备(即,装置、机器等)。因此,目的地设备14也可以被称为“目的地节点”、“目的地网络节点”、或“根节点”,并且任意网络设备(例如,图2、6A、6B、或6I中的16)16也可以被称为“网络节点”。
如在下文中参照图6A-6I所进一步具体描述的,每一个路由轨迹(例如,图6I中的“ARC1”)12包括至少三个网络节点16,即被指定为路由轨迹的第一末端的第一网络设备(例如,图6I中的网络节点“K”)16、被指定为路由轨迹的第二末端的第二网路设备(例如,图6I中的网路节点“J”)16、以及至少第三网络设备(例如,图6I中的网络节点“M”)16,所述至少第三网络设备被识别为接合节点并且被配置用于沿着所述路由轨迹经由由所述路由轨迹的第一或第二末端提供的两个可用的非叠合路径中的任意一个向目的地设备14路由任意网络流量。因此,可以沿着路由轨迹12中的至少一个将网络流量转发到目的地设备14。
如图6I中所示,每一个路由轨迹12的第一和第二末端均在“安全网络节点(例如,目的地设备14、与目的地设备直接耦接的另一个网络节点(例如,网络节点“A”或网络节点“B”)、或另一个路由轨迹的接合节点)”处终结。与目的地设备“R”14直接耦接的网络节点(例如,图6I中的“A”)被称为“继承网络节点”。因此,“安全网络节点”可以是目的地设备14、继承网络节点(例如,图6I中的“A”或“B”)、或具有用于到达目的地设备的两个非叠合路径的接合节点中的任意一个。例如,路由轨迹“ARC2”12的两个末端在目的地设备“R”14(也被称为“根网络节点”或“根节点”)处终结;路由轨迹“ARC3”12的第一末端在继承网络节点“A”16处终结,并且路由轨迹“ARC3”12的第二末端在路由轨迹“ARC2”12的接合节点“C”处终结。
在图5和图6I中所示的示例性实施例中,每一个路由轨迹包括一个且仅一个轨迹光标(图6I的18),该轨迹光标提供对沿着路由轨迹指引网络流量的排他控制权。路由轨迹的一个且仅一个接合节点(即,作为接合节点在路由轨迹中被分配有位置的一个且仅一个网络设备)在任何给定时间均具有轨迹光标18的占有权:具有轨迹光标18的占有权的接合节点能够基于轨迹光标18的占有权控制沿着对应的路由轨迹12的网络流量。特别地,具有轨迹光标18的占有权的接合节点(例如,图6I中的“J”)能够沿着其朝向路由轨迹(例如,“ARC2”)12的末端的两个外向定向的链路之一指引网络流量远离其自身。因此,具有轨迹光标18的占有权的接合节点基于该接合节点沿着其自身的外向定向的链路之一路由网络流量远离其自身,而对沿着对应的路由轨迹对网络流量进行路由具有排他控制权。
第二接合节点(即,作为接合节点在路由轨迹中被分配有位置的另一个网络设备)能够基于所检测到的对应的路由轨迹中的故障(例如,从路由轨迹的第一接合节点)获取轨迹光标的占有权,以不考虑所检测到的故障而继续在对应的路由轨迹中路由网络流量。例如,路由轨迹“ARC2”12的接合节点“F”能够基于所检测到的在网络节点“F”和网络节点“C”之间的链路“F-C”中的故障,获取先前由接合节点“J”拥有的对对应的轨迹光标18的占有权,使得网络节点“F”能够朝向节点“J”反转链路“F-J”以继续朝向目的地设备“R”14的可到达性(参见图6H和6I)。因此,在获取了提供对沿着路由轨迹(例如,“ARC2”)12指引网络流量的排他控制权的轨迹光标18的占有权时,第二接合节点(例如,图6H和图6I中的“F”)能够反转所连接的可反转链路之一,而不在无回路路由拓扑10中创建回路。因此,可以基于路由轨迹12中的接合节点(例如,“F”)获取了先前由相同的路由轨迹12中的另一个接合节点(例如,“J”)拥有的路由轨迹18的占有权,响应于检测到该路由轨迹中的故障(例如,链路“F-C”中的故障),立即重路由沿着该路由轨迹(例如,“ARC2”)12的数据流量,以在所述路由轨迹12中向所述目的地设备14继续路由。
图2和6A示出了根据示例性实施例的用于创建图1和6I的无回路路由拓扑10的示例装置20。该装置(即,设备、机器)可以被实现为路由器、中央服务器、网络管理实体等,该装置执行所公开的如下操作:创建无回路路由拓扑10,并且将相关的路由轨迹参数分发给作为无回路路由拓扑10中的网络节点16的实现无回路路由拓扑10的每一个网络设备。装置20是这样的物理机器(即,硬件设备),所述物理机器被配置用于经由建立链路层网格拓扑网络44(参见图2)的数据链路实现与其他物理机器14、16的网络通信。
如图2中所示,装置20包括处理器电路22、设备接口电路24、和存储器电路26。处理器电路22被配置用于为计算网络创建无回路路由拓扑10,所述无回路路由拓扑10包括用于到达目的地设备14的路由轨迹12。存储器电路26被配置用于在状态表54和/或拓扑表56中存储与路由轨迹12相关联的参数,如在下文中参照图4和5所进一步详细描述的。设备接口电路24被配置用于将与路由轨迹12相关联的至少所选择的参数输出给第二装置,用于无回路路由拓扑10的部署:第二装置可以是用于配置网络节点16的网络管理实体、或者是能够由装置20直接配置的网络节点16中的至少一个。因此,设备接口电路24对用于部署无回路路由拓扑的所选择的参数的输出使得计算网络中的网络流量被沿着所述路由轨迹中的至少一个转发到目的地设备。
可以多种形式来在实现装置20中所公开的电路(包括处理器电路22、设备接口电路24、存储器电路26、和它们相关联的组件)中的任意一个。所公开的电路的示例性实现包括以逻辑阵列或通过集成电路的掩模编程实现的硬件逻辑,所述逻辑阵列例如是可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA),所述集成电路例如是专用集成电路(ASIC)。还可以使用由对应的内部处理器电路(例如,微处理器电路(未示出))执行并且使用一个或多个集成电路实现的基于软件的可执行资源来实现这些电路中的任意一个,其中在内部存储器电路(例如,在存储器电路26)中存储的可执行代码的执行使得(一个或多个)集成电路实现处理器电路22以在处理器存储器中存储应用状态变量,从而创建执行在本文中描述的电路的操作的可执行应用资源(例如,应用实例)。因此,在本说明书中对词语“电路”的使用是指使用一个或多个集成电路实现并且包括用于执行所描述的操作的逻辑的基于硬件的电路、或包括(使用一个或多个集成电路实现的)处理器电路的基于软件的电路两者,其中处理器电路包括用于存储由处理器电路通过执行可执行代码修改的应用状态数据和应用变量的处理器存储器的保留部分。例如,可以使用诸如可编程只读存储器(PROM)或EPROM之类的非易失性存储器和/或诸如DRAM之类的易失性存储器来实现存储器电路26。
此外,可以基于以数据结构的形式创建消息/分组并且将该数据结构存储在所公开的装置中的有形存储器介质中(例如,传输缓存中),来实现对“输出消息”或“输出分组”(等)的任何引用。对“输出消息”或“输出分组”(等)的任何引用还可以包括经由通信介质(例如,适当的有线或无线链路)(还可以使用适当的光传输)将在有形存储器介质中存储的消息/分组电子地(例如,经由适当的有线电流或无线电场)发送到另一个网络节点。类似地,基于所公开的装置检测到消息/分组在通信介质上的电子(或光学)传输,并且将所检测到的传输作为数据结构存储在所公开的装置中的有形存储器介质中(例如,接收缓存中),可以实现对“接收消息”或“接收分组”等的任何引用。还应当注意,可以例如基于由处理器电路22执行的存储器地址分配和分割,来由处理器电路22动态地实现存储器电路23。
在描述用于创建路由轨迹的方法之前,先提供如下的定义。
路由轨迹被定义为双末端可反转路径。可反转轨迹被定义为包含一个或多个可反转链路的路由轨迹,并且可反转轨迹可以在轨迹的每一个末端包含一个或多个不可反转链路。在图6B到6H中被标记为“Rev”的数据链路是可反转链路,在图6B到6H中未被标记为“Rev”的链路不是可反转的;因此,可以利用不可反转链路内部的一个或多个可反转链路,基于一个或多个连续的不可反转链路来识别路由轨迹的末端。折叠轨迹(例如,图6I中的“ARC1”、“ARC3”、“ARC6”、“ARC7”、和“ARC8”)被定义为路由轨迹12,所述路由轨迹12不具有可反转链路并且包括一个具有轨迹光标18的固定(即,不可转移)占有权的网络节点和两个用作折叠轨迹的相应末端的其他网络节点16。例如,图5和图6I中所示的折叠轨迹“ARC1”12包括网络节点“J”、“M”、和“K”,其中网络节点“M”具有在折叠轨迹“ARC1”12的相应末端处的网络节点“J”和“K”之间的轨迹光标18的固定占有权。
在一端被用箭头指定并且具有命名“SPF”的链路表示在根据诸如开放最短路径优先(OSPF)之类的传统路由协议生成的树中找到的链路,从而箭头末端处的网络节点表示箭头尾部末端处的网络节点的最短路径优先(OSF)后继者(例如,图6A中的网络节点“A”是网络节点“C”和“D”的SPF后继者)。将使用一个末端处的箭头来指定轨迹的边缘处(即,终结轨迹并且将轨迹连接到第二轨迹或目的地)的任何链路。用“TOP”(表示“随后的其他路径”)指定的链路表示这样的链路,该链路并不是通过OSPF被选择的(这是因为其不是最短路径后继者),但可以被用作替代的下一跳(即,可行的后继者),例如用于生成有向无环图(DAG)(参见例如美国专利No.7656857)。
如上文中所描述的,具有轨迹光标的占有权的网络设备可以决定应当沿着轨迹在哪个方向转发网络流量。因此,如果“安全网络节点”能够沿着轨迹在两个方向中的任意一个方向转发网络流量,则网络节点被确定为“安全网络节点”(即,即使沿着轨迹的一个方向出现故障,“安全网络节点”也能够在沿着轨迹的另一个方向安全地转发任何分组)。
被利用“?-S”指定的链路表示针对接合节点“S”未被分解(resolve,也译为解析)的候选链路,其中,接合节点“S”被识别为经由具有命名“?-S”的链路的网络节点的最近的安全网络节点:对候选链路的引用表示当路由轨迹的两个末端尚未被确立、且尚未确立是否在路由轨迹的形成中使用该候选链路时的瞬时状态。如在下文中参照图6B-6F所进一步详细描述的,利用“?-S”指定的链路也识别用于到达安全节点“S”的subDAG(子DAG,即DAG中的DAG)。
被利用“Rev”指定的链路指示连接路由轨迹12中的两个网络设备(即,网络节点)的可反转链路:如图6H和6I中所示,具有至少一个可反转链路的网络节点(例如,“J”)位于轨迹的中间,并且可以具有针对对应的路由轨迹的轨迹光标18的占有权。如图6H和6I中所示,处于路由轨迹的边缘处(例如,在第一轨迹处终结并且进入第二轨迹、或者在目的地节点D处终结)的数据链路被指引远离路由轨迹12的中间(以及具有对应的轨迹光标18的占有权的接合节点),并且路由轨迹12的边缘处的数据链路不是可反转的。
在一个末端处被利用方形或菱形框指定的链路(例如,图6C中的“M□→J”)表示不可反转的阻塞链路,其中目的地网络节点(例如,图6C中的网络节点“J”)无法将任何数据流量发送到其他源网络节点(例如,图6C中的“M”),但源网络节点(例如,图6C中的“M”)能够经由链路(“M□→J”)将数据流量发送到目的地网络节点(“J”)。在计算期间使用阻塞链路以防止任何回路形成。
如在下文中所进一步描述的,数据链路被定向为远离具有轨迹光标的占有权的接合节点并且朝向路由轨迹12的边缘,并且可以通过移动轨迹光标18(即,将光标的所有权从一个网络节点传递到另一个网络节点)来改变可反转链路的链路定向。
在被识别为接合节点的网络节点之间建造路由轨迹12。接合节点68是通过非叠合路径(即,单个点的故障无法阻止从接合节点到根节点的可到达性)与两个或更多个安全网络节点(如下所述)连接的网络节点。边缘接合点被定义为终结一个且仅终结一个可反转链路的接合节点68,其中边缘接合点可以具有向内和/或向外定向的多个不可反转链路。中间接合点被定义为终结两个且仅两个可反转链路的接合节点68,其中与中间接合点耦接的所有其他链路被向内定向,以避免回路:可以朝向中间接合点安全地反转链路。因此,中间接合点包括来自任何其他网络节点的零个或更多个向内定向的链路和两个可反转链路。折叠轨迹并不具有任何中间接合点,并且边缘接合点可以属于一个或多个折叠轨迹。
根网络节点14被定义为网络中的必须被访问以到达资源(即,不存在可以绕开根网络节点到达资源的第二个路径)的单个网络节点(即,目的地设备)。从识别给定路由拓扑10的根节点(即,目的地节点)14开始,计算路由轨迹12。根节点14的示例可以包括路由轨迹12中的自主有向无环图的头末端、到另一网络的网关、或任何可识别的目的地。所有的根链路均被朝向根节点14向内定向并且被分解。
“继承”网络节点是直接连接到根网络节点14的网络节点。如图1和6A-6I中所示,用作根网络节点14的目的地设备必须具有与根网络节点14直接连接的至少两个继承网络节点(例如,图6A-6I中的网络节点“A”和“B”):如果根网络节点仅具有一个继承节点,则(基于根网络节点的不具有到达资源的第二路径的定义)继承网络节点将被指定为新的根节点。继承网络节点被用于识别安全网络节点:如果网络节点能够经由第一继承网络节点或第二继承网络节点到达根节点,则该网络节点被视为安全网络节点,这是因为其能够经由两个非叠合路径(即,经由第一继承网络节点或经由第二继承网络节点)将分组路由到根,从而确保了在朝向根节点的路径之一断裂的情况下的可到达性。
叶网络节点是具有一个且仅一个数据链路的节点:叶节点不可能是接合节点,并且不属于路由轨迹12。与叶网络节点耦接的数据链路总是被向外定向(即,远离叶网络节点)并且被分解。
安全网络节点是用于识别根网络节点14、继承节点(例如,图6A-6I中的“A”或“B”)、或接合节点中的任意一个的指定节点。因此,接合节点是这样的网络节点,其既不是根网络节点14也不是继承网络节点,而是安全网络节点,这是因为其具有到达根网络节点的两个或更多个非叠合路径,从而单个点的故障不能将接合节点与根网络节点切断。如果必须翻转可反转链路的方向以获得替代路径,则网络节点可以被识别为接合节点。
因此,与继承网络节点和根网络节点相连接的网络节点是接合节点;与两个不同的继承网络节点相连接的网络节点是接合节点;与继承网络节点和接合节点相连接的网络节点也是接合节点;与两个不同的接合节点相连接的网络节点也是接合节点。由于根网络节点、继承网络节点、和接合节点均被定义为安全网络节点,因此与两个不同的安全网络节点相连接的网络节点是接合节点;具有到至少两个不同的安全网络节点的非叠合路径的网络节点是接合节点(可以将接合节点视为“看向”安全网络节点,并且在仅经由该接合节点能够到达所述安全网络节点的情况下隐藏所述安全网络节点);仅看到一个接合节点的网络节点在该接合节点的“subDAG”内并且能够被这样追踪。
因此,数据分组必须沿着路由轨迹12行进,并且仅可经由路由轨迹12的末端之一处的边缘接合点离开路由轨迹12。因此,数据分组能够基于沿着一个或多个路由轨迹12行进来到达根节点(即,目的地节点)14。
图3A是示出根据示例性实施例的由图2的装置20进行的示例性方法的图示,该方法包括创建包括用于到达目的地设备14的路由轨迹12的无回路路由拓扑10。图3B、3C、和3D示出了根据另一个示例性实施例的由装置20进行的用于创建无回路路由拓扑10的另一个方法。图3A-3D中描述的步骤能够被实现为在计算机或机器可读非暂时有形存储介质(例如,软盘、硬盘、ROM、EPROM、EEPROM、非易失性RAM、CD-ROM等)上存储的可执行代码,基于使用一个或多个集成电路实现的处理器电路执行代码来完成所述步骤。在本文中描述的步骤也可被实现为用于执行的在一个或多个非暂时有形介质中编码的可执行逻辑(例如,可编程逻辑阵列或器件、现场可编程门阵列、可编程阵列逻辑、专用集成电路等)。
参见图3A,处理器电路22能够基于在步骤30中创建第一路由轨迹12作为基础结构轨迹(即,非折叠轨迹的路由轨迹)来创建无回路路由拓扑10:在步骤30中创建的第一路由轨迹12(例如,图1中的12a或12b)具有在目的地设备(即,根节点)14处终结的两个末端。处理器电路22能够根据下述规则(在步骤30中创建的第一路由轨迹12a或12b之后)在步骤S32中创建下一个路由轨迹12作为基础结构轨迹(例如,12b之后的12c)或折叠轨迹(例如,12a之后的12d):(1)正在建造的下一个路由轨迹12必须在现有的路由轨迹的接合节点中或目的地设备14处终结(例如,路由轨迹12c的一端在路由轨迹12b处终结,另一端在目的地设备14处终结);以及(2)除了在现有的路由轨迹的接合节点中终结的路由轨迹的一端之外,必须使得正在创建的路由轨迹来自尚未处于现有的路由轨迹中的网络节点;换言之,在规则(2)中,下一个路由轨迹12包括与现有的路由轨迹的网络设备中的任意一个不同的网络设备。在步骤34中可以由处理器电路22构造下一个路由轨迹12,直到针对具有至少两个数据链路的所有网络节点已经完成所有路由轨迹为止。处理器电路22在步骤S36中识别包括仅一个数据链路的任何叶网络节点,并且在步骤38中实现在步骤30、32、34、和36中构造的无回路路由拓扑10。
如步骤30、32、和34所示,优选在任何其他路由轨迹12(例如,12c或12d)之前创建第一路由轨迹12(例如,12a或12b);然而,可以任意顺序创建图1中的路由轨迹12,只要遵从步骤32的规则以确保无回路形成即可,其中“现有的路由轨迹”是指已经为另一个路由轨迹分配的一组网络节点。因此,只要满足下述条件,即可使用用于创建无回路路由拓扑10的替代技术:在形成期间路由轨迹12并不彼此交叉;或者彼此交叉的任何路由轨迹12在交叉点(例如,折叠轨迹)处共享相同的光标,从而使得所有的网络流量被指引远离光标点。
处理器电路22在步骤38中能够基于使得设备接口电路24输出与路由轨迹12相关联的至少所选择的参数给至少一个其他装置(例如,网络路由器、网络管理装置、一个或多个网络节点等)来部署无回路路由拓扑10,从而使得路由拓扑10中的网络流量将沿着路由轨迹12中的至少一个被转发到目的地设备14。如果在步骤40中例如由装置20或网络节点14或16中的一个检测到了路由轨迹之一中的链路故障(或网络节点故障),则在步骤S42中可以由与链路故障相邻的接合节点(例如,由处理器电路22通过传输、重新分配等)获取轨迹光标18的占有权,从而使得接合节点能够基于反转可反转链路之一来控制网络流量以朝向目的地设备14继续路由,而不在无回路路由拓扑10中创建回路。
图3B、3C、和3D示出了根据示例性实施例的由处理器电路22进行的用于创建包括图6I的路由轨迹12的无回路路由拓扑10的示例性方法。
根据示例性实施例,可以创建这样的无回路路由拓扑10,在该无回路路由拓扑10中,尝试建立除了根网络节点和继承网络节点之外的作为接合节点的每个网络节点,以确保每一个网络节点具有到目的地设备(即,根网络节点)14的最短路径和替代路径。这种确保是通过创建在安全网络节点处终结的路由轨迹12建立的。由于用于创建有向无环图(DAG)的传统技术并不确保有向无环图中的每一个节点都可以是接合点,因此示例性实施例使得链路响应于网络节点或网络链路中的检测到的故障而被反转,从而使得可以立即进行数据流量的重路由,而不必进行路由的重新计算且不会在拓扑中形成任何回路。因此,示例性的实施例能够建立用于到达根网络节点的路由轨迹的无回路路由拓扑,该无回路路由拓扑包括根网络节点、与根网络节点耦接的两个或更多个继承网络节点、接合节点、和零个或更多个叶网络节点。
如在下文中参照图3B、3C、4-5、和6A-6I所进一步详细描述的,基于下述各项来创建无回路路由拓扑10:生成用于到达目的地设备14的第一有向无环图;(在第一有向无环图内)识别具有用于到达目的地设备14的非叠合路径的接合节点;识别沿着非叠合路径且不会在无回路路由拓扑10中引入或创建回路的接合节点之间的可反转链路;以及在第一有向无环图中识别用于到达接合节点之一的至少一个第二有向无环图(也被称为“subDAG”),第二有向无环图包括具有用于到达目的地设备的新的非叠合路径的被识别出的新的接合节点。
在本公开中,可以通过连接网络节点来识别链路,从而使得链路“A-R”指代将网络节点“A”连接到下一跳网络节点“R”的有线或无线链路:链路命名中的箭头可以指代所分配的方向(例如“A→R”和“R←A”等同地识别将流量从节点A指引到节点R的链路),而在链路命名中缺少箭头(例如“A-R”)是指尚未将方向分配给链路。
参照图2和3B,处理器电路22识别包括有线或无线数据链路(例如,有线或无线IEEE802.11、蓝牙等)46的数据链路层拓扑44(图2),并且在步骤50中创建用于到达目的地设备14的有向无环图(DAG)52,如图6A中所示。具体而言,图2的链路层拓扑44包括例如互联网络节点的链路层(即,OSI的第2层)网格形式的具有一个或多个链路层连接(例如,有线或无线IEEE802链路、蓝牙链路等)的网络节点14,所述一个或多个链路层连接互连网络节点。例如根据在美国专利No.7656857中描述的技术,由处理器电路22在步骤50中生成有向无环图52,其中被标记为“SPF”的链路识别SPF拓扑中的最短路径优先(SPF)链路,而被标识为“TOP”的链路识别覆盖SPF拓扑的“则其他路径”(TOP)链路,其导致形成朝向根节点“R”的有向无环图(DAG)。总而言之,在步骤50中由处理器电路22基于识别与根节点14相邻的下一跳节点并且将每一个下一跳节点的链路朝向根定向来形成有向无环图。随后识别次相邻(与每一个下一跳节点相邻的)节点,并且扩展从下一跳节点到相关联的次相邻节点的路径,同时将次相邻节点和下一跳节点之间的每一个链路定向为朝向下一跳节点。递归地重复这些步骤直到路径扩展到网络中的最远节点为止,并且将所述链路定向回朝向根以形成有向无环图。
在针对图6A-6I的路由轨迹12的计算期间,在存储器电路26中保持SPF链路的SPF状态。图4(包括图4A、4B、4C、和4D)示出了示例性状态表54,所述示例性状态表54能够被存储在存储器电路26中,并且被配置用于存储在图3B、3C、和3D的方法的执行期间网络节点和数据链路中的状态变化。
图5示出了示例性拓扑表56,所述示例性拓扑表56能够被存储在存储器电路26中,并且被配置用于存储在路由轨迹被构造以到达目的地设备(即,根网络节点“R”)14时的轨迹拓扑属性。处理器电路22能够在状态表54被更新期间(例如,在识别SPF链路时、在识别可反转链路时、在识别接合节点68时、在创建路由轨迹时等)更新图5的拓扑表56中的每条,其中由具有两个向外定向的可反转链路的接合节点68来识别轨迹光标18的所有权。因此,处理器电路20在步骤50中将SPF链路58和非SPF链路(图5中未示出)存储在拓扑表56中。
如图6A中所示,DAG拓扑52中没有一个网络节点(除了网络节点“J”之外)具有用于到达根节点“R”的至少两个非叠合路径。因此,图3B、3C、和3D的方法提供了在无回路路由拓扑10中的路由轨迹12的创建,路由轨迹使得网络流量能够沿着路由轨迹经由路由轨迹的末端中的任意一个朝向目的地根网络节点被路由。
在步骤50中形成有向无环图之后,路由轨迹的生成在图3B的步骤60中开始,其中保持SPF链路,同时将有向无环图中的非SPF链路选择性地修改为单向链路或可反转链路。每一个网络节点和每一个数据链路的状态可以被存储在存储器电路中。
在步骤60中从识别根网络节点R并且朝向根(A→R,B→R)对未定向的链路进行定向(如在事件200处通过图4A的状态表中的状态变化所示)开始路由轨迹的生成,并且在步骤62中发起对继承网络节点(例如,节点A)的识别。如在下文中所进一步详细描述的,在步骤62中由处理器电路22依次分析SPF节点,以识别朝向目的地设备14的DAG52中的下属有向无环图(subDAG,也称为子DAG)64(例如,图6B的64a和64b)。与根网络节点14耦接的每一个继承网络节点链路(例如,A-R)被朝向根网络节点向外定向,并且在状态表54中被标记为被分解(A→R=Resolved)(图4A的事件202)。在步骤66中依次分解每一个相邻网络节点,以识别子DAG64中的具有用于经由与子DAG64不同的路径到达目的地设备14的替代非叠合路径的任何接合节点;换言之,每一个相邻网络节点16被依次分解,以在子DAG64中识别出具有用于到达目的地设备的至少两个非叠合路径的任何接合节点。
图3C和3D进一步详细地示出了在步骤66中由处理器电路22执行的步骤。以针对名为“resolve_neigbor(N)”的函数调用的“C代码”(被以概况标注进行标注以识别嵌套操作)的示例形式来说明图3C和3D的步骤。图6B到6I中省略了装置20以简化说明,但显然在路由轨迹12的计算和无回路路由拓扑10的创建期间装置20将一直存在。
在步骤70中,如果正在分析的相邻节点“N”是包括一个且仅一个数据链路的叶网络节点,则由处理器电路22来执行步骤70中的第一操作。在本示例中,当前的执行状态是图4A中的状态202,其中正在分析继承网络节点“A”;因此,由于继承网络节点A不是叶节点,步骤70被跳过。如果正在分析的相邻节点“N”不是安全节点,则由处理器电路22执行步骤72。在分析继承网络节点“A”的当前状态时,由于继承网络节点A是安全网络节点(因此其是继承网络节点),所以步骤72被跳过。
如上所述,由处理器电路22执行的方法尝试识别作为安全网络节点的相邻网络节点。因此,尚未被标记(即,未被标记)的正在分析的安全网络节点(例如,Node N=Node A)中的任意一个链路(N-i)(例如,D→A、C→A)最初被设置为朝向最近的安全节点的未被分解的状态(D→A=“?-S”;C→A=“?-S”),以指示尚未确定链路(例如,D→A、C→A)是否将网络节点(例如,节点A)耦接到使得链路能够被反转的另一个安全网络节点,或者链路是否将网络节点耦接到不安全的网络节点(即,不是先前定义的安全网络节点的网络节点)。
在步骤74中,根据SPF标识按序(即,提供最短路径优选的链路、然后是外向链路(outgoing link)、最后是进入链路(incoming link))对正在分析的安全网络节点(例如,Node N=Node A)的每一个链路(N-i)进行分解。在步骤76中如果数据链路已经被分解,则在步骤74中处理器电路22的执行继续到下一个链路:注意链路A→R被分析,并且在根网络节点14中结束,将链路A→R识别为终结路由轨迹12。处理器电路22当前跳过步骤78到86,这是因为正在分析的安全网络节点(例如,nodeN=node A)不具有其他未被分解的外向链路。在步骤74中处理器电路22返回到下一个链路(即,进入链路)。
在步骤88中如果处理器电路22确定正在分析的未被分解的链路(其不是SPF链路或外向链路)不具有分配的方向,则该链路被分配以进入方向以将流量朝向正在分析的安全网络节点(例如,Node N=Node A)指引。如果进入链路(例如,基于初始有向无环图的D→A)被标记为未被分解的状态(例如,D→A=“?-S”),则进入链路被相对于正在分析的安全网络节点标记为未被分解的状态(即,将链路D→A从“?-S”重置为“?-N”)。因此,将链路“D→A”重置为状态“?-A”(Node N=Node A:D→A=“?-A”);在步骤74和88中由处理器电路22为节点A的下一个链路重复该过程,因此在步骤88中链路“C→A”被重置为状态“?-A”(C→A=“?-A”),指示尚未确定链路“D→A”和“C→A”是否可反转以到达另一个安全网络节点(朝向最近的安全网络节点对链路进行定向)。因此,未被分解的状态指示尚且无法形成路由轨迹,这是因为尚未发现未被分解的链路能够朝向到根网络节点的替代非叠合路径被反转。在步骤88中递归地重新标记朝向安全网络节点“N”(Node N=Node A)的子DAG中的所有的未被分解的进入链路,从而经由被标记为“?-A”的链路来识别图6B的子DAG(A)64a。
在分析了用于正在分析的安全网络节点(例如,Node N=Node A)的所有链路之后,由处理器电路22针对尚未被分析的(在步骤50的SPF计算中)具有到根网络节点“R”的最短路径的下一个节点(例如,继承网络节点“B”)重复图3B中的步骤62和66的过程(图4A的事件204)。在步骤62中,由处理器电路22识别出作为继承网络节点的网络节点“B”,并且由处理器电路22识别出作为SPF链路的根链路“B→R”,所述根链路“B→R”被朝向所述根网络节点定向并且在步骤62中在状态表54和拓扑表56中被标记为被分解的SPF链路。如图3C和3D中由处理器电路22执行步骤66所示,由于网络节点“B”被识别为具有额外的进入链路“K-B”的继承网络节点(因此为安全网络节点),所以处理器电路22跳过步骤70和72,并且在步骤88中处理器电路22将状态表54中的链路“K→B”的状态从“?-S”改变为“?-B”(K→B=“?-B”)。剩余的进入链路被朝向最近的安全节点“B”递归地分解,得到图6B的子DAG(B)64b。
在图3B的步骤62中,由处理器电路22将处理继续到通过SPF计算被识别出的尚未被分析的与根网络节点“R”最近的下一个节点,即网络节点“K”(图4A的事件206)。由于网络节点“K”不是叶节点,所以图3C的步骤70被跳过。因此,网络节点“K”不是安全网络节点,因为其还不具有到根网络节点“R”的两个非叠合路径,取而代之的是,网络节点“K”当前仅具有到安全网络节点“B”的SPF链路“K→B”。因此,由处理器电路22将所有的非SPF链路(例如,M-K和J-K)分配为被定向进入当前正在分析的网络节点“K”,并且在步骤72中由处理器电路22将链路标记为对于最近的安全网络节点未被分解(例如,M→K=“?-B”;J→K=“?-B”)。
因此,当前一组被分析的网络节点包括网络节点“A”、“R”、“B”、和“K”。
由处理器电路22在图3B的步骤62和104中将该方法继续到下一个SPF网络节点,该下一个SPF网络节点被识别为不是安全网络节点的网络节点“M”(图4A的事件208)。处理器电路22跳过步骤70,节点“M→K”被识别为SPF链路,并且在步骤72中,链路“J-M”在状态表54中被分配为具有到最近的安全网络节点“B”的未被分解的状态的进入链路(J→M=“?-B”)。
在图3B的步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“D”(事件210),链路“D→A”被识别为SPF链路,处理器电路22跳过步骤70,并且由于网络节点“D”不是安全网络节点,因此在步骤72中由处理器电路22将剩余的非SPF链路分配为进入网络节点“D”,并且剩余的非SPF链路在状态表54中被标记为对于最近的安全网络节点“A”未被分解(C→D=“?-A”;E→D=“?-A”;L→D=“?-A”)。如在下文中所进一步详细描述的,可以跟踪每一个网络节点的每一个非SPF链路的开销以用于以后的分析。在步骤72中,由处理器电路22针对网络节点“C”重复该方法(事件212),导致链路“C→A”被识别为SPF链路,并且在状态表54中标记链路E→C=“?-A”和F→C=“?-A”。
在图3B的步骤62中从SPF节点中选择的下一个网络节点是网络节点“L”(事件214)。处理器电路22跳过步骤70,并且由于网络节点“L”不是安全网络节点,因此在步骤72中,由处理器电路22将链路L→D识别为SPF链路,链路“E-L”被分配为进入网络节点“L”,并且在状态表54中被标记为对于最近的安全网络节点“A”未被分解(“E→L”=“?-A”)。
在图3B的步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“E”(事件216)。步骤70被跳过,并且由于网络节点“E”不是安全网络节点,因此在步骤72中,由处理器电路22将链路E→C识别为SPF链路,并且所有的非SPF链路被定向为进入网络节点“E”,并且被标记为对于最近的安全网络节点“A”未被分解,导致在状态表54中标记链路F→E=“?-A”,G→E=“?-A”,并且H→E=“?-A”。
在图3B的步骤62和104中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“F”(事件218)。处理器电路22跳过步骤70,并且由于网络节点“F”不是安全网络节点,因此在步骤72中,由处理器电路22将链路F→C识别为SPF链路,将所有的非SPF链路定向为进入网络节点“F”,并且将所有的非SPF链路标记为对于最近的安全网络节点“A”未被分解,导致在状态表54中标记链路H→F=“?-A”,I→F=“?-A”,并且J→F=“?-A”。
在图3B的步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“N”(事件220)。基于其一个且仅一个链路N→L,由处理器电路22将网络节点“N”识别为叶网络节点;因此,在步骤70中,链路“N-L”在状态表54中被标记为被分解(N→L=Resolved)。
在图3B的步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“G”(事件222)。步骤70被跳过,并且由于网络节点“G”不是安全网络节点,因此在步骤72中由处理器电路22将链路G→E识别为SPF链路,并且非SPF链路H-G被定向为进入网络节点“G”,并且被标记为对于最近的安全网络节点“A”未被分解,导致在状态表54中标记链路H→G=“?-A”。
在步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“H”(事件224)。由于网络节点“H”不是安全网络节点,因此在步骤72中由处理器电路22将链路H→F识别为SPF链路,并且非SPF链路I-H被定向为进入网络节点“H”,并且被标记为对于最近的安全网络节点“A”未被分解,导致由处理器电路22在状态表54中标记链路I→H=“?-A”。
由处理器电路22选择的下一个网络节点是网络节点“I”(事件226)。由于网络节点“I”不是安全网络节点,因此在步骤72中由处理器电路22将链路I→F识别为状态表54的SPF链路。如上所述,在图5的拓扑表56中也可以由处理器电路22来标记每一个SPF链路58。
从针对图6B的以上描述中显而易见的是,SPF链路和未被分解的链路的识别使得最短路径树和替代的未被分解的链路能够被识别,所述替代的未被分解的链路可以用于识别与到根网络节点的最短路径不同的替代非叠合路径。以下针对节点“J”的描述说明了替代的未被分解的链路的识别如何能够支持识别子DAG64a和64fb中的一个或多个接合节点以用于轨迹路由拓扑的形成。
特别地,以下的描述说明了在不将回路引入到无回路拓扑中的情况下在DAG52中识别(两个或更多个)接合节点、以及接合节点之间的能够沿着接合节点的非叠合路径之一被反转的可反转链路(被标记为“Rev”)。此外,识别一个子DAG(64a或64b)中的具有用于到达目的地设备14的非叠合路径的接合节点(与用作子DAG的根的接合节点不同)使得覆盖第一基础结构轨迹的另一个基础结构轨迹被形成。
如相对于图6B和6C所述,在图3B的步骤62中由处理器电路22从SPF节点中选择的下一个网络节点是网络节点“J”(事件228)。由处理器电路22将节点“J”识别为安全网络节点,这是因为其可以被归类为接合节点68,如图3C和3D中所示。可以由处理器电路22将节点“J”识别为接合节点,这是因为其具有用于经由链路J→F(被标记为对于最近的安全网络节点“A”未被分解,即“?-A”)和/或链路J→K(被标记为对于最近的安全网络节点“B”未被分解的SPF链路,即“?-B”)到达安全节点(例如,根网络节点“R”)的两个非叠合路径。因此,通过链路J→F和J→K提供的非叠合路径通过相应的区别性标记“?-A”和“?-B”被识别出来,所述相应的区别性标记“?-A”和“?-B”识别经由相应的安全网络节点“A”和“B”到根网络节点“R”的可到达性。
由于网络节点“J”被识别为接合节点,所以处理器电路22跳过步骤72。在步骤74中按照规定的顺序(即首先SPF链路、随后任何外向链路、随后任何进入链路)分解网络节点“J”的每一个数据链路。因此,链路J→K是SPF链路,并且从而是在步骤74中要被分析的第一链路。由于在步骤76中链路J→K未被分解,因此在步骤78中外向链路J→K并不在另一个接合点处结束,从而跳过步骤80。
参照图3D,如果网络节点还不是中间接合点,则处理器电路22确定是否执行步骤82。由处理器电路22针对网络节点“J”的链路J→K执行步骤82,这是因为如果链路J→K被反转,则链路反转将使得端点网络节点“K”变为接合节点,即端点网络节点“K”现在将具有经由安全网络节点“A”到根网络节点“R”的替代路径(例如,如果在链路从“?-B”反转到“?-A”时改变链路J→K的标记的话)。因此,链路J→K使得节点“J”能够变为接合点并且不会导致SPF链路J→K的任何修剪。因此,通过在步骤82中由处理器电路22在状态表54中将链路J→K标记为可反转(“Rev”),来分解链路J→K。图6D中示出了将链路J→K标记为可反转(“Rev”)。
由于节点“J”是朝向安全网络节点“B”的边缘接合点,所以由处理器22执行步骤84以防止在链路J→K永远被反转为K→J以到达安全网络节点“A”的情况下经由向外链路“J→M”形成回路;因此,由于“J→M”=“?-B”是满足条件“?-S”的向外链路(其中S=B),所以在步骤84中通过阻挡朝向节点“M”的路径来修剪向外链路“J→M”=“?-B”(注意,链路末端处的图6C中的方框□与网络节点“M”相交,指示从网络节点“J”到网络节点“M”的流量被阻塞);由处理器电路22将被修剪(即,被阻塞)的链路J-M的方向反转并其重新标记为向内朝向新的安全网络节点(接合节点)而未被分解,即在状态表54中的M□→J=“?-J”。
还应当注意,如果在步骤84中存在作为朝向安全节点“B”的未被分解的链路的另一个链路(例如,J→B)(图6B中未示出)(J→B=“?-B”),则该链路(J→B)可以在两个末端被修剪(即,移除:J□-□B),以避免在任何链路反转的情况下的任何回路的可能性。
因此,为了避免回路,路由轨迹中的接合节点可以具有一个且仅一个朝向轨迹的第一末端的链路、和一个且仅一个朝向轨迹的第二末端的其他链路。在步骤84中链路J→F未受影响,这是因为J是(经由J→K)朝向安全节点“B”的边缘接合点,而节点J→F朝向其他安全网络节点“A”。
处理器电路22针对接合节点“J”跳过步骤86,这是因为其不是中间接合点,这是因为其尚不具有两个可反转链路。跳过步骤88,因为SPF链路J→K被分配为向外链路。
在步骤90中继续由处理器电路22相对于SPF链路J→K(“Rev”)执行步骤78,其针对链路J→K的端点(即,网络节点“K”)递归地调用步骤66的执行(如图3C和3D中所示),以便沿着最短路径扩展轨迹;换言之,基于链路J→K到可反转链路的状态变化来执行图3C和3D的步骤(图4B的事件230)。因此,针对J→K链路端点节点“K”(其不是叶节点)跳过步骤70。J→K链路使得端点节点“K”现在变为接合节点,这是因为链路J→K链路现在是可反转的,因此网络节点“K”作为接合节点(具体而言,边缘接合点),并且现在是安全网络节点,因此处理器电路22跳过步骤72。从SPF链路K→B开始,在步骤74中对每一个安全网络节点“K”链路进行分解:处理器电路22跳过步骤76,这是因为SPF链路K→B=“?-B”尚未被分解。SPF链路K→B是外向链路,因此由处理器电路22执行步骤78:处理器电路22不执行步骤80,这是因为节点K→B不在另一个接合节点中结束(即,继承网络节点B不是接合节点)。由处理器电路22执行步骤82,这是因为网络节点“K”尚不是中间接合节点,并且链路K→B使端点网络节点B变为接合节点,因此在步骤82中节点K→B被标记为可反转,K→B=“Rev”,以使得继承网络节点“B”变为被由处理器电路22在状态表54中标记为接合节点。
在步骤84中,节点N=K现在是朝向节点“B”的边缘接合点,不存在要被修剪的向外的未被分解的链路,然而由处理器电路22在状态表54中将链路M→K从“?-B”重新标记为到“?-K”。在步骤86中,由处理器电路22现在将网络节点“K”识别为具有两个可反转链路J→K=“Rev”和K→B=“Rev”的中间接合点,但不存在与两个可反转链路不同的其他的向外链路,因此无需对其他的向外链路进行修剪。
因此,在节点J处将链路J→K作为可反转链路的分解使得在步骤90处由处理器电路22递归地分解链路端点K的分解,导致节点K处的可反转链路K→B的分解。在节点K处的可反转链路K→B的分解导致在步骤90中处理器电路22对链路端点B的递归分解(事件232)。
继承网络节点B被基于可反转链路K→B识别为边缘接合点,并且由于SPF链路B→R是到根的,所以继承网络节点“B”被识别为路由轨迹的末端。节点B的分解使得处理器电路22在步骤90中的递归执行返回到网络节点“K”(事件234)以继续分解网络节点K的剩余链路。
因此,在网络节点K中已经分解了SPF链路,没有外向链路需要被分解,从而使得在步骤74处对链路M→K=“?-K”进行分析。处理器电路22跳过步骤76、78中的每一个,这是因为链路M→K不是外向的,并且进入链路已经被标记为对于K未被分解“?-K”。因此,在步骤90中,处理器电路递归地分解链路K→M的端点M(事件236)。
在步骤72中由处理器电路22确定网络节点M是安全节点,这是因为其具有到根的两个非叠合路径,即经由链路M→K的路径“?-K”和经由链路M→J的路径“?-J”。从最短路径链路M→K开始,在步骤78中,链路在步骤80中被识别为在另一接合点“K”中结束,从而使得由处理器电路22将链路M→K(以及图6D和6I中的折叠轨迹“ARC1”的第一末端)在状态表54中标记为未被分解。在步骤90中处理器电路22从网络节点M到网络节点K的递归调用(事件238)导致没有变化,因此处理器电路22返回到网络节点M(事件240),并且在步骤80中处理器电路22将下一个外向且未被分析的链路M→K=“?-J”以及图6I中的折叠轨迹“ARC1”的第二末端)分解为被分解的链路。
参照图4B,完成了(作为链路M-K的端点的)网络节点“M”的递归分解,使得处理器电路22在图4C的事件242处返回到网络节点“K”;还完成了网络节点“K”的递归分解,使得在事件244处返回到网络节点“J”。
需要注意的是,网络节点“K”和“M”是不改变链路可反转性的接合节点。因此,链路M→K终结路由轨迹,这是因为其在接合节点“J”中结束,并且链路M→K在路由轨迹中终结,这是因为其在另一个接合节点“K”中结束。因此,网络节点“J”、“K”、和“M”形成折叠轨迹“ARC1”12,如图6D中所示。
在步骤74中处理器电路22重复对接合节点“J”的下一个链路(即,外向链路J→F=“?-A”)的链路分析。在跳过步骤76之后,处理器电路22跳过步骤80,这是因为网络节点“F”在图6D中并不是接合点,所以链路J→F并不在另一个接合点中结束。网络节点“J”尚不是中间接合点,因为其并不具有两个可反转路径,因此执行步骤82以使得链路J→F可反转(J→F=“Rev”),这是因为链路J→F的反转使得端点网络节点“F”变为具有经由“?-A”到达根网络节点“R”的替代路径和经由网络节点“J”的路径的接合点。网络节点“J”已经是边缘接合点,因此跳过步骤84。
但在步骤78中将链路J→F标记为可反转现在使得安全节点“J”成为中间接合点,因此由处理器电路22执行步骤86:步骤86中的描述“修剪安全节点N的除了2个可反转链路之外的所有向外链路”确保了除了沿着(经由网络节点F、J、K、和B形成的)轨迹12的向外链路之外没有向外链路,从而任何其他链路被修剪并被向内指引(像先前针对链路M□→J执行的那样)。处理器电路22跳过步骤88,这是因为链路J→F不是进入的,并且执行步骤90以递归地分解链路J→F的端点节点的邻居点(即,网络节点“F”)(事件246)。
在具有多个链路的网络节点“F”的分解期间,处理器电路22跳过步骤70。网络节点“F”被识别为边缘接合点(并且因此是安全节点),这是因为其具有到根节点“R”的两个非叠合路径,并且网络节点“F”包括一个可反转链路J→F,因此跳过步骤72的执行。如在下文中所进一步详细描述的,接合节点“F”属于图6B的子DAG(A)64a,并且接合节点“J”、“K”、和“B”属于子DAG(B)64b;因此,可以创建包括(至少两个或更多个)接合节点和(一个或多个)可反转链路的第一基础结构轨迹(图6E中所示的“ARC2”)12,其中第一基础结构轨迹的一个末端在目的地设备“R”处终结。
在步骤74中,从SPF链路F→C开始,分析安全节点“F”的链路中的每一个:跳过步骤76和80,由处理器电路22执行步骤82以将链路F→C标记为可反转(F→C=“Rev”)。由处理器电路22执行步骤84,这是因为网络节点“F”现在是朝向“S”(S=A)的边缘接合点。因此,在步骤84中,被标记为“?-A”的任何外向的未被分解的链路(例如,F→E=“?-A”)被处理器电路22向内朝向边缘接合点修剪并且反转,并且在状态表54中被标记为朝向边缘接合点未被分解(例如,从F→E=“?-A”到E□→F=“?-F”的改变);此外,在步骤84中,由处理器电路22将安全节点“F”的所有进入链路(即,向内链路)从“?-A”改变为“?-F”(例如,将H→F=“?-A”和I→F=“?-A”改变为H→F=“?-F”和I→F=“?-F”)。在步骤84中在状态表54中重新标记链路E□→F、H→F和I→F将网络节点“E”、“H”、和“I”暴露给经由边缘接合点“F”到根节点“R”的替代路径,使得网络节点“E”、“H”、和“I”在以后被识别为具有与由子DAG(A)64a提供的路径不同的用于到达根节点“R”的新的非叠合路径的新的接合节点(并且因此是安全网络节点)。因此,网络节点“E”、“H”、和“I”可以在以后被用于基于与子DAG(A)64a不同的非叠合路径创建第二基础结构轨迹。
边缘接合点“F”尚不是中间接合点,因此跳过步骤86,并且跳过步骤88,这是因为进入链路E□→F已经被标记“?-F”为朝向边缘接合点“F”未被分解。
在步骤90中由处理器电路22为SPF链路F→C=“Rev”的端点网络节点“C”执行递归调用(事件248)。
网络节点“C”的由处理器电路22进行的递归调用跳过步骤70,这是因为其具有多个链路。网络节点“C”被识别为边缘接合点(并且因此是安全节点),这是因为其具有到根节点“R”的两个路径,并且网络节点“C”包括一个可反转链路F→C,因此处理器电路22跳过步骤72的执行。跳过步骤76和80,并且由处理器电路22执行步骤82,以将链路C→A在状态表54中标记为可反转(C→A=“Rev”)。由处理器电路22执行步骤84,这是因为网络节点“C”现在是朝向“S”(S=A)的边缘接合点。因此,在步骤84中,被标记为“?-A”的任何外向的未被分解的链路(例如,C→D=“?-A”)被处理器电路22向内朝向边缘接合点“C”进行修剪和反转,并且在状态表54中被标记为朝向边缘接合点未被分解(例如,从C→D=“?-A”改变到D□→C=“?-C”);此外,在步骤84中,由处理器电路22在状态表54中将安全节点“C”的任何进入链路从“?-A”改变到“?-C”(例如,将E→C=“?-A”改变为E→C=“?-C”)。在步骤84中重新标记链路D□→C和E→C将网络节点“D”暴露给经由边缘接合点“C”到根节点“R”的替代路径,使得网络节点“D”随后被识别为具有用于到达根节点“R”的两个非叠合路径的接合节点。
边缘接合点“C”尚不是中间接合点,因此处理器电路22跳过步骤86,并且链路C→A并不是进入的,因此跳过步骤88。在步骤90中针对SPF链路C→A=“Rev”的端点网络节点“A”执行递归调用(事件250)。
网络节点“A”的由处理器电路22进行的递归分解跳过步骤70,这是因为其具有多个链路。继承网络节点“A”是安全节点,并且被识别为边缘接合点,这是因为其具有到根节点“R”的两个非叠合路径,并且网络节点“A”包括一个可反转链路C→A,因此跳过步骤72的执行。
在步骤74中首先选择SPF链路A→R并且在步骤76中将SPF链路A→R识别为被分解。被分解的SPF链路A→R也在根“R”中结束,并且因此终结由延伸回中间接合点“J”并延伸到边缘接合点“B”的递归调用的邻居点A(C、F、J)的序列识别出的轨迹。
因此,在从中间接合点“J”(即,具有两个可反转链路的接合节点)开始的由处理器电路22进行的连续递归期间将SPF链路A→R识别为被分解,建立了接合节点“A”作为第二边缘接合点,从而得到了用于到达根节点“R”的第一基础结构轨迹“ARC2”,如图6E和6I中所示。如图6E、6H、和6I中所示,用于到达根节点“R”的基础结构轨迹“ARC2”包括通过可反转链路A-C、C-F、F-J、J-K、和K-B连接的接合节点“A”、“C”、“F”、“J”、“K”、和“B”。因此,可以基于来回移动继承网络节点(例如“A”)的序列和可反转链路的序列直到到达另一个继承网络节点(例如“B”)为止,来识别出用于到达根节点“R”的基础结构轨迹“ARC2”。
在步骤74中分析接合节点“A”的下一个链路,即链路D→A=?-A,从而导致在步骤90中对网络节点“D”的递归分解(事件252)。网络节点“D”现在是接合节点(并且因此是安全节点),这是因为其具有(经由节点A和C)用于到达根节点“R”的两个非叠合路径。因此,跳过步骤70和72,并且首先为SPF链路D→A执行步骤74。基于终结于接合节点A,在步骤80中将链路D→A标记为被分解。从节点“D”到节点“A”的递归调用使得对节点“A”的递归分析返回到节点“D”,这是因为已经针对节点“A”分析了所有其他链路:这样的返回被称为“无操作递归(no-op recursion)”,并且在以下的论述中出于简洁的目的将被省略。
在步骤74中针对链路D□→C继续对节点“D”的分析。链路D□→C在接合节点“C”中结束,并且因此在步骤80中被标记为被分解,从而导致形成图6I中所示的折叠轨迹“ARC3”12。接下来在步骤74中针对接合节点D对进入链路L→D进行分析,并且在步骤88中将进入链路L→D从未被分解的状态?-A重新标记为未被分解的状态?-D(L→D=“?-D”),指示最近的安全节点是节点“D”。
如图6F中所示,安全节点“D”能够在朝向根节点“R”的子DAG(A)64中形成其自身的下属有向无环图子DAG(D)64d,从而使得安全节点“D”变为网络节点“L”、“N”、“E”、“G”、“H”、和“I”的最近的安全节点。因此,与步骤72类似,在步骤88中安全节点“D”的子DAG中的所有未被分解的进入链路(例如,链路L→D、E→D、E→L、G→E、H→G、I→H、和H→E)被递归地重新标记(即,标记)为“?-D”,以传播最新的安全节点“D”的标识(状态252)。
由处理器电路22在步骤90对节点“L”的递归分析导致无操作递归,这是因为节点“L”尚不是安全节点,因此分析返回到节点“D”。
接下来在步骤74中针对接合节点D分析链路E→D,并且在步骤88中由处理器电路22在状态表54中将链路E→D从未被分解的状态?-A重新标记为未被分解的状态?-D(E→D=“?-D”)。在步骤90中由处理器电路22递归地调用对节点E的分析(事件254)。
网络节点E是接合节点(并且因此是安全节点),这是因为其具有经由接合节点“D”和“D”到根的两个非叠合路径,而不改变任何链路可反转性。在步骤74中需要按照以下的示例顺序对接合节点“E”的以下链路进行分析:E→C、E→D、E→L、E□→F、G→E、和H→E。
因此,在步骤80中将SPF链路E→C标记为被分解,这是因为其在接合节点“C”中结束。外向链路E→D在步骤74中被针对网络节点“E”分析,并且在步骤80中被标记为被分解(变为图6I的折叠轨迹“ARC8”的第一末端),这是因为其在接合节点“D”中结束。外向链路E→L接下来在步骤74中被分析,并且由于链路E→L在步骤82中使得端点节点“L”变为接合点,所以在步骤82中链路E→L被标记为可反转。在步骤90中对端点“L”进行递归地分析(事件256)。
返回到图4D和事件256,网络节点“L”被识别为边缘接合点(并且因此是安全节点),这是因为其具有可反转链路E→L。链路L→D在步骤80中被标记为被分解,这是因此其在接合节点“D”中结束,导致形成图6G和图6I的第二基础结构轨迹“ARC4”。由于轨迹“ARC4”在安全节点“D”中结束,因此即使来自轨迹“ARC4”的所有流量可以经由网络节点C离开(即,网络节点“D”经由链路D□→C将其流量发送到网络节点C),网络节点“D”仍具有经由网络节点A的替代路径。已经针对叶节点N分解了链路N→L,因此分析返回到网络节点“E”。
在步骤74中由处理器电路22针对网络节点“E”分析的下一个链路(事件258)是链路E□→F=?-F。在步骤80中链路E□→F被分解为在接合节点“F”中结束(导致形成折叠轨迹“ARC8”)。尽管链路E□→F被修剪为单向,但如果期望,其可以被安全地反转以用于LFA分析(步骤90是用于链路E□→F的端点节点F的无操作,因此分析返回到网络节点“E”)。
在步骤74中接下来分析网络节点“E”的进入链路G→E。由于网络“G”不是接合点,因此其不是安全节点并且因此链路G→E在步骤88中无法被分解而是被重新标记为?-E:由处理器电路22将到安全节点“E”的所有进入链路递归地标记为朝向“E”未被分解(即,链路G→E、H→E、H→G、和I→H均被重置到“?-E”),导致形成朝向E的子DAG(E)。在步骤88中网络节点“G”的分析被递归地调用作为链路G→E的端点。
网络节点“G”(事件260)被确定为不是接合节点,并且所有的链路已经被标记为最近的安全节点“E”,因此可以跳过步骤72,并且在事件262中处理器电路22能够返回到节点“E”。
在步骤74中分析安全节点“E”的下一个进入链路H→E,使得处理器电路在步骤90中在事件264处递归地分析端点节点“H”。
在步骤72和74中网络节点“H”被识别为具有经由未被分解的路径(?-F)(经由SPF链路H→F)和“?-E”(经由链路H→E和H→G)的非叠合路径的接合节点。因此,在步骤74中相继对安全节点“H”的每一个链路(即,链路H→F、H→E、H→G、和I→H)进行分解。
在步骤80中由处理器电路将安全网络节点“H”的SPF链路H→F分解为在接合节点“F”中结束:如在下文中所示,链路H→F将终结图6I的基础结构轨迹“ARC5”和折叠轨迹“ARC6”。步骤90导致对(作为链路H→F的端点的)节点“F”进行无操作递归分析,因此在步骤74中对安全节点“H”的下一个(外向)链路H→E的分析导致将在步骤80中分解(在接合节点“E”中结束的)链路H→E作为折叠轨迹“ARC6”的第二末端。
步骤90导致对节点“E”(作为链路H→E的端点)进行无操作递归分析,因此在步骤74中执行对安全节点“H”的下一个链路(外向链路)H→G的分析。在步骤82中,链路H→G使得端点节点“G”变为接合点;此外,链路H→G(如果被反转)并不导致修剪SPF链路H→F;因此,由处理器电路22在步骤82中将链路H→G在状态表54中重新标记为可反转链路(H→G=“Rev”)。执行步骤90以递归地分析链路H→G的端点节点“G”(事件266)。
在步骤72中基于可反转链路H→G将网络节点“G”确定为边缘接合点(并且因此是安全节点)。因此,在步骤74中对SPF链路G→E的分析导致在步骤80中链路G→E被标记为作为基础结构轨迹“ARC5”的第二末端被分解。步骤90导致对节点“E”(作为链路G→E的端点)进行无操作递归分析,并且由于安全网络节点“G”不具有要分解的其他链路,所以执行返回到节点“H”以评估下一个进入链路I→H(事件268)。
步骤74中的下一个链路(即,安全网络节点“H”的进入链路I→H):在步骤88中将链路I→H从I→H=“?-A”重新标记为I→H=“?-H”,并且由处理器电路22执行步骤90以递归地分析链路I→H的端点节点“I”(事件270)。
由处理器电路22在步骤72中将网络节点“I”确定为具有经由未被分解的路径“?-F”(经由SPF链路I→F)和“?-H”(经由外向链路I→H)的非叠合路径的接合节点。因此,在步骤74中,SPF链路I→F被处理器电路22分析,并且在步骤80中基于在接合节点“F”中结束被标记为被分解(并且终结折叠轨迹“ARC7”)。步骤90导致对节点“F”(作为链路I→F的端点)的无操作递归分析,导致在步骤74中对下一个(外向链路)I→H进行分析。由于链路I→H在接合节点“H”中结束,所以链路I→H在步骤114中被标记为被分解,从而形成了图6I的折叠轨迹“ARC7”的第二末端。步骤90导致对节点“H”(作为链路I→H的端点)的无操作递归分析,将执行分析返回到接合节点“I”。
由处理器电路22完成对节点“I”的分析,将处理器电路22的执行分析返回到节点“H”;对节点“H”的分析完成,将执行分析返回到节点“E”;对节点“E”的分析完成,将执行分析返回到节点“D”;对节点“D”的分析完成,将执行分析返回到节点“A”;对节点“A”的分析完成,将执行分析返回到节点“C”;对节点“C”的分析完成,将执行分析返回到节点“F”;对节点“F”的分析完成,将执行分析返回到节点“J”。如上所述,处理器电路22能够在每一个路由轨迹被构造时更新图5的拓扑表56,其中由具有两个向外定向的可反转链路的接合节点识别轨迹光标的所有权。
图6H中示出了所得到的链路拓扑,并且图6I中示出了所得到的轨迹“ARC1”到“ARC8”。图6I的路由拓扑示出了路由轨迹“ARC1”到“ARC8”,其中除了根网络节点“R”和叶节点“N”之外的全部网络节点是接合节点。如图6H和6I中所示,折叠轨迹“ARC1”包括接合节点“J”、“M”、和“K”;用于到达根节点“R”的基础结构轨迹“ARC2”包括通过可反转链路C→A、F→C、J→F、J→K、和K→B连接的接合节点“A”、“C”、“F”、“J”、“K”、和“B”;折叠轨迹“ARC3”包括接合节点“A”、“D”、和“C”;基础结构轨迹“ARC4”包括接合节点“D”、“L”、“E”、和“C”;基础结构轨迹“ARC5”包括接合节点“E”、“G”、“H”、和“F”;折叠轨迹“ARC6”包括接合节点“E”、“H”、和“F”;折叠轨迹“ARC7”包括接合节点“H”、“I”、和“F”;并且折叠轨迹“ARC8”具有接合节点“D”、“E”、和“F”。
因此,假定链路F→C遇到故障,网络节点“F”可以将流量经由可反转链路J→F重新引导到节点“J”(例如,基于协商链路J→F需要被反转到F→J的网络节点“F”和“J”,使得网络流量能够被重新引导而无需重新计算路线)。
根据本公开显而易见的是,可以针对每一个网络节点16重复用于目的地设备(“R”)14的无回路路由拓扑10,使得每一个网络节点16能够具有其自身的确保经由非叠合路径到对应的网络节点16的可到达性的无回路路由拓扑10。
根据示例性实施例,能够建立这样的无回路路由拓扑:其包括路由轨迹,使得能够响应于路由拓扑中的所检测到的故障,基于反转可反转链路来立即重新引导网络流量,而不将任何回路引入到拓扑中。
尽管已经结合当前被视为实现所附权利要求中指明的主题的最佳模式描述了本公开中的示例性实施例,但应当理解示例性实施例仅是说明性的,而不用于限制所附权利要求中指明的主题。

Claims (20)

1.一种方法,包括:
在计算网络中创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向所述目的地设备路由任意网络流量;以及
使得所述网络流量沿着所述路由轨迹中的至少一个被转发到所述目的地设备。
2.如权利要求1所述的方法,其中每一个路由轨迹的第一和第二末端均在所述目的地设备、与所述目的地设备直接耦接的第二网络节点、或者另一个路由轨迹的具有用于到达所述目的地设备的至少两个非叠合路径的接合节点之一处终结。
3.如权利要求2所述的方法,其中所述创建包括:
创建所述路由轨迹中的第一路由轨迹,作为具有在所述目的地设备处终结的对应的第一末端的基础结构轨迹;以及
创建所述路由轨迹中的第二路由轨迹,作为在所述路由轨迹中的所述第一路由轨迹之后的、具有在所述路由轨迹中的所述第一路由轨迹处终结的对应的第一末端的基础结构轨迹,所述路由轨迹中的所述第二路由轨迹包括与所述路由轨迹中的所述第一路由轨迹的网络设备中的任意一个不同的网络设备。
4.如权利要求1所述的方法,其中所述无回路路由拓扑确保即使在所述无回路路由拓扑中遇到链路故障,具有两个数据链路的所述无回路路由拓扑中的网络设备中的任意一个也能够经由所述路由轨迹中的至少一个到达所述目的地设备。
5.如权利要求1所述的方法,其中所述路由轨迹中的至少第一路由轨迹还包括被识别为中间接合节点并且与对应的第三网络设备相邻的第四网路设备,所述中间接合节点包括两个可反转链路和零个或更多个来自所述路由轨迹中的所述第一路由轨迹的任意其他网络设备的向内定向的链路,每一个可反转链路是可反转的而不在所述无回路路由拓扑中创建回路。
6.如权利要求5所述的方法,其中每一个路由轨迹还包括一个且仅一个轨迹光标,所述一个且仅一个轨迹光标提供对指引所述网络流量沿着所述路由轨迹并且远离具有所述轨迹光标的占有权的任意网络设备的排他控制权,所述第三或第四网络设备之一基于所述轨迹光标的占有权控制所述网络流量沿着对应的路由轨迹。
7.如权利要求6所述的方法,其中所述第三网络设备基于所述对应的路由轨迹中的检测到的故障,获取所述轨迹光标的占有权,以在所述对应的路由轨迹中继续路由所述网络流量,其中所述占有权先前由所述第四网络设备拥有,所述继续路由基于所述第三网络设备反转所述可反转链路之一而不在所述无回路路由拓扑中创建回路。
8.如权利要求1所述的方法,其中所述创建包括:
生成用于到达所述目的地设备的第一有向无环图;
在所述第一有向无环图中识别两个或更多个接合节点,所述两个或更多个接合节点中的每一个具有用于到达所述目的地设备的至少两个非叠合路径,所述识别包括识别一个或多个可反转链路,所述一个或多个可反转链路在所述接合节点之间并且能够被沿着所述非叠合路径之一反转而不将回路引入到所述无回路拓扑中;
创建包括所述接合节点中的两个或更多个和一个或多个可反转链路的所述基础结构轨迹中的第一基础结构轨迹,所述基础结构轨迹中的所述第一基础结构轨迹具有在所述目的地设备处终结的对应的第一末端;以及
创建所述路由轨迹中的第二路由轨迹,所述路由轨迹中的所述第二路由轨迹在所述路由轨迹中的所述第一路由轨迹之后并且具有在所述路由轨迹中的所述第一路由轨迹处终结的对应的第一末端,所述无回路路由拓扑具有所述路由轨迹并且包括所述目的地设备、零个或更多个均具有仅一个数据链路的叶节点、和所述多个接合节点。
9.如权利要求8所述的方法,其中创建所述路由轨迹中的所述第二路由轨迹包括:
识别所述第一有向无环图中的用于到达所述接合节点中的第一接合节点的第二有向无环图、所述基础结构节点中的所述第一基础结构节点中的所述第一接合节点、所述路由轨迹中的所述第二路由轨迹的第一末端;以及
在所述第二有向无环图中识别新的接合节点,所述新的接合节点具有用于到达所述目的地设备的新的非叠合路径并且与所述接合节点中的所述第一接合节点不同,所述新的接合节点提供到所述路由轨迹中的所述第二路由轨迹的第二末端的所述非叠合路径。
10.一种装置,包括:
处理器电路,被配置用于为计算网络创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向所述目的地设备路由任意网络流量;
存储器电路,被配置用于存储与所述路由轨迹相关联的参数;以及
设备接口电路,被配置用于将与所述路由轨迹相关联的至少所选择的参数输出到第二装置,用于所述无回路路由拓扑的部署。
11.如权利要求10所述的装置,其中每一个路由轨迹的第一和第二末端均在所述目的地设备、与所述目的地设备直接耦接的第二网络节点、或者另一个路由轨迹的具有用于到达所述目的地设备的至少两个非叠合路径的接合节点之一处终结。
12.如权利要求11所述的装置,其中所述处理器电路被配置用于基于下述各项创建所述无回路路由拓扑:
创建所述路由轨迹中的第一路由轨迹,作为具有在所述目的地设备处终结的对应的第一末端的基础结构轨迹;以及
创建所述路由轨迹中的第二路由轨迹,作为在所述路由轨迹中的所述第一路由轨迹之后的、具有在所述路由轨迹中的所述第一路由轨迹处终结的对应的第一末端的基础结构轨迹,所述路由轨迹中的所述第二路由轨迹包括与所述路由轨迹中的所述第一路由轨迹的网络设备中的任意一个不同的网络设备。
13.如权利要求10所述的装置,其中所述无回路路由拓扑确保即使在所述无回路路由拓扑中遇到链路故障,具有两个数据链路的所述无回路路由拓扑中的网络设备中的任意一个也能够经由所述路由轨迹中的至少一个到达所述目的地设备。
14.如权利要求10所述的装置,其中所述路由轨迹中的至少第一路由轨迹还包括被识别为中间接合节点并且与对应的第三网络设备相邻的第四网路设备,所述中间接合节点包括两个可反转链路和零个或更多个来自所述路由轨迹中的所述第一路由轨迹的任意其他网络设备的向内定向的链路,每一个可反转链路是可反转的而不在所述无回路路由拓扑中创建回路。
15.如权利要求14所述的装置,其中每一个路由轨迹还包括一个且仅一个轨迹光标,所述一个且仅一个轨迹光标提供对指引所述网络流量沿着所述路由轨迹并且远离具有所述轨迹光标的占有权的任意网络设备的排他控制权,所述第三或第四网络设备之一基于所述轨迹光标的占有权控制所述网络流量沿着对应的路由轨迹。
16.如权利要求15所述的装置,其中所述第三网络设备基于所述对应的路由轨迹中的检测到的故障,获取所述轨迹光标的占有权,以在所述对应的路由轨迹中继续路由所述网络流量,所述占有权先前由所述第四网络设备拥有。
17.如权利要求10所述的装置,其中所述处理器电路被配置用于基于下述各项生成所述无回路路由拓扑:
生成用于到达所述目的地设备的第一有向无环图;
在所述第一有向无环图中识别两个或更多个接合节点,所述两个或更多个接合节点中的每一个具有用于到达所述目的地设备的至少两个非叠合路径,所述识别包括识别一个或多个可反转链路,所述一个或多个可反转链路在所述接合节点之间,并且能够被沿着所述非叠合路径之一反转而不将回路引入到所述无回路拓扑中;
创建包括所述接合节点中的两个或更多个和一个或多个可反转链路的所述基础结构轨迹中的第一基础结构轨迹,所述基础结构轨迹中的所述第一基础结构轨迹具有在所述目的地设备处终结的对应的第一末端;以及
创建所述路由轨迹中的第二路由轨迹,所述路由轨迹中的所述第二路由轨迹在所述路由轨迹中的所述第一路由轨迹之后并且具有在所述路由轨迹中的所述第一路由轨迹处终结的对应的第一末端,所述无回路路由拓扑具有所述路由轨迹,并且包括所述目的地设备、零个或更多个均具有仅一个数据链路的叶节点、和所述多个接合节点。
18.如权利要求17所述的装置,其中所述处理器电路被配置用于基于下述各项创建所述路由轨迹中的所述第二路由轨迹:
识别所述第一有向无环图中的用于到达所述接合节点中的第一接合节点的第二有向无环图、所述基础结构节点中的所述第一基础结构节点中的所述第一接合节点、所述路由轨迹中的所述第二路由轨迹的第一末端;以及
在所述第二有向无环图中识别新的接合节点,所述新的接合节点具有用于到达所述目的地设备的新的非叠合路径并且与所述接合节点中的所述第一接合节点不同,所述新的接合节点提供到所述路由轨迹中的所述第二路由轨迹的第二末端的所述非叠合路径。
19.被编码在一个或多个非暂时性有形介质中的用于执行的逻辑,并且所述逻辑当被执行时,用于:
在计算网络中创建无回路路由拓扑,所述无回路路由拓扑包括用于到达目的地设备的多个路由轨迹,每一个路由轨迹包括作为所述路由轨迹的第一末端的第一网络设备、作为所述路由轨迹的第二末端的第二网络设备、以及至少第三网络设备,所述至少第三网络设备被配置用于沿着所述路由轨迹经由所述路由轨迹的第一末端或第二末端中的任意一个向所述目的地设备路由任意网络流量;以及
使得所述网络流量沿着所述路由轨迹中的至少一个被转发到所述目的地设备。
20.如权利要求19所述的逻辑,其中每一个路由轨迹的第一和第二末端均在所述目的地设备、与所述目的地设备直接耦接的第二网络节点、或者另一个路由轨迹的具有用于到达所述目的地设备的至少两个非叠合路径的接合节点之一处终结。
CN201280019187.9A 2011-05-23 2012-05-23 使用路由轨迹生成无回路路由拓扑 Expired - Fee Related CN103493441B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/113,113 2011-05-23
US13/113,113 US9088502B2 (en) 2011-05-23 2011-05-23 Generating a loop-free routing topology using routing arcs
PCT/US2012/039039 WO2012162336A1 (en) 2011-05-23 2012-05-23 Generating a loop-free routing topology using routing arcs

Publications (2)

Publication Number Publication Date
CN103493441A true CN103493441A (zh) 2014-01-01
CN103493441B CN103493441B (zh) 2016-10-26

Family

ID=47217681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280019187.9A Expired - Fee Related CN103493441B (zh) 2011-05-23 2012-05-23 使用路由轨迹生成无回路路由拓扑

Country Status (4)

Country Link
US (3) US9088502B2 (zh)
EP (1) EP2715989B1 (zh)
CN (1) CN103493441B (zh)
WO (1) WO2012162336A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099904A (zh) * 2014-04-30 2015-11-25 华为技术有限公司 一种确定中间路由节点的方法、装置及系统
CN106330749A (zh) * 2015-06-30 2017-01-11 思科技术公司 无回路多端部网络拓扑中的类别感知的负载平衡
CN109005115A (zh) * 2018-08-08 2018-12-14 佛山科学技术学院 一种分布式传感器网络的智能拓扑方法及装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088502B2 (en) * 2011-05-23 2015-07-21 Cisco Technology, Inc. Generating a loop-free routing topology using routing arcs
US8612656B2 (en) * 2011-06-02 2013-12-17 International Business Machines Corporation Implementing device physical location identification in serial attached SCSI (SAS) fabric using resource path groups
US8897135B2 (en) 2012-02-10 2014-11-25 Cisco Technology, Inc. Recursive load balancing in a loop-free routing topology using routing arcs
US9413638B2 (en) 2012-05-09 2016-08-09 Cisco Technology, Inc. Generating a loop-free routing topology based on merging buttressing arcs into routing arcs
US9246794B2 (en) 2012-08-03 2016-01-26 Cisco Technology, Inc. Label distribution and route installation in a loop-free routing topology using routing arcs
US9338086B2 (en) 2012-09-14 2016-05-10 Cisco Technology, Inc. Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies
US9112788B2 (en) 2012-10-10 2015-08-18 Cisco Technology, Inc. Bicasting using non-congruent paths in a loop-free routing topology having routing arcs
US9264243B2 (en) 2013-02-19 2016-02-16 Cisco Technology, Inc. Flooding and multicasting in a loop-free routing topology using routing arcs
US9320036B2 (en) 2013-07-17 2016-04-19 Cisco Technology, Inc. Installation of time slots for sending a packet through an ARC chain topology network
US9258097B2 (en) 2013-07-20 2016-02-09 Cisco Technology, Inc. Configuring new paths in a wireless deterministic network
US9356759B2 (en) 2013-07-20 2016-05-31 Cisco Technology, Inc. Reassignment of unused portions of a transmission unit in a network
US9276716B2 (en) 2013-09-09 2016-03-01 Cisco Technology, Inc. Sensor data transport and consolidation within communication nodes in a network
US9344256B2 (en) 2013-09-18 2016-05-17 Cisco Technology, Inc. Dominating set identification for path computation based on directed acyclic graph membership
US9319962B2 (en) 2013-10-02 2016-04-19 Cisco Technology, Inc. Local path repair in a wireless deterministic network
US9485136B2 (en) * 2013-12-09 2016-11-01 Cisco Technology, Inc. Repair of failed network routing arcs using data plane protocol
US9510347B2 (en) 2014-05-08 2016-11-29 Cisco Technology, Inc. Timeslot distribution in a distributed routing protocol for deterministic wireless networks
US9503361B2 (en) 2014-06-13 2016-11-22 Cisco Technology, Inc. Active/static path redundancy
US20160269188A1 (en) * 2015-03-10 2016-09-15 Cisco Technology, Inc. Reverse directed acyclic graph for multiple path reachability from origin to identified destination via multiple target devices
US10142227B2 (en) 2016-01-28 2018-11-27 Cisco Technology, Inc. Bit indexed explicit replication for deterministic network data plane
US10320652B2 (en) * 2017-01-09 2019-06-11 Cisco Technology, Inc. Dynamic installation of bypass path by intercepting node in storing mode tree-based network
US10749786B2 (en) 2017-03-01 2020-08-18 Cisco Technology, Inc. Path optimization based on reducing dominating set membership to essential parent devices
US10798012B2 (en) 2017-10-30 2020-10-06 Cisco Technology, Inc. Jitter elimination and latency compensation at DetNet transport egress
US10673734B2 (en) 2018-09-10 2020-06-02 Cisco Technology, Inc. Packet replication over chains of cascaded resilient link layer segments
US11057211B2 (en) * 2018-12-10 2021-07-06 Cisco Technology, Inc. Secured protection of advertisement parameters in a zero trust low power and lossy network
US11362837B2 (en) 2018-12-10 2022-06-14 Cisco Technology, Inc. Generating trustable RPL messages having root-signed rank values
US11089507B2 (en) 2019-04-02 2021-08-10 Cisco Technology, Inc. Scalable reachability for movable destinations attached to a leaf-spine switching architecture
CN111935001B (zh) * 2019-05-13 2022-04-26 华为技术有限公司 一种路径切换方法及节点、系统
US11438220B2 (en) * 2021-01-28 2022-09-06 Cisco Technology, Inc. Identifying redundant network links using topology graphs
CN114285784B (zh) * 2021-12-22 2024-03-01 上海哔哩哔哩科技有限公司 数据传输和管道搭建方法、装置、计算设备和存储介质
US11895182B1 (en) 2023-01-23 2024-02-06 Bank Of America Corporation Systems, methods, and apparatuses for dynamically determining data center transmissions by implementing load balancers in an electronic network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020176371A1 (en) * 2001-05-24 2002-11-28 Behnam Behzadi Method and system for preventing transmission loops in a label switching domain
US20030046426A1 (en) * 2000-10-02 2003-03-06 Luc Nguyen Real time traffic engineering of data-networks
US7657855B1 (en) * 2007-05-25 2010-02-02 Xilinx, Inc. Efficient timing graph update for dynamic netlist changes

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005842A (en) * 1997-06-26 1999-12-21 Northern Telecom Limited Engineering order wire
US6023733A (en) * 1997-10-30 2000-02-08 Cisco Technology, Inc. Efficient path determination in a routed network
GB2369532A (en) * 2000-11-28 2002-05-29 Stephen Anthony Gerar Chandler Routing algorithm for distributed telecommunication networks
US7362709B1 (en) * 2001-11-02 2008-04-22 Arizona Board Of Regents Agile digital communication network with rapid rerouting
US20050180907A1 (en) * 2004-01-28 2005-08-18 Holcomb Robert R. Method of converting green house gases from fossil fuels into non-toxic base elements
US7304976B2 (en) * 2004-10-13 2007-12-04 Virginia Tech Intellectual Properties, Inc. Method and apparatus for control and routing of wireless sensor networks
US20070051615A1 (en) * 2005-01-27 2007-03-08 Holcomb Robert R Method of converting green house gases from fossil fuels into non-toxic base elements
US7633940B1 (en) 2005-06-27 2009-12-15 The Board Of Trustees Of The Leland Stanford Junior University Load-balanced routing
FI20050779L (fi) 2005-07-22 2007-01-23 Analyse Solutions Finland Oy Tiedonhallintamenetelmä ja -järjestelmä
EP1943784B1 (en) * 2005-08-08 2017-02-15 Telecom Italia S.p.A. Method for configuring an optical network
US7656857B2 (en) 2005-10-18 2010-02-02 Cisco Technology, Inc. Directed acyclic graph computation by orienting shortest path links and alternate path links obtained from shortest path computation
US7693064B2 (en) 2005-10-24 2010-04-06 Cisco Technology, Inc. Forwarding packets to a directed acyclic graph destination using link selection based on received link metrics
US8111618B2 (en) * 2006-01-27 2012-02-07 Alcatel Lucent End-to-end service quality using source-routed probes
WO2007089674A2 (en) * 2006-01-27 2007-08-09 The Arizona Board Of Regents, A Body Corporate Acting On Behalf Of Arizona State University Methods for generating a distribution of optimal solutions to nondeterministic polynomial optimization problems
FR2902956B1 (fr) * 2006-06-23 2008-09-19 Airbus France Sas Procede de routage de liens virtuels dans un reseau a commutation de trames a determinisme garanti
US7801031B2 (en) * 2006-11-02 2010-09-21 Polytechnic Institute Of New York University Rerouting for double-link failure recovery in an internet protocol network
US8155007B2 (en) * 2007-01-25 2012-04-10 Cisco Technology, Inc. Path optimization for mesh access points in a wireless mesh network
US8804501B2 (en) 2007-07-16 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Link failure recovery method and apparatus
US8385345B2 (en) 2007-09-19 2013-02-26 At&T Intellectual Property Ii, L.P. Data forwarding in hybrid mesh networks
US7769854B2 (en) * 2007-11-20 2010-08-03 Cisco Technology, Inc. Bandwidth constraint construction for overlapped logical channels
US8578054B2 (en) 2008-03-07 2013-11-05 Cisco Technology, Inc. Computing disjoint paths for reactive routing mesh networks
US9088502B2 (en) 2011-05-23 2015-07-21 Cisco Technology, Inc. Generating a loop-free routing topology using routing arcs
US8897135B2 (en) * 2012-02-10 2014-11-25 Cisco Technology, Inc. Recursive load balancing in a loop-free routing topology using routing arcs
US9413638B2 (en) * 2012-05-09 2016-08-09 Cisco Technology, Inc. Generating a loop-free routing topology based on merging buttressing arcs into routing arcs
US9246794B2 (en) * 2012-08-03 2016-01-26 Cisco Technology, Inc. Label distribution and route installation in a loop-free routing topology using routing arcs
US9338086B2 (en) * 2012-09-14 2016-05-10 Cisco Technology, Inc. Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies
US9112788B2 (en) * 2012-10-10 2015-08-18 Cisco Technology, Inc. Bicasting using non-congruent paths in a loop-free routing topology having routing arcs
US9264243B2 (en) * 2013-02-19 2016-02-16 Cisco Technology, Inc. Flooding and multicasting in a loop-free routing topology using routing arcs
US9320036B2 (en) * 2013-07-17 2016-04-19 Cisco Technology, Inc. Installation of time slots for sending a packet through an ARC chain topology network
US9485136B2 (en) * 2013-12-09 2016-11-01 Cisco Technology, Inc. Repair of failed network routing arcs using data plane protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046426A1 (en) * 2000-10-02 2003-03-06 Luc Nguyen Real time traffic engineering of data-networks
US20020176371A1 (en) * 2001-05-24 2002-11-28 Behnam Behzadi Method and system for preventing transmission loops in a label switching domain
US7657855B1 (en) * 2007-05-25 2010-02-02 Xilinx, Inc. Efficient timing graph update for dynamic netlist changes

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099904A (zh) * 2014-04-30 2015-11-25 华为技术有限公司 一种确定中间路由节点的方法、装置及系统
US9906435B2 (en) 2014-04-30 2018-02-27 Huawei Technologies Co., Ltd. Method and apparatus for determining intermediate routing node and system
CN105099904B (zh) * 2014-04-30 2018-06-05 华为技术有限公司 一种确定中间路由节点的方法、装置及系统
CN106330749A (zh) * 2015-06-30 2017-01-11 思科技术公司 无回路多端部网络拓扑中的类别感知的负载平衡
CN106330749B (zh) * 2015-06-30 2019-11-19 思科技术公司 无回路多端部网络拓扑中的类别感知的负载平衡
CN109005115A (zh) * 2018-08-08 2018-12-14 佛山科学技术学院 一种分布式传感器网络的智能拓扑方法及装置
CN109005115B (zh) * 2018-08-08 2021-04-27 佛山科学技术学院 一种分布式传感器网络的智能拓扑方法及装置

Also Published As

Publication number Publication date
US9769057B2 (en) 2017-09-19
EP2715989A4 (en) 2014-12-10
US9088502B2 (en) 2015-07-21
WO2012162336A1 (en) 2012-11-29
US20160330105A1 (en) 2016-11-10
US10348611B2 (en) 2019-07-09
CN103493441B (zh) 2016-10-26
EP2715989B1 (en) 2018-12-19
US20150263936A1 (en) 2015-09-17
US20120300668A1 (en) 2012-11-29
EP2715989A1 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
CN103493441A (zh) 使用路由轨迹生成无回路路由拓扑
US9929938B2 (en) Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies
EP2880826B1 (en) Label distribution and route installation in a loop-free routing topology using routing arcs
US9628391B2 (en) Recursive load balancing in a loop-free routing topology using routing arcs
US9794167B2 (en) Bicasting using non-congruent paths in a loop-free routing topology having routing arcs
US9264243B2 (en) Flooding and multicasting in a loop-free routing topology using routing arcs
CN103119900B (zh) 通信系统、控制设备、节点控制方法和节点控制程序
CN1918861B (zh) 通信网络中的流量流确定
CN104769897B (zh) 用于提供到计算网络中的目的地替代路径的方法、设备和装置
US20180227218A1 (en) Generating non-congruent paths having minimal latency difference in a loop-free routing topology having routing arcs
CN106105115A (zh) 网络环境中由服务节点始发的服务链
CN113242179B (zh) 一种基于sdn的sr路径计算和标签栈生成的方法及sdn控制器
CN104718729A (zh) 控制装置及其控制方法和程序
WO2002006918A2 (en) A method, system, and product for preventing data loss and forwarding loops when conducting a scheduled change to the topology of a link-state routing protocol network
CN105637806A (zh) 网络拓扑确定方法和装置、集中式网络状态信息存储设备
CN105991385B (zh) 一种建立bgp lsp隧道的方法及网络设备
CN103763191A (zh) 基于生成树的域内多路径生成方法
Liu TEAS Working Group Igor Bryskin Internet Draft Individual Intended status: Informational Vishnu Pavan Beeram Tarek Saad Juniper Networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161026

Termination date: 20210523

CF01 Termination of patent right due to non-payment of annual fee