Connect public, paid and private patent data with Google Patents Public Datasets

最短路径确定中的打破平局

Download PDF

Info

Publication number
CN101965715B
CN101965715B CN 200880127674 CN200880127674A CN101965715B CN 101965715 B CN101965715 B CN 101965715B CN 200880127674 CN200880127674 CN 200880127674 CN 200880127674 A CN200880127674 A CN 200880127674A CN 101965715 B CN101965715 B CN 101965715B
Authority
CN
Grant status
Grant
Patent type
Prior art keywords
tie
breaking
shortest
path
determination
Prior art date
Application number
CN 200880127674
Other languages
English (en)
Other versions
CN101965715A (zh )
Inventor
J·恰鲍特
D·艾伦
N·布拉格
P·阿什伍德史密斯
Original Assignee
北方电讯网络有限公司
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
Grant date

Links

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/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Abstract

通过比较多个端到端路径中的每一个的、节点标识符的经排序的集合来实现等开销最短(最低开销)路径之间一致的打破平局决定。可替换地,随着最短路径树被建立,通过使用该树的分叉支路的节点标识符对等开销的路径进行选择,可以在传输过程中实现相同的结果。两种变形都允许对等开销的路径进行一致的选择而不管所述最短路径在网络中的什么地方被计算。这确保了任何两个节点之间的业务流在正方向和反方向上都将始终沿着相同的路径通过网络。

Description

最短路径确定中的打破平局

技术领域

[0001] 本发明涉及在诸如以太网的分组转发通信网络中在多种可能性中一致地选择路径,诸如等开销最短路径。

背景技术

[0002] 在分组转发通信网络中,节点可以得知有关网络的拓扑结构的情况,并且可以基于它获取的关于该拓扑结构的信息决定它将如何向其它网络节点中的每一个传递业务(traffic)。选择路径的主要根据是路径开销,其可以按照节点之间的跳跃(hop)的数量或者通过诸如连接节点的链路的带宽等某个其它度量来规定,或者通过这两者来规定。开放式最短路径优先(OSPF)和中间系统到中间系统(IS-1S)是被广泛使用的链路状态协议,它们基于每个节点的对路径开销的通告来建立最短路径。这些协议通常不尝试在多个等开销的路径之间打破平局(tie-break)。相反,它们通常跨若干等开销的路径传播业务。传播算法没有被规定并且可以从路由器到路由器不同。可替换地,它们可以对单个路径进行局部选择而不考虑与由其它路由器进行的选择的一致性。因此,无论发生何种情况,不能保证流的反方向(reverse direction)使用正方向(forward direction)所使用的路径。

[0003] 诸如组播开放式最短路径优先协议(MOSPF)的组播(multicast)路由协议依赖于网络中的每个路由器构造相同的最短路径树。由于这个原因,MOSPF实现基于链路类型、LAN相比点对点(LAN vs.point-to-point)以及路由器标识符的打破平局方案以确保产生一样的树。但是,把打破平局决定建立在具有最大的标识符的父代(parent)之上意味着一般而言反向的流所使用的路径将不会与正向的流所使用的路径相同。

[0004] 生成树协议(生成树协议(STP)、快速生成树协议(RSTP)、多生成树协议(MSTP))是在任意的拓扑结构中创建无回路的生成树的方法。生成树协议由网络中的每个节点执行。所有生成树协议都使用基于(桥标识符,端口标识符)的局部打破平局决定在等开销的路径之间进行选择。在生成树中,首选选择根节点,然后相对于那个根通过所有节点来构造树。因此,尽管所有路径对于离开和返回业务是对称的(根据定义,简单树(simpletree)使得这成为仅有可能的构造),但是选择过程是慢的并且简单树的结构不能使用任何多余的容量。类似地,RadiaPerlman的Rbridges提议使用父节点的标识符作为决胜局(tie-breaker)。

[0005] Mick Seaman在他给IEEE 802.1工作组的“最短路径桥接”提议(http://www.1eee802.0rg/ 1/files/public/docs2005/new-seaman-shortest-path-0305-02.pdf)中描述了对快速生成树协议的简单的协议增强,其通过增加“截断矢量(cut vector)”来强制执行一致的打破平局决定。该提议使用每一节点的VID来标识每一节点的生成树。为了把需要由桥传送的所有信息放进单个合法的以太网帧,这种技术目前将以太网的大小限制为32个桥。

[0006] 图1示出,即使对于普通的网络的例子,基于父节点标识符的打破平局方法如何无法产生对称路径。在这个例子中,链路被认为具有等开销并且因此路径开销的确定仅考虑跳跃的数量。首先考虑计算从A到B的路径。当计算到达节点2时,将会发现等开销的路径的存在。有第一路径(A-1-3-6)和第二路径(A-1-4-5)。如果打破平局算法基于具有最小的标识符的父节点来选择路径,则它将选择第二路径(A-1-4-5),因为节点标识符5小于节点标识符6。但是,现在考虑计算从B到A的路径。当计算到达节点I时,将会发现等开销的路径的存在。有第一路径(B-2-6-3)和第二路径(B-2-5-4)。使用相同的打破平局标准,该打破平局算法选择第一路径(B-2-6-3),因为节点标识符3小于节点标识符4。因此,可以看到的是由节点A和B进行的最短路径计算提供不一致的结果。

[0007] 在诸如给IEEE 802.1aq的提议“供应商链路状态桥接(PLSB) ”的一些新兴的协议中有为单播和未知/组播业务两者保持跨网络转发的一致性以及在流的正方向和反方向两者上都使用共同的路径的要求。因此,重要的是当在等开销的路径之间打破平局时节点可以一致地得出相同的决定。此外,理想的是节点可以用最少量的处理努力来执行打破平局。

发明内容

[0008] 本发明的第一方面提供确定转发信息供在分组转发网络的第一节点处转发分组时使用的方法。该方法确定所述第一节点和所述网络的第二节点之间的最短路径并且确定多个最短路径具有大体上相等的开销的时间。该方法为每个大体上等开销的路径形成节点标识符的集合,所述节点标识符定义路径中的节点的集合并且然后使用第一排序标准将节点标识符的每个集合排序以形成路径标识符。所述第一排序标准独立于节点标识符在所述路径中出现的顺序。该方法然后通过比较所述路径标识符而在所述多个等开销的路径之间进行选择。所述网络的每个节点具有唯一的节点标识符。

[0009] 有利地,所述第一排序标准是递增的字典式顺序(Iexicographicorder)或者是递减的字典式顺序,但也可以使用创建节点的全序集合(totally ordered set)的任何排序标准。

[0010] 优选地,所述方法还包括使用第二排序标准将所述多个路径标识符排序成有序列表。类似地,所述第二排序标准可以是递增的字典式顺序、递减的字典式顺序或者创建路径标识符的全序集合的任何排序标准。

[0011] 本发明的另一个方面提供确定转发信息供在分组转发网络的第一节点处转发分组时使用的方法。该方法包括通过迭代地形成最短路径树来确定所述第一节点和所述网络的第二节点之间的最短路径并且在形成所述最短路径树的同时确定多个路径具有等开销的时间,每个等开销的路径包括从所述等开销的路径所共有的分叉节点(divergencynode)分出的支路。该方法使用第一选择标准在每个分叉支路中标识节点标识符以形成支路标识符并且通过比较所述支路标识符而在所述多个支路之间进行选择。

[0012] 有利地,该方法使用全排序(total ordering)标准来比较和选择每个支路中的节点标识符,诸如字典式顺序。

[0013] 有利地,该方法在向所述分叉节点回溯(backtrack)的同时记录所述分叉支路的每一个中达到所述第一选择标准的节点标识符。这具有进一步简化计算和减少存储需求的优势。

[0014] 本发明的两个方面可以被用于通过使用不同的第一排序/选择标准和共同的第二排序/选择标准或者通过使用共同的第一排序标准/选择和不同的第二排序/选择标准来选择两个等开销的路径。可以通过在节点处一致地应用所述第一和第二排序/选择标准并且选择处于所述有序列表中的特定位置的标识符而以相似的方式选择三个或四个等开销的路径。

[0015] 本发明可以被用作决胜局(tie-breaker)以通过比较多个端到端路径中的每一个的、节点标识符的经排序的集合而在等开销的路径之间进行选择。可替换地,已被发现的是随着最短路径树被建立,局部于(local to)选择决定需要被做出的地方通过使用该树的分叉支路的节点标识符对等开销的路径进行选择可以在传输过程中(on-the-fly)实现相同的结果。这具有减少计算量并且减少需要被存储的数据的量的优势。支路可以在成对的基础上被比较以进一步减少计算量。随着网络的大小和复杂度增加,这变得尤其重要。本发明的两种变形都具有允许对等开销的路径进行一致的选择而不管所述最短路径在网络中的什么地方被计算的重要特性。这确保了任何两个节点之间业务流在正方向和反方向上都将始终沿着相同的路径通过网络。

[0016] 本发明不是打算要被限制于确定最短路径的任何特定方式,包括=Dijkstra算法、Folyd算法或者可以被使用的任何其它合适的替代。

[0017] 本发明可以被用作具有完全相同的值的等开销的路径之间或者处于彼此的理想偏移以内的路径之间的决胜局,这两种情况下均就链路度量或者跳跃的数量而言。这可能是实际情况中所希望的,以在合格路径的集合之间增加多样性。例如,以通常被要求用于在任何两个端点之间实现完全相等的开销的对称方式部署节点和链路可能不总是划算的。通过将该约束放宽为要求不同路线上的跳数(hop count)彼此相差一跳以内,适度的非对称仍然可以产生合格的路线,并且无回路的(loop-free)拓扑结构仍然被保证,因为两次跳跃的差距是实现成环路径(looping path)所必要的最小值。

[0018] 将理解的是术语“最短路径”不被限制于仅基于距离来确定路径,并且旨在包括可以被用于规定链路的“开销(cost)”的任何度量或者度量的组合。度量的非穷举的列表为:距离,跳跃的数量、容量(capacity)、速度、使用率(usage)、可用性。

[0019] 等开销最短路径的选择不受不在被选择的路径上的网络的部分(诸如出故障的节点或者链路)的移除影响,在这个意义上来说该方法是稳定的。

[0020] 有利地,所述网络是以太网,但是本发明可以被应用于其它类型的分组转发网络,尤其是对于对称的业务路由路径有要求的那些分组转发网络。

[0021] 在此所描述的功能可以用软件、硬件或者这些的组合来实现。本发明可以通过合适地被编程的计算机或者任何形式的处理设备来实现。因此,本发明的另一个方面提供用于实现所描述的方法中的任何一种的软件。该软件可以被存储在电子存储装置、硬盘、光盘或者其它机器可读存储介质上。该软件可以作为计算机程序产品在机器可读载体上被交付或者它可以通过网络连接被下载到节点。

[0022] 本发明的另外的方面提供包括处理器的网络节点,所述处理器被配置用于执行所描述的方法中的任何一种。

[0023] 本发明的另外的方面提供节点的网络,所述节点各自一致地应用所描述的方法在等开销的路径之间进行选择。附图说明

[0024] 将参考附图仅通过示例的方式来描述本发明的实施例,其中:

[0025] 图1示出具有等开销的路径的网络拓扑结构;

[0026] 图2示出可以在其中实现本发明的分组转发网络的例子;

[0027] 图3示意性地示出在图2的桥接节点中的一个处的设备。

[0028] 图4示出打破平局决定的局部性(locality);

[0029] 图5到7不出网络拓扑结构的例子以不意最短路径的计算;

[0030] 图8不出网络拓扑的另外的例子以不意最短路径的计算;

[0031 ] 图9到11示出图8所示的网络拓扑结构的最短路径计算的打破平局步骤;

[0032] 图12示出双归宿(dual-home)到网状网络上的节点的例子。

[0033] 图13A和13B示意本发明的打破平局方法的特性。

具体实施方式

[0034] 图2示出可以在其中实现本发明的受链路状态协议控制的以太网10的例子并且图3示意性地示出在节点41-48中的一个处的设备。形成网状网络的节点(也被称作桥或者桥接节点)41-48彼此交换链路状态通告(advertisement) 56。这经由链路状态路由系统的被充分理解的机制来实现。路由系统模块51使用链路状态路由协议与网络中的对等节点交换关于网络拓扑结构的信息56。信息的这种交换允许节点生成对网络拓扑结构同步的观察。在每个节点处,最短路径确定模块52计算最短路径树,该最短路径树确定到每个其它节点的最短路径。由模块52确定的最短路径被用于向转发信息库54填充用于引导业务通过网络的条目。如将在下文中更详细地描述的,当模块52遇到多个等开销的路径时情况将出现。打破平局模块53以一致的方式选择等开销的路径中的一个(或多个)。在正常的操作中,分组在节点处被接收57并且目的地查找模块55使用FIB 54来确定所接收的分组应当通过其被转发58的端口(或者在组播分配的情况中为多个端口)。如果在FIB 54中没有有效的条目,则分组可以随后被丢弃。将理解的是图3所示的模块仅用于示意的目的并且可以通过合并或者在节点的模块之间分配功能来实现,这将被本领域的技术人员理解。

[0035] 可以使用各种最短路径算法来确定给定的节点是否在给定的一对桥之间的最短路径上。可以在节点41-48中实现所有点对间最短路径算法(all-pairs shortest pathalgorithm)来计算节点对之间的最短路径,诸如Floyd算法[R.Floyd:算法97 (最短路径)(Algorithm 97 (shortestpath)), ACM 通信(Communications of the ACM), 7:345,1962]或者Dijkstra的单源最短路径算法[E.ff.Dijkstra:对与图论相关的两个问题的记录(A note on two problems in connexion with graphs),数学学手艮(NumericalMathematics),1:269-271,1959]。应当理解的是还可以使用任何合适的最短路径算法。最短路径算法所使用的链路度量可以是静态的或者可以动态地被修改以将业务工程信息(traffic engineeinginformation)考虑在内。例如,链路度量可以包括对诸如容量、速度、使用率和可用性等开销的测量。

[0036] 作为对问题的引入,首先将描述对可以在等开销的路径之间做出一致决定的打破平局算法的要求。要求的列表在下面的表I中列出:

[0039] 打破平局算法的要素是始终“起作用(work)”。无论该算法被提供以怎样的路径集合,该算法应当始终能够选定一个并且仅选定一个路径。首要地,打破平局算法应当是完备的(I)。对于一致的打破平局,该算法必须产生相同的结果而不管等开销的路径被发现以及打破平局被执行的顺序。也就是说,打破平局算法应当是可交换(2)以及可结合(3)的。在三个路径之间打破平局必须产生相同的结果而不管路径对被考虑的顺序的要求(3)不是很明显,但是它对于一致的结果绝对是必要的,因为取决于该计算通过网络的方向按不同的顺序发现等开销的路径。打破平局算法必须是对称的(4),即打破平局算法必须产生相同的结果而不管路径的方向:两个节点A和B之间的最短路径必须是B和A之间的最短路径的反向。最后,局部性是最短路径的非常重要的特性(5),该特性被路由系统充分利用。局部特性简单地来说就是:最短路径的子路径也是最短路径。最短路径的这个看似普通的特性在使用基于目的地的转发的分组网络中具有重要的应用。在这些网络中,在沿路径的中间节点处的转发决定唯一地基于分组的目的地地址,而不是它的源地址。因此,为了生成它的转发信息,节点仅需要计算从它本身到所有其它节点的最短路径并且所产生的转发信息的量随网络中的节点数量线性地而不是二次地(quadratically)增长。为了允许基于目的地的转发,打破平局算法因此必须保持最短路径的局部特性:由打破平局算法选择的最短路径的子路径必须是由该打破平局算法选择的最短路径。

[0040] 对计算效率的考虑对打破平局算法提出了另一看似不同的要求:等开销的路径一被发现该算法就应当能够做出打破平局决定。图4示意了这一点。中间节点I由两个等开销的路径P和q连接到节点A,并且由另一对等开销的路径r和s连接到节点B。因此在节点A和B之间有四个等开销的路径:p+r、p+s、q+r、q+s,它们全部经过节点I。随着对从A到B的最短路径的计算的进行,将首先发现A和I之间的等开销的子路径的存在。为了避免不得不推进(carry forward)这两个路径的信息,第二等开销的最短子路径的存在一被发现该打破平局算法就应当能够在它们之间选定。在中间节点处做出的打破平局决定将最终影响计算的结果。通过排除节点A和I之间的两个子路径P和q中的一个,该算法根据进一步的考虑移除了节点A和B之间的四个最短路径中的两个。相似地,在反方向上,该打破平局算法将在做出最后确定之前在子路径r和s之间选定。这些局部的决定必须彼此一致,而且特别地,如果路径要以相同的方式被延伸,则在两个等开销的路径之间的抉择应当保持相同。例如,在图3所画的情况中,打破平局算法应当验证以下四个恒等式(identity):

[0041] tiebreak (concat (p, r), concat (q, r)) = concat (tiebreak (p, q), r)

[0042] tiebreak (concat (p, s), concat (q, s)) = concat (tiebreak (p, q), s)

[0043] concat (p, tiebreak (r, s)) = tiebreak (concat (p, r), concat (p, s))

[0044] concat (q, tiebreak (r, s)) = tiebreak (concat (q, r), concat (q, s))事实证明,对称性(4)和局部性(5)这两个条件都是必要的并且足以保证打破平局算法将做出一致的局部决定,这一事实可以被充分利用以在有等开销的最短路径的情况下产生单源最短路径算法的非常有效的实现。

[0045] 表I所列出的要求列表并非意在穷举,并且有最短路径的其它特性可以被包括在表I中。例如,如果不是最短路径的部分的链路从图中被移除,则该最短路径不受影响。同样地,如果不是被选择的路径的部分的链路从图中被移除并且即使该链路是等开销的路径中被打破平局算法否决的一些路径的部分,该算法在多个等开销的路径之间的选择不应受影响。

[0046] 现在将描述一致的打破平局算法的第一实施例。这个算法通过为每个路径形成路径标识符开始。路径标识符是通过网络的路径所遍历的每个节点的标识符的有序列表。按字典式顺序将节点标识符排序。路径标识符是经排序的节点标识符的由此产生的串联(concatenation)。图5示出网络的例子,该网络具有端节点A、B和中间节点0-9。节点A和B之间的第一路径(沿图5的最上面)遍历具有节点标识符A-0-5-6-1-4-8-B的节点。在按升序的字典式顺序将节点标识符的列表排序之后,该路径可以由路径标识符014568AB来表示。这种构造确保了路径及其反向将具有相同的路径标识符。此外,由于算法仅处理最短路径或者接近最短的路径,只有两个路径-直接路径和对应的反向路径-能够共享标识符。最后,所述打破平局算法仅选择具有最小(或最大的)路径标识符的路径。该算法可以被总结为:

[0047] I)根据第一排序标准将路径中的节点的标识符的集合排序,该第一排序标准实现节点标识符的集合的全排序。优选的第一排序标准是递增或者递减的字典式顺序;

[0048] 2)串联经排序的节点标识符的集合来创建路径标识符;

[0049] 3)根据第二排序标准将路径标识符排序,该第二排序标准实现路径标识符的集合的全排序。优选的第二排序标准是递增或者递减的字典式顺序;

[0050] 4)选择其路径标识符在路径标识符的经排序的集合的一端(第一个或最后一个)处出现的路径。有利地,该步骤选择在路径标识符的经排序的集合中第一个出现的路径标识符。

[0051] 执行这个算法的网络中的每个节点一致地使用相同的排序标准并且选择在路径标识符的集合中相同的约定(agreed)位置处的路径以便选择相同的路径。

[0052] 术语“字典式顺序”意思是按标识符的大小的顺序来排列节点标识符的集合。所以,如果节点标识符是字母,则节点标识符的集合按字母顺序A、B、C、D...等被排列;如果节点标识符是数字,则节点标识符的集合按数字顺序被排列。明显地,这种方案可以适用于标注节点的任何方式以及标识符类型的任何组合。例如,数字和字母的混合可以通过相对于字母约定数字的顺序(例如首先将数字排序,然后将字母排序)来排序。可替换地,每个字符可以被给予它的美国信息交换标准代码(ASCII)的码并且可以按递增(递减)的顺序将该ASCII码排序。每个节点使用相同的协定(convention)以用相同的方式将路径的节点标识符排序。这个算法将产生一致的结果,因为在路径(严格来说是由路径和它的反向构成的对)和它的标识符之间有一对一的映射,并且有对路径标识符的全排序。

[0053] 再次参考图5,在排序之后,由路径标识符014568AB来表示节点A和B之间最上面的路径。类似地,节点A和B之间的第二路径遍历节点A-0-7-9-1-4-8-B并且在排序之后这可以由路径标识符014789AB来表示。最后,节点A和B之间的第三路径(沿图5的最下面)遍历节点A-0-7-9-2-3-8-B并且在排序之后这可以由路径标识符023789AB来表示。在约定的方向上,所述打破平局算法比较经排序的路径标识符的每个元素。在这个例子中,将被使用的协定是当路径标识符在特定方向上(例如从左到右)被比较时,每个节点选择经排序的路径标识符中最小的那个。对于这三个等开销的路径,经排序的路径标识符为:

[0054] 014568AB

[0055] 014789AB

[0056] 023789AB

[0057] 从标识符左侧的元素开始,所有三个路径标识符都以‘0’开始。下一个元素为‘1’或‘2’,所以只需要再进一步考虑最上面两个标识符。到达第四个元素,“0145...”小于“0147...”,因此最上面的路径被选择。IS-1S和以太网中实际的节点标识符由六个8位的字节组成并且通常被写成十六进制的串,诸如00-e0-7b-cl-a8-c2。还可以使用节点的别名,只要它们一致地被使用。

[0058] 图6示出简单的网络拓扑结构以示意不同排序标准的效果。通过具有节点标识符1-8的四个等开销的路径连接两个节点X、Y。现在将描述四个可能的选项:

[0059] •按升序将节点ID排序;按升序将路径ID排序;选择第一个(最小的)路径ID。如果每个路径中的节点标识符按大小的升序被排序(例如具有节点1,7的最上面的路径变成17),则那样给出路径标识符17,28,35,46。按大小的升序排列这些路径标识符并且选择有序列表中的第一个路径标识符获得选择第一个(最上面的)路径的结果,该路径具有节点I和7。

[0060] •按升序将节点ID排序;按升序将路径ID排序;选择最后一个(最大的)路径ID。这个选项获得选择最后一个(最下面的)路径的结果,该路径具有节点4和6。

[0061] •按降序将节点ID排序;按升序将路径ID排序;选择第一个(最小的)路径ID。按大小的降序将每个路径中的节点标识符排序给出路径标识符(71,82,53,64)。按大小的升序排列这些路径标识符给出(53,64,71,82)并且选择有序的列表中的第一个(最小的)路径标识符获得选择第三个路径的结果,该路径具有节点3和5。

[0062] •按降序将节点ID排序;按升序将路径ID排序;选择最后一个(最大的)路径ID。这个选项获得选择第二个路径的结果,该路径具有节点8和2。

[0063] 如将在下文中更详细地描述的,存在一些情况,其中所希望的是节点应用多个不同的排序和/或选择标准来选择多个等开销的路径。

[0064] 到目前为止,本说明书假设该算法是非局部的(non-local)并且打破平局在所有等开销的路径已被找到之后被执行。但是,已经发现这个算法的局部形式可以通过仅考虑分叉支路上的节点而产生相同的结果。实际上,打破平局的结果仅取决于分叉支路中最小的节点标识符的相对位置。一致的打破平局算法的第二实施例可以被总结为:[0065] I)在第一路径的分叉支路中找到达到第一选择标准的节点标识符。这可以被认为是该第一路径的支路标识符;

[0066] 2)在第二路径的分叉支路中找到达到第一选择标准的节点标识符。这可以被认为是该第二路径的支路标识符;

[0067] 3)使用第二选择标准来选择所述路径中的一个,其在通过步骤(1)和(2)所选择的支路标识符上运算(operate)。

[0068] 对于第一选择标准优选的选项是找到这样的节点标识符,即当使用诸如字典式顺序(递增或者递减的字典式顺序)的全排序方案来排列节点标识符时,该节点标识符是第一个(或者最后一个)。如将在下文中所解释的,该方案不一定要汇集支路中的节点标识符的总的集合,然后将该集合排序。相反,该方案可以利用对字典式顺序的认识迭代地比较节点标识符对。类似地,对于第二选择标准优选的选项是找到这样的支路标识符,即当使用诸如字典式顺序(递增或者递减的字典式顺序)的全排序方案来排列支路标识符时,该支路标识符是第一个(或者最后一个)。

[0069] 再次参考图6的拓扑结构,节点X和Y之间的四个等开销的路径可以表示来自父节点X的四个等开销的分叉支路。所述打破平局算法需要选择这四个支路中的一个。有四个可能的选项: [0070] •标识每个支路中最小的节点ID。这产生(1,2,3,4)作为支路标识符。然后,标识支路标识符中最小的那个。这获得选择第一个(最上面的)路径的结果,该路径具有节点I和7。

[0071] •标识每个支路中最小的节点ID。然后,标识支路标识符中最大的那个。这个选项获得选择最后一个(最下面的)路径的结果,该路径具有节点4和6。

[0072] •标识每个支路中最大的节点ID。这产生(5,6,7,8)作为支路标识符。然后,标识支路标识符中最小的那个。这获得选择具有节点3和5的路径的结果。

[0073] •标识每个支路中最大的节点ID。然后,标识支路标识符中最大的那个。这个选项获得选择具有节点2和8的路径的结果。

[0074] 如将在下文中更详细地描述的,存在一些情况,其中所希望的是节点应用多个不同的排序和/或选择标准来选择多个等开销的路径。

[0075] 这个算法可以通过简单的比较而非常容易且有效地被实现。图7示出另一网络拓扑结构。所述方法的局部形式将在节点13处开始,并且进而查找从节点15引出的两个分叉支路。该方法探索直到节点16为止的两个独立的路径,这两个路径在节点16处再次汇聚。在这点上,该方法检查两个支路中的每一个的节点标识符。对于第一支路,节点标识符为:10,14,17,21并且对于第二支路,节点标识符为:11,12,19,20。具有最小的标识符(10)的支路是最上面的路径的部分。该方法可以仅从节点16向节点15回溯,保持对在每个支路中找到的最小的节点标识符的跟踪。在每个逆向的步骤处,该方法将到目前为止所找到的最小的节点标识符与在该步骤处所遇到的新的节点标识符比较。最小的节点标识符被存储。当该方法已经回溯至节点15时,两个最小的值(在最上面的支路中为10,在较低的支路中为11)可以仅被相互比较以找到具有最小的节点标识符的支路。因此,最上面的支路被选择,其形成最上面的路径的部分。当执行这种打破平局时,这两个分叉支路所共有的路径的部分被忽略。[0076] 用于在网络中查找最短开销路径(shortest cost path)的最常用的算法之一是Dijkstra算法[Dijkstra 59]。它解决的问题是在路径的长度被定义为正的(positive)逐跳(hop-by-hop)链路开销的总和的情况下查找从图中的一个点(源节点或根节点)到所有可能的目的地的最短路径。这个问题有时候被称为单源最短路径问题。对于图G= (N,L),其中N是节点的集合并且L是连接它们的链路的集合,Dijkstra算法使用通常被称为TENT的优先级队列以按到源节点的距离递增的顺序来访问节点。实现Dijkstra算法所需要的其它数据结构为:

[0077] 距离(Distance):从源节点到每个节点的最短距离的最佳估计的数组。

[0078] 父代(Parent):每个节点的前驱的数组。

[0079] 下面的文本描述已知的Dijkstra算法,并且描述其可以如何被修改以在多个等开销的路径被发现时执行打破平局。在此描述Dijkstra算法是因为它是最常用的最短路径查找算法之一。但是,将理解的是其它算法同样可以被使用。初始化阶段将每个节点的距离设置为无穷大,除了源节点本身。源节点的距离被设置为零并且它的父代被设置为空(Null),因为它是树的根。在计算开始时,优先级队列仅包含源节点。随着算法的进行,节点在从源节点到它们的路径被找到时被加入优先级队列。在节点和源节点之间的最短路径已被找到之后,按到源节点的距离递增的顺序将这些节点从优先级队列中取出。该算法在可从源节点到达的所有节点都已循环通过优先级队列时停止。当优先级队列TENT不为空时,该算法执行以下步骤:

[0080] I)在TENT中查找与源节点最接近的节点N并将其从TENT中移除。

[0081] 2)对于连接到N的每个节点,如果通过使N成为节点的父代将减小它到源的距离,则将该节点的父代改为N,将该节点的距离设置为新的距离,并且将该节点加入TENT。

[0082] 当该算法完成时,距离(节点)包含从源节点到节点的最短距离(或者如果不能从源节点到达该节点则距离为无穷远)并且父代(节点)包含生成树中节点的前驱(除了源节点以及不能从源节点到达的节点)。只有当改变父代实际上减小了节点的距离时才更新节点的父代。这意味着,如果在源节点和一些其它节点之间存在多个等开销最短路径,则只有在算法的执行期间所遇到的第一个节点将被考虑。

[0083] 上面的步骤是Dijstra算法的常规步骤。在这点上,Di jkstra被修改以增加一致的打破平局步骤。上面的步骤2如下被修改:

[0084] 2)为连接到节点N的每个节点进行以下操作:

[0085] 2a)如果通过使N成为节点的父代将减小节点到源节点的距离,则将该节点的父代改为N,将该节点的距离设置为新的距离,并且将该节点加入TENT。

[0086] 2b)如果在使N成为节点的父代之后该节点到源节点的距离将保持相同,则调用打破平局算法来确定该节点的父代是否应当被改变。在到达两个分叉支路的汇聚点时调用打破平局算法。例如,考虑图7所示的拓扑结构,如果Dijkstra算法从节点13开始,从节点15引出的分叉支路被发现(具有节点10、14、17、21的上部支路和具有节点11、12、19、20的下部支路),并且这些分叉支路在节点16处汇聚。在节点16处,打破平局算法将被调用以在这两个支路之间进行选择。

[0087] 下面的伪代码示出了使用TENT集合的优先级队列实现对具有一致的打破平局的被修改的Dijkstra算法的实现。入列(enqueue)操作带有两个自变量,即队列和节点,并且根据节点到源节点的距离将它放在恰当的队列位置上。出列(dequeue)操作从队列中移除在队列最前面的节点,即具有到源节点的最小距离的节点。

[0088] for each Node in Network do Distance(Node) = Infinity ;

[0089] Empty (Tent);

[0090] Distance (Source) =0;

[0091] Parent (Source) = Null ;

[0092] Node = Source ;

[0093] do

[0094] for each Link in OutgoingLinks(Node)do

[0095] newDistance = Distance(Node)+Cost(Link);

[0096] Child = EndNode(Link);

[0097] if (newDistance < Distance (Child) do

[0098] Distance (Child) = newDistance ;

·[0099] Parent (Child) = Node ;

[0100] Enqueue (Tent,Child);

[0101] elseif (newDistance == Distance (Child) do

[0102] Parent (Child) = TieBreak (Node, Parent (Child));

[0103] while (Node = Dequeue (Tent));

[0104] 该打破平局算法通过回溯两个等开销的路径来运算,分别从节点的当前父代以及新的候选父代开始,一路返回至分叉点。两个分叉路径可能具有不同数量的跳跃的事实使情况稍微变复杂,因为两个路径必须被回溯未知的、不等数量的跳跃。这个问题可以通过始终首先回溯两个路径中较长的那个或者当它们具有等开销时同时回溯两者来解决。可替换地,这种困难可以通过确保当且仅当两个路径具有相同数量的跳跃时它们才将被认为具有等开销而完全被消除。这通过将跳数并入路径开销或者通过将跳数用作第一级的决胜局(first order tie-breaker)而容易地被实现。

[0105] 下面的伪代码示出了打破平局算法的实现,其假定两个路径具有相同数量的跳跃(并且因此它们的分叉支路也具有相同数量的跳跃)。打破平局函数带有处于两个相等的路径的末端的两个节点并且返回它们中的一个来指示它选择了这两个路径中的哪一个。

[0106] old = οIdParent ;

[0107] new = newParent ;

[0108] oldMinld = Sysld(old);

[0109] newMinld = SysId (new);

[0110] while ((old = Parent (old)) ! = (new = Parent (new))) do

[0111] tmp = SysId (old);

[0112] if (tmp < oldMinld) do oldMinld = tmp ;

[0113] tmp = SysId (new);

[0114] if (tmp < newMinld) do newMinld = tmp ;

[0115] if (newMinld < oldMinld) return newParent ;

[0116] else return oIdParent ;[0117] 算法需要被执行的频率取决于应用。PLSB基本上需要计算所有点对间最短路径(有时是其子集)。在这种情况下,Dijkstra算法需要为网络中的所有节点(准确地说是除了一个节点以外的所有节点)被运行。Floyd算法计算所有点对间最短路径,所以它仅需要被运行一次。其它应用可能仅要求计算较少数量的路径(例如,如果只要求一个最短路径,则Dijkstra算法将必须仅被运行一次,其中以路径的端点中的一个作为源)。

[0118] 图8示出网络的例子,该网络具有通过链路互连的节点A_H、J。对于每一链路,与该链路相关联的度量被示出为链路上的整数值。在这个网络中在节点A和节点B之间有六个不同的、等开销的、最短路径。这些路径在下表中以它们各自的长度和路径标识符被示出:

[0119]

[0120] 所有这六个路径具有相同的长度10。打破平局算法的非局部形式将选择具有最小路径标识符(ABCFH)的那个路径,即路径AFCHB。这节的剩余部分示出打破平局算法的局部形式如何通过随着等开销的路径和子路径在Dijkstra算法的执行期间被发现仅做出局部的打破平局决定而达到相同的结果。Dijkstra算法为网络中的节点初始化距离和父代(前驱)的表。所有距离初始地被设置为无穷大,除了源节点,它的距离被设置为零。父代在这个阶段未被定义:

[0121]

[0122] Dijkstra算法还将它的优先级队列初始化为仅包含源节点A:TENT = [ (A, O)]。

[0123] Dijkstra循环的第一次迭代选择TENT中的第一个并且仅有的一个节点,即节点A。然后对于节点A的邻节点(即节点F和G)中的每一个,其更新它们到源的距离并且使节点A成为它们的父代。最后,这两个节点被加入TENT优先级队列。

[0124] 在Dijkstra算法的这个第一次迭代期间,距离和父代的表变为:

[0125]

[0126] 在第一次迭代结束时,优先级队列为:TENT = [(G,l), (F,2)]。Dijkstra循环的第二次迭代从优先级队列中移除具有最小距离的节点即节点G。它更新了 G的邻节点中还没有被处理的两个节点,即节点C和D,并且将它们加入优先级队列:

[0127]

[0128] 在第二次迭代结束时,优先级队列为:TENT = [(F,2),(D,4),(C,5)]。Dijkstra循环的第三次迭代将节点F从优先级队列中移除。其更新节点F的两个邻节点,即节点C和E,并且将节点E加入优先级队列(节点C已经在该队列中)。节点C的距离没有改变,但是在节点A和节点C之间有新的候选的相等路径,该路径经过节点F。因此,必须调用所述打破平局算法以在经过节点F的这个新的路径和经过节点G的旧的路径之间选定。这在图9中示出。以节点C的新的候选父代(节点F)和它的旧的父代(节点G)来调用所述打破平局算法。oldMin被设置为旧的父代的标识符G并且newMin被设置为新的父代的标识符F。由于节点F和G共享相同的父代(节点A),所以不执行回溯循环。所述打破平局仅比较oldMin和newMin,并且由于newMin = F < G = oldMin,所以F被选择为节点C的新的父代:

[0129]

[0130] 在第三次迭代结束时,优先级队列为:TENT = [(D,4),(E,4),(C,5)]。

[0131] Dijkstra循环的第四次迭代从优先级队列中移除具有距离4的两个节点中的一个,例如节点D。D的两个邻节点中只有一个节点,即节点H被更新并且被加入优先级队列:

[0132]

[0133] 在第四次迭代结束时,优先级队列为:TENT = [(Ε,4),(C,5),(H,6)]。

[0134] Dijkstra循环的第五次迭代将节点E从优先级队列中移除。E的两个邻节点中只有一个节点,即节点J被更新并且被加入优先级队列。

[0135]

[0136] 在第五次迭代结束时,优先级队列为=TENT = [(C,5),(H,6),(J,6)]。

[0137] Dijkstra循环的第六次迭代将节点C从优先级队列中移除。C的两个邻节点(节点J和H)具有经过节点C到节点A的等开销的路径。所述打破平局算法因此必须分别为节点J和H被调用两次。对于节点J,以新的潜在的父代(节点C)和旧的父代(节点E)来调用所述打破平局算法。oldMin被设置为旧的父代的标识符E并且newMin被设置为新的父代的标识符C。由于这两个节点E和C共享相同的父代(节点F),所以不执行回溯循环。所述打破平局仅比较oldMin和newMin并且由于newMin = C < E = oldMin,所以选择新的父代。因此,节点J的父代由节点C代替。这在图10中示出。

[0138] 对于节点H,以新的潜在的父代(节点C)和旧的父代(节点D)来调用所述打破平局算法。oldMin被设置为旧的父代的标识符D并且newMin被设置为新的父代的标识符C。由于这两个节点具有不同的父代,所以这两个路径必须另外被回溯一次跳跃。D的父代是G并且由于G > οldmin ( = D),所以oldMin不改变。C的父代是F并且由于F > newMin (=

C),所以newMin也不改变。由于F和G共享相同的父代,即节点A,所以回溯循环停止。所述打破平局算法然后比较oldMin和newMin,并且由于newMin = C < D = oldMin,节点C被选择变为节点H的新的父代。这在图11中示出。

[0140] 在第六次迭代结束时,优先级队列为:ΤΕΝΤ = [(H,6),(J,6)]。

[0141] Dijkstra循环的第七次迭代从优先级队列中移除具有距离6的两个节点中的一个,例如节点H。H的邻节点中只有一个,即节点B被更新并且被加入优先级队列:

[0142]

[0143] 在第七次迭代结束时,优先级队列为:TENT = [(J,6),(B, 10)]。

[0144] Dijkstra循环的第八次迭代将节点J从优先级队列中移除。在J的邻节点中只有节点B需要被更新。它的距离不改变但是在节点A和节点B之间有新的候选的相等路径,该路径经过节点J。[0145] 以节点B的新的潜在的父代(节点J)和旧的父代(节点H)来调用所述打破平局算法。oldMin被设置为旧的父代的标识符H并且newMin被设置为新的父代的标识符J。由于这两个节点H和J共享相同的父代(节点C),所以不执行回溯循环。所述打破平局仅比较oldMin和newMin,并且由于oldMin = H < J = newMin,所以旧的父代被选择并且节点B的父代保持相同。

[0146]

[0147] 在第八次迭代结束时,优先级队列为:ΤΕΝΤ = [(B, 10)]。

[0148] 最后,Di jkstra循环的最后一次迭代将节点B从队列中移除并且由于节点B的邻节点中没有一个可以被更新(节点B是离开源节点A最远的节点),所以该算法终止。

[0149] 从节点A到节点B的最短路径的反向可以直接从父代的表中读出,从节点B开始并且沿父代前进直到到达节点A:BHCFA。通过局部打破平局算法所选择的从节点A到节点B的最短路径因此是它的反向路径:AFCHB。

[0150] 尽管在节点A和B之间有6个等开销的路径,但是在Dijkstra算法的执行期间所述局部打破平局仅被调用总计4次。在它的第一次调用时,该打破平局算法必须在子路径AFC和AGC之间选定。它选择了子路径AFC,由此根据进一步的考虑将两个路径AGCJB和AGCHB排除。在它的第二次调用时,该打破平局算法必须在子路径AFCJ和AFEJ之间选定。它选择了子路径AFCJ,由此根据进一步的考虑将第三个路径AFEJB排除。在它的第三次调用时,该打破平局算法必须在子路径AGDH和AGCH之间选定。它选择了子路径AGCH,由此根据进一步的考虑将第四个路径AGDHB排除。最后,在它的第四次调用时,该打破平局算法必须在路径AFCHB和AFCJB之间选定。它排除了第五个路径AFCJB并且选择了路径AFCHB作为最后的解。

[0151] 用于负载传播的等开销多路径的选择

[0152] 在许多连网(networking)应用中,经常有利的是使用若干等开销的路径,尤其是如果这可以以一致的方式来实现。通过使用所述打破平局算法的两种变形,有可能使用节点对之间的两个等开销的路径(在这两个路径存在的情况下)。图12示出常见的连网场景,其中边节点X和Y各自双归宿在核心节点A、B、C、D的全网状结构(full mesh)上。为有冗余,每个边节点被连接到两个核心节点,其中节点X被连接到核心节点A和B并且节点Y被连接到节点C和D。每个核心节点被连接到所有其它核心节点,例如节点A被连接到节点B、C和D。这个拓扑结构的问题是,如果在节点对之间只有一个最短路径被使用,则在正常情况下将浪费大量的访问容量(access capacity)。当在两个节点之间存在多个等开销最短路径时,所述打破平局算法的两种变形可以被用于一致地选择正好两个路径。由所有节点约定的任何协定可以被用于在等开销的路径之间进行选择。一种特别方便的协定是选择具有最小标识符的第一路径和具有最大的标识符的第二路径。在图12中,由于核心节点完全网状互连(fully meshed),在边缘节点X和Y之间存在四个等开销的路径:(X,A,C,Y),(X,A, D,Y),(X,B, C,Y),(X,B, D,Y)。所述打破平局算法的两种变形将选择这两个路径:

[0153] (X,min(A,B),min(C,D),Y)以及

[0154] (X,max (A, B),max (C, D),Y)

[0155]由于节点标识符是唯一的,min(A, B) ! = max (A, B)并且 min (C, D) ! = max (C,

D):这两个路径最大程度相异:它们仅共同具有它们的端点。在图12中,两个被选择的路径为路径(X,A,C,Y)和路径(X,B, D,Y)。

[0156] 在上文中所描述的打破平局方法的重要特性之一是对网络的改变对打破平局的结果没有影响,所述对网络的改变不影响路径集合中打破平局需要为其从路径之间选择的那个。这种改变可能包括对不在被选择的路径上的网络的部分的移除,诸如出故障的节点或链路。另一重要特性是,当多个路径等开销的路径被使用时,一个路径中的故障不影响其它路径的稳定性。类似地,链路的增加将仅影响等开销的路径中的一个而不会同时影响两个。这对于网络的稳定性是重要的。

[0157] 图13A和13B示意了本发明的打破平局方法的其它重要特性:

[0158] •在有等开销的路径的情况下单个故障不会促成回路;

[0159] •故障不会既使回路闭合也使根节点的附接的点移位;

[0160] •故障不会产生更短的路径;

[0161] •所述打破平局算法防止等开销的路径的评级改变最短路径。图13A和13B用具有节点A、B、C、D和R的简单的网络拓扑结构来示意这些特性。考虑图13A,R和节点A-D的集合之间的最短路径使用链路R-A。从节点A到达节点C有对两个等开销的支路的抉择。使用在上文中所描述的打破平局方法中的一个,支路A-B-C被一致地选择而不是支路A-D-C。类似地,在反方向上,链路C-B-A被一致地选择而不是C-D-A。图13B示出当链路R-A出故障时在稍后的时间点处的情况。节点R现在通过次最佳链路R-C连接到节点A-D的集合。从节点C到达节点A有对两个等开销的支路的抉择。同样地,支路C-B-A被一致地选择而不是支路C-D-A。在不使用这种一致的打破平局算法的情况下,回路A-B-C-D-A可能在链路R-A中的故障之后产生,其中节点A和B在它们的行为上表现为缓慢且杂乱而节点C和D表现灵活。这种特性对于为组播转发保证无回路特别有用。

[0162]本发明不受在本文中所描述的实施例的限制,其可以被修改或者改变而不脱离本发明的范围。

Claims (29)

1.一种确定转发信息供在分组转发网络的第一节点处转发分组时使用的方法,所述网络的每个节点具有唯一的节点标识符,所述方法包括: 确定所述第一节点和所述网络的第二节点之间的最短路径; 确定多个最短路径具有相等的开销的时间; 为每个等开销的路径形成定义所述路径中的节点的集合的节点标识符的集合; 使用第一排序标准将节点标识符的每个集合排序以形成路径标识符,其中所述第一排序标准独立于节点标识符在所述路径中出现的顺序; 通过比较所述路径标识符而在所述多个等开销的路径之间进行选择。
2.根据权利要求1所述的方法,其中用确定多个最短路径具有完全相等的开销的时间代替所述确定多个最短路径具有相等的开销的时间的步骤。
3.根据权利要求1所述的方法,其中确定多个最短路径具有相等的开销的时间包括确定所述多个最短 路径就至少一个链路度量而言在彼此的理想偏移以内具有相等的开销的时间。
4.根据权利要求1所述的方法,其中所述第一排序标准创建节点标识符的全序集合。
5.根据权利要求1所述的方法,其中所述第一排序标准是递增的字典式顺序和递减的字典式顺序中的一个。
6.根据权利要求1所述的方法,其还包括使用第二排序标准将多个路径标识符排序成有序列表。
7.根据权利要求6所述的方法,其中所述第二排序标准创建路径标识符的全序集合;并且,所述在多个等开销的路径之间进行选择的步骤包括选择在所述路径标识符的有序列表的一端处出现的等开销的路径。
8.根据权利要求7所述的方法,其中所述在多个等开销的路径之间进行选择的步骤包括选择在所述路径标识符的有序列表中第一个出现的等开销的路径和在所述路径标识符的有序列表中最后一个出现的等开销的路径中的一个。
9.根据权利要求6所述的方法,其中所述第二排序标准是递增的字典式顺序和递减的字典式顺序中的一个。
10.根据权利要求6所述的方法,其还包括通过以下方式中的至少一个来选择所述等开销的路径中的两个:使用不同的第一排序标准和共同的第二排序标准;使用共同的第一排序标准和不同的第二排序标准。
11.根据权利要求6所述的方法,其还包括通过以下方式来选择所述等开销的路径中的四个:使用两个不同的第一排序标准和共同的第二排序标准;使用相同的两个第一排序标准和不同的第二排序标准。
12.根据权利要求10所述的方法,其中所述第一排序标准是:递增的字典式顺序,递减的字典式顺序;并且所述第二排序标准是:递增的字典式顺序,递减的字典式顺序。
13.一种确定转发信息供在分组转发网络的第一节点处转发分组时使用的方法,所述网络的每个节点具有唯一的节点标识符,所述方法包括: 通过迭代地形成最短路径树来确定所述第一节点和所述网络的第二节点之间的最短路径; 在形成所述最短路径树的同时,确定多个路径具有等开销的时间,每个等开销的路径包括在所述等开销的路径所共有的分叉节点处从另一等开销路径的支路分出的支路; 使用第一选择标准为每个分叉支路选择所述分叉支路中的节点的节点标识符作为支路标识符,所述第一选择标准独立于所述节点在所述分叉支路中出现的顺序; 通过比较所述支路标识符而选择所述分叉支路中的一个。
14.根据权利要求13所述的方法,其中所述第一选择标准使用全排序标准来选择每个支路中的节点标识符。
15.根据权利要求13所述的方法,其中所述第一选择标准使用字典式顺序来选择每个支路中的节点标识符。
16.根据权利要求15所述的方法,其中所述第一选择标准使用字典式顺序来选择按字典式顺序第一个出现的节点标识符和按字典式顺序最后一个出现的节点标识符中的一个。
17.根据权利要求13所述的方法,其还包括在向所述分叉节点回溯的同时记录所述分叉支路的每一个中达到所述第一选择标准的节点标识符。
18.根据权利要求17所述的方法,其还包括在每个逆向的步骤处,将所记录的节点标识符与在该步骤处所遇到的新的节点标识符比较并且记录达到所述第一选择标准的节点标识符。
19.根据权利要求13所述的方法,其还包括通过使用第二选择标准选择支路标识符而在所述多个支路之间进行选择。
20.根据权利要求19所述的方法,其中所述第二选择标准使用全排序标准来选择所述支路标识符。
21.根据权利要求20所述·的方法,其中所述第二选择标准使用字典式顺序来选择支路标识符。
22.根据权利要求21所述的方法,其中所述第二选择标识符使用字典式顺序来选择按字典式顺序第一个出现的节点标识符和按字典式顺序最后一个出现的节点标识符中的一个。
23.根据权利要求13所述的方法,其在成对的基础在所述多个支路之间进行选择。
24.根据权利要求19所述的方法,其还包括通过以下方式中的至少一个来选择所述等开销的路径中的两个:使用不同的第一选择标准和共同的第二选择标准;使用共同的第一选择标准和不同的第二选择标准。
25.根据权利要求19所述的方法,其还包括通过以下方式来选择所述等开销的路径中的四个:使用两个不同的第一选择标准和共同的第二选择标准;使用相同的两个第一选择标准和不同的第二选择标准。
26.根据权利要求24所述的方法,其中所述第一选择标准是:最大的节点标识符,最小的节点标识符;并且所述第二选择标准是:最大的支路标识符,最小的支路标识符。
27.根据权利要求13所述的方法,其包括使用Dijkstra算法迭代地形成最短路径树。
28.一种用于确定转发信息供在分组转发网络的第一节点处转发分组时使用的设备,所述网络的每个节点具有唯一的节点标识符,所述设备包括: 用于确定所述第一节点和所述网络的第二节点之间的最短路径的部件; 用于确定多个最短路径具有相等的开销的时间的部件; 用于为每个等开销的路径形成定义所述路径中的节点的集合的节点标识符的集合的部件; 用于使用第一排序标准将节点标识符的每个集合排序以形成路径标识符的部件,其中所述第一排序标准独立于节点标识符在所述路径中出现的顺序; 用于通过比较所述路径标识符而在所述多个等开销的路径之间进行选择的部件。
29.一种用于确定转发信息供在分组转发网络的第一节点处转发分组时使用的设备,所述网络的每个节点具有唯一的节点标识符,所述设备包括: 用于通过迭代地形成最短路径树来确定所述第一节点和所述网络的第二节点之间的最短路径的部件; 用于在形成所述最短路径树的同时,确定多个路径具有等开销的时间的部件,每个等开销的路径包括在所述等开销的路径所共有的分叉节点处从另一等开销路径的支路分出的支路; 用于使用第一选择标准为每个分叉支路选择所述分叉支路中的节点的节点标识符作为支路标识符的部件,所述第一选择标准独立于所述节点在所述分叉支路中出现的顺序; 用于通过比较所述支路标识符·而选择所述分叉支路中的一个的部件。
CN 200880127674 2007-12-26 2008-12-11 最短路径确定中的打破平局 CN101965715B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11964478 US7911944B2 (en) 2007-12-26 2007-12-26 Tie-breaking in shortest path determination
US11/964478 2007-12-26
PCT/IB2008/003940 WO2010032081A1 (en) 2007-12-26 2008-12-11 Tie-breaking in shortest path determination

Publications (2)

Publication Number Publication Date
CN101965715A true CN101965715A (zh) 2011-02-02
CN101965715B true CN101965715B (zh) 2014-06-11

Family

ID=40798344

Family Applications (2)

Application Number Title Priority Date Filing Date
CN 201410174422 CN103973566A (zh) 2007-12-26 2008-12-11 最短路径确定中的打破平局
CN 200880127674 CN101965715B (zh) 2007-12-26 2008-12-11 最短路径确定中的打破平局

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN 201410174422 CN103973566A (zh) 2007-12-26 2008-12-11 最短路径确定中的打破平局

Country Status (7)

Country Link
US (3) US7911944B2 (zh)
JP (2) JP5362743B2 (zh)
KR (1) KR20100112144A (zh)
CN (2) CN103973566A (zh)
CA (1) CA2742887A1 (zh)
EP (2) EP2232792A4 (zh)
WO (1) WO2010032081A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US7821503B2 (en) 2003-04-09 2010-10-26 Tegic Communications, Inc. Touch screen and graphical user interface
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US7958120B2 (en) 2005-05-10 2011-06-07 Netseer, Inc. Method and apparatus for distributed community finding
US9110985B2 (en) * 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
WO2007084616A3 (en) 2006-01-18 2008-04-17 Behnam Attaran-Rezael System and method for context-based knowledge search, tagging, collaboration, management and advertisement
US8825657B2 (en) 2006-01-19 2014-09-02 Netseer, Inc. Systems and methods for creating, navigating, and searching informational web neighborhoods
US8843434B2 (en) 2006-02-28 2014-09-23 Netseer, Inc. Methods and apparatus for visualizing, managing, monetizing, and personalizing knowledge search results on a user interface
CA2663186C (en) * 2006-10-13 2017-12-12 Firetide, Inc. Mesh node mobility across static and mobile mesh networks
US9817902B2 (en) * 2006-10-27 2017-11-14 Netseer Acquisition, Inc. Methods and apparatus for matching relevant content to user intention
CN103299550B (zh) * 2010-11-04 2015-12-09 纽昂斯通讯公司 用于具有自动校正的键盘系统的拼写检查
US8201087B2 (en) 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US8761022B2 (en) 2007-12-26 2014-06-24 Rockstar Consortium Us Lp Tie-breaking in shortest path determination
US8027310B2 (en) * 2008-01-29 2011-09-27 Ericsson Ab Flexible mobile IP foreign agent architecture for enabling converged services
US8116229B2 (en) * 2008-02-19 2012-02-14 Cisco Technology, Inc. Reducing packet drops in networks guaranteeing in-order delivery
US20090281900A1 (en) * 2008-05-06 2009-11-12 Netseer, Inc. Discovering Relevant Concept And Context For Content Node
US20090300009A1 (en) * 2008-05-30 2009-12-03 Netseer, Inc. Behavioral Targeting For Tracking, Aggregating, And Predicting Online Behavior
US8565075B2 (en) * 2008-10-30 2013-10-22 Verizon Patent And Licensing Inc. Method and system for determining alternate paths
US8417695B2 (en) * 2008-10-30 2013-04-09 Netseer, Inc. Identifying related concepts of URLs and domain names
US8248925B2 (en) * 2009-09-08 2012-08-21 Rockstar Bidco, LP Method and apparatus for selecting between multiple equal cost paths
US8539155B1 (en) * 2009-09-21 2013-09-17 Tilera Corporation Managing home cache assignment
US9065743B2 (en) * 2009-12-24 2015-06-23 At&T Intellectual Property I, L.P. Determining connectivity in a failed network
US8681635B2 (en) * 2009-12-31 2014-03-25 Mapquest, Inc. Computer-implemented systems and methods for planning a route
WO2011083846A1 (ja) * 2010-01-08 2011-07-14 日本電気株式会社 通信システム、転送ノード、経路管理サーバおよび通信方法
ES2401160T3 (es) * 2010-05-06 2013-04-17 Deutsche Telekom Ag Procedimiento y sistema para controlar una comunicación de datos dentro de una red
US9210071B2 (en) 2010-08-16 2015-12-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for fat tree networks
US9160651B2 (en) 2013-07-24 2015-10-13 Telefonaktiebolaget L M Ericsson (Publ) Metric biasing for bandwidth aware tie breaking
US8553584B2 (en) * 2010-09-08 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for 802.1AQ based upon the use of link utilization as feedback into the tie breaking mechanism
US9503360B2 (en) * 2010-09-27 2016-11-22 Ciena Corporation Method and apparatus for traffic engineering in shortest path bridged networks
JP5668759B2 (ja) * 2010-11-01 2015-02-12 日本電気株式会社 通信システム、制御装置、パケット転送経路の制御方法およびプログラム
CN102111912B (zh) * 2011-03-09 2013-07-10 南京瀚之显电子科技有限公司 Zigbee同构树型无线传感网的集中式构建方法
US8804490B2 (en) 2011-07-29 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
US9185027B2 (en) 2011-07-29 2015-11-10 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for resilient routing of control traffic in a split-architecture system
US8774192B2 (en) * 2011-09-10 2014-07-08 Arnab Das Methods systems, and devices for robustness improvement in a mobile ad hoc network using reputation-based routing
US8811212B2 (en) * 2012-02-22 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
US8982689B2 (en) * 2012-04-20 2015-03-17 Telefonaktiebolaget L M Ericsson (Publ) Split tiebreakers for 802.1AQ
US8848509B2 (en) 2012-04-27 2014-09-30 Telefonaktiebolaget L M Ericsson (Publ) Three stage folded Clos optimization for 802.1aq
CN102769887A (zh) * 2012-05-02 2012-11-07 黄林果 一种无线mesh网络的多路径选择方法
WO2013173900A1 (en) * 2012-05-22 2013-11-28 Rockstar Bidco Lp Tie-breaking in shortest path determination
US9077562B2 (en) 2012-06-08 2015-07-07 Cisco Technology, Inc. System and method for layer-2 multicast multipathing
CN103546381B (zh) * 2012-07-12 2017-06-09 华为技术有限公司 基于内部网关协议创建双向组播分发树的方法、装置及系统
US9178837B2 (en) 2012-07-17 2015-11-03 Cisco Technology, Inc. System and method for layer-2 network routing
CN102880739A (zh) * 2012-07-31 2013-01-16 中国兵器科学研究院 一种基于邻接表的网络最小路集确定方法
CN103036791B (zh) * 2012-11-30 2015-08-19 福建星网锐捷网络有限公司 一种确定点到多点路径的方法和装置
CN103078796B (zh) * 2013-01-28 2016-03-30 杭州华三通信技术有限公司 一种路由计算方法和设备
US20140269410A1 (en) * 2013-03-14 2014-09-18 Cisco Technology, Inc. Efficient Flooding of Link State Packets for Layer 2 Link State Protocols
US9419919B2 (en) * 2013-03-15 2016-08-16 Cisco Technology, Inc. VPC auto configuration
CN104641604B (zh) * 2013-04-08 2017-12-15 华为技术有限公司 确定最短路径的方法及装置
US9264312B2 (en) * 2013-09-30 2016-02-16 Cisco Technology, Inc. Method and system to calculate multiple shortest path first trees
US9166887B2 (en) 2013-12-26 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Multicast convergence
US20150304206A1 (en) * 2014-04-17 2015-10-22 Cisco Technology, Inc. Segment routing - egress peer engineering (sp-epe)
US9225629B2 (en) * 2014-05-30 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Efficient identification of node protection remote LFA target
US9565623B2 (en) * 2014-08-12 2017-02-07 Digi International Inc. Systems and methods for ordering candidates for wireless network association
US9753439B2 (en) * 2014-10-02 2017-09-05 Fisher-Rosemount Systems, Inc. Multi-protocol device supporting wireless plant protocols
US20170033939A1 (en) * 2015-07-28 2017-02-02 Ciena Corporation Multicast systems and methods for segment routing
US20170358914A1 (en) * 2016-06-14 2017-12-14 Meshed Power Systems, Inc. Fault recovery systems and methods for electrical power distribution networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926860A2 (en) 1997-12-24 1999-06-30 Northern Telecom Limited Traffic route finder in communications network
CN1805409A (zh) 2005-01-11 2006-07-19 阿尔卡特公司 在基于策略的路由网中识别预先计算的路径的系统和方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023916A (en) * 1989-08-28 1991-06-11 Hewlett-Packard Company Method for inspecting the leads of electrical components on surface mount printed circuit boards
JPH05207132A (ja) * 1992-01-23 1993-08-13 Nippon Telegr & Teleph Corp <Ntt> 通信網設計のための交換機間接続経路の生成、整理及び決定方法
DE69636126D1 (de) * 1995-11-15 2006-06-14 Enterasys Networks Inc Verteilte verbindungsorientierte dienste für vermittelte fernmeldenetz
JP3315588B2 (ja) * 1996-05-16 2002-08-19 株式会社日立製作所 トラヒック流量制御を行うatm交換機
US6961341B1 (en) * 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US6697333B1 (en) * 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US6633544B1 (en) 1998-06-24 2003-10-14 At&T Corp. Efficient precomputation of quality-of-service routes
JP2000032040A (ja) * 1998-07-07 2000-01-28 Nippon Telegr & Teleph Corp <Ntt> サーバアクセス経路可視化方法および装置
US6928484B1 (en) * 2000-01-18 2005-08-09 Cisco Technology, Inc. Method and apparatus for discovering edge-disjoint shortest path pairs during shortest path tree computation
US7123620B1 (en) 2000-04-25 2006-10-17 Cisco Technology, Inc. Apparatus and method for scalable and dynamic traffic engineering in a data communication network
US6990073B1 (en) * 2001-03-28 2006-01-24 Lsi Logic Corporation Data packet congestion management technique
US7308198B1 (en) * 2001-05-16 2007-12-11 Tellabs Operations, Inc. Method for allocating protection bandwidth in a telecommunications mesh network
GB0120033D0 (en) * 2001-08-16 2001-10-10 Fujitsu Ltd Cell selection
JP3726741B2 (ja) * 2001-11-16 2005-12-14 日本電気株式会社 パケット転送装置、方法およびプログラム
JP3904435B2 (ja) * 2001-11-28 2007-04-11 株式会社日立製作所 Webサービス向け輻輳制御装置及び方法
US7046634B2 (en) 2002-04-15 2006-05-16 Tropic Networks Inc. Method and apparatus for selecting maximally disjoint shortest paths in a network
US20040032832A1 (en) 2002-07-30 2004-02-19 Snehal Desai System and method for determining the shortest path between a pair of nodes in an equal cost network
US8560223B2 (en) * 2002-08-29 2013-10-15 Mapquest, Inc. Automated route determination
JP2004129054A (ja) * 2002-10-04 2004-04-22 Ntt Docomo Inc 経路制御装置及び経路制御情報生成方法
US7224668B1 (en) * 2002-11-27 2007-05-29 Cisco Technology, Inc. Control plane security and traffic flow management
US20040105388A1 (en) * 2002-12-02 2004-06-03 David Wilkins Router node with control fabric and resource isolation therein
US7346706B2 (en) * 2003-05-02 2008-03-18 Alcatel Equivalent multiple path traffic distribution in communications networks
US7606161B2 (en) * 2003-06-27 2009-10-20 Broadcom Corporation Distributing information across equal-cost paths in a network
JP2005086460A (ja) * 2003-09-09 2005-03-31 Nec Corp 経路設計装置及びその方法並びにプログラム
GB2421158B (en) 2003-10-03 2007-07-11 Avici Systems Inc Rapid alternate paths for network destinations
US7609705B2 (en) * 2004-05-20 2009-10-27 Hewlett-Packard Development Company, L.P. Determination of a plurality of paths before selection of one path of the plurality of paths for transmission of one or more packets
US7382734B2 (en) * 2004-05-20 2008-06-03 Hewlett-Packard Development Company, L.P. Directing a path verification request along a specific path to a mesh network switch to test operability of the specific path
US9306831B2 (en) * 2005-02-14 2016-04-05 Cisco Technology, Inc. Technique for efficient load balancing of TE-LSPs
US7889681B2 (en) * 2005-03-03 2011-02-15 Cisco Technology, Inc. Methods and devices for improving the multiple spanning tree protocol
US7529199B1 (en) * 2005-05-31 2009-05-05 Cisco Technology, Inc. System and method for resolving conflicts in proxy routing information associated with multicast distribution trees
US20070008949A1 (en) * 2005-07-07 2007-01-11 Nokia Corporation Method for automatic route aggregation in a communication system
US8027345B2 (en) * 2005-07-27 2011-09-27 Sharp Laboratories Of America, Inc. Method for automatically providing quality of service
JP4687332B2 (ja) * 2005-08-25 2011-05-25 日本電気株式会社 光アクセスネットワークのセンタ側装置および光アクセスネットワークのデータ信号送出方法
WO2007038856A1 (en) * 2005-10-05 2007-04-12 Nortel Networks Limited Provider link state bridging
US20070147255A1 (en) 2005-12-23 2007-06-28 Ozgur Oyman Routing in wireless mesh networks
GB0621508D0 (en) 2006-10-30 2006-12-06 Cotares Ltd Method of and apparatus for generating routes
US8094555B2 (en) * 2006-11-27 2012-01-10 Cisco Technology, Inc. Dynamic weighted-fair load-balancing
CN101785257B (zh) * 2007-03-01 2014-07-23 极进网络有限公司 用于交换机和路由器的软件控制平面
JP4918900B2 (ja) * 2007-09-13 2012-04-18 日本電気株式会社 無線マルチホップネットワーク、ノード、マルチキャスト経路制御方法及びプログラム
US8953486B2 (en) * 2007-11-09 2015-02-10 Cisco Technology, Inc. Global auto-configuration of network devices connected to multipoint virtual connections
US7911944B2 (en) 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US9444720B2 (en) * 2009-05-05 2016-09-13 Ciena Corporation Method and apparatus for multicast implementation in a routed ethernet mesh network
US8553562B2 (en) 2010-09-08 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for multi-protocol label switching (MPLS) with link utilization as feedback into the tie-breaking mechanism

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926860A2 (en) 1997-12-24 1999-06-30 Northern Telecom Limited Traffic route finder in communications network
CN1805409A (zh) 2005-01-11 2006-07-19 阿尔卡特公司 在基于策略的路由网中识别预先计算的路径的系统和方法

Also Published As

Publication number Publication date Type
US7911944B2 (en) 2011-03-22 grant
US20110128857A1 (en) 2011-06-02 application
JP5362743B2 (ja) 2013-12-11 grant
JP5676710B2 (ja) 2015-02-25 grant
EP2232792A1 (en) 2010-09-29 application
EP2232792A4 (en) 2012-04-18 application
KR20100112144A (ko) 2010-10-18 application
CN101965715A (zh) 2011-02-02 application
JP2011508555A (ja) 2011-03-10 application
EP2582103A3 (en) 2013-07-31 application
US8699329B2 (en) 2014-04-15 grant
CA2742887A1 (en) 2010-03-25 application
US20090168768A1 (en) 2009-07-02 application
US20140140347A1 (en) 2014-05-22 application
EP2582103A2 (en) 2013-04-17 application
CN103973566A (zh) 2014-08-06 application
JP2014017842A (ja) 2014-01-30 application
WO2010032081A1 (en) 2010-03-25 application

Similar Documents

Publication Publication Date Title
US6804199B1 (en) Communications network system and method for routing based on disjoint pairs of paths
US7123620B1 (en) Apparatus and method for scalable and dynamic traffic engineering in a data communication network
Chen et al. An efficient multipath forwarding method
US6882627B2 (en) Methods and apparatus for selecting multiple paths taking into account shared risk
US20090161584A1 (en) Method for a root path calculation in a shortest path bridge
US7099286B1 (en) Method and system for finding shared risk diverse paths
US7903554B1 (en) Leaking component link traffic engineering information
US20070038767A1 (en) Method and apparatus for constructing a backup route in a data communications network
US20050243711A1 (en) Method and apparatus for pre-provisioning networks to support fast restoration with minimum overbuild
US7535828B2 (en) Algorithm for backup PE selection
US20090028149A1 (en) Method of setting multicast transfer route and method of multicast label switching for realizing the same
Orda Routing with end-to-end QoS guarantees in broadband networks
US20100265825A1 (en) Technique for policy conflict resolution using priority with variance
US7334047B1 (en) Method and system for selective link state advertisement blocking over a data network area
US20070165532A1 (en) Techniques for detecting loop-free paths that cross routing information boundaries
US20040004938A1 (en) Routing bandwidth guaranteed paths with local restoration in label switched networks
Francois et al. Disruption free topology reconfiguration in OSPF networks
US6646989B1 (en) Hop-by-hop routing with node-dependent topology information
US20120106560A1 (en) Inter-domain routing in an n-ary-tree and source-routing based communication framework
US20120300668A1 (en) Generating a loop-free routing topology using routing arcs
US20060159082A1 (en) Techniques for reducing adjacencies in a link-state network routing protocol
US20050088965A1 (en) Rapid alternate paths for network destinations
US20060268879A1 (en) Quality of service aware robust link state routing for mesh networks
US8750820B2 (en) Method and apparatus for selecting between multiple equal cost paths
US20070160061A1 (en) Technique for dynamically splitting MPLS TE-LSPs

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model
EXPY Termination of patent right or utility model