CN116057919A - 用于网络子图链路选择的方法 - Google Patents
用于网络子图链路选择的方法 Download PDFInfo
- Publication number
- CN116057919A CN116057919A CN202080102904.9A CN202080102904A CN116057919A CN 116057919 A CN116057919 A CN 116057919A CN 202080102904 A CN202080102904 A CN 202080102904A CN 116057919 A CN116057919 A CN 116057919A
- Authority
- CN
- China
- Prior art keywords
- node
- link
- links
- overhead
- value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 230000008569 process Effects 0.000 description 12
- 238000010276 construction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于选择网络子图的链路的方法和网络设备,其中,所述方法包括:获取网络中的多条链路的链路开销值;获取所述网络中的所述多条链路分别连接的多个节点的节点开销值,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;根据所述链路开销值、所述节点开销值或两者选择加权参数;计算所述多条链路的链路和节点开销值,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;在所述多条链路中选择链路和节点开销值最小的一条链路。
Description
相关申请交叉引用
本申请涉及于2020年7月13日提交的申请号为PCT/US2020/041825、发明名称为“用于网络子图根选择的参数化方法(Parameterized Method for Network SubgraphRoot Selection)”的共同待决国际专利申请,其全部内容通过引用并入本申请中。
技术领域
本发明大体上涉及网络拓扑,更具体地涉及为给定网络拓扑的子图选择链路的方法。
背景技术
分组交换计算机网络包括经由链路互连的多个节点。当用户数据流量从源用户设备(user equipment,UE)到达边缘节点时,这些流量由该节点及其经过的每个后续节点转发给网络中的零个或零个以上直连节点。如果这些流量到达一个或多个后续边缘节点,则这些流量通常会离开网络前往目的地UE。控制数据也可以在网络中的节点之间传输。在“泛洪”过程中,控制数据可以转发给网络中的每个节点。
发明内容
第一方面涉及一种为网络子图选择链路的方法。所述方法包括:获取网络中的多条链路的链路开销值;获取所述网络中的所述多条链路分别连接的多个节点的节点开销值,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;根据所述链路开销值、所述节点开销值或两者选择加权参数;计算所述多条链路的链路和节点开销值,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;在所述多条链路中选择链路和节点开销值最小的一条链路。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述网络中的所述多条链路将属于所述网络子图的一个节点连接到还不属于所述网络子图的一个或多个节点。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述链路开销值和所述节点开销值具有相同的权重。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述链路开销值的权重比所述节点开销值的权重大。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述节点开销值的权重比所述链路开销值的权重大。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,从所述多条链路中选择的候选链路的链路和节点开销值是根据以下等式计算的:
其中,N1C表示所述第一节点开销值,N2C表示所述第二节点开销值,LC表示所述候选链路的链路开销值,k2表示所述加权参数。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述多条链路中的至少一条链路是连接两个以上节点的多点链路。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述方法还包括:根据以下等式计算所述多点链路的链路和节点开销值:
其中,n表示所述多点链路连接到的节点的数量,LC表示所述多点链路的链路开销值,k2表示所述加权参数,NiC表示第i个节点的节点开销值。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述方法还包括:通过将所述加权参数设置为大于1的值来选择所述加权参数。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述方法还包括:通过将所述加权参数设置为0和1之间的值来选择所述加权参数。
第二方面涉及一种用于选择网络子图的链路的网络设备。所述网络设备包括存储设备和耦合到所述存储设备的处理器。所述处理器用于在所述存储设备上执行指令,使得当所述指令被执行时,所述网络设备用于:获取网络中的多条链路的链路开销值;获取所述网络中的所述多条链路分别连接的多个节点的节点开销值,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;根据所述链路开销值、所述节点开销值或两者选择加权参数;计算所述多条链路的链路和节点开销值,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;在所述多条链路中选择链路和节点开销值最小的一条链路。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述网络中的所述多条链路将属于所述网络子图的一个节点连接到还不属于所述网络子图的一个或多个节点。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述链路开销值和所述节点开销值具有相同的权重。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述链路开销值的权重比所述节点开销值的权重大。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数的选择使得所述节点开销值的权重比所述链路开销值的权重大。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,从所述多条链路中选择的候选链路的链路和节点开销值是根据以下等式计算的:
其中,N1C表示所述第一节点开销值,N2C表示所述第二节点开销值,LC表示所述候选链路的链路开销值,k2表示所述加权参数。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述多条链路中的至少一条链路是连接两个以上节点的多点链路。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述多点链路的链路和节点开销值是根据以下等式计算的:
其中,n表示所述多点链路连接到的节点的数量,LC表示所述多点链路的链路开销值,k2表示所述加权参数,NiC表示第i个节点的节点开销值。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数通过将所述加权参数设置为大于1的值来选择。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述加权参数通过将所述加权参数设置为0到1之间的值来选择。
第三方面涉及一种用于链路选择的网络设备。所述网络设备包括:用于获取网络中的多条链路的链路开销值的模块;用于获取所述网络中的多条链路分别连接的多个节点的节点开销值的模块,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;用于根据所述链路开销值、所述节点开销值或两者选择加权参数的模块;用于计算所述多条链路的链路和节点开销值的模块,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;用于在所述多条链路中选择链路和节点开销值最小的一条链路的模块。
本发明公开的技术改进了分布树、泛洪图、网络子图等的自动构建。在一种实现方式中,根据公开技术待构建的网络子图可以通过对链路和/或节点进行优先级排序以进行选择来更好地采用更多连接和更强大的节点,其中,要生长子图的链路具有链路的开销值和连接到该链路的节点的愿望度的最小加权调和平均值,如这些节点的节点开销值除以该链路连接的节点的数量的两倍所示。在另一种实现方式中,本发明公开的技术可以对能力强和/或低开销值的链路进行优先级排序以进行选择。在又一种实现方式中,本发明公开的技术可以根据给定链路的带宽和该链路连接到的一个或多个节点的带宽对链路进行优先级排序。虽然本文中公开的技术对人类来说可能不太现实,但一个或多个网络组件(例如,节点、路由器、控制器等)可以用于执行这些技术,而不必在整个网络/子图/路径上对全局度量执行任何类型的指数或多项式难度计算。
为了清楚起见,任一上述实现方式可以与上述其它任何一种或多种实现方式组合以创建在本发明范围内的新实施例。从结合附图和权利要求书的以下具体实施方式中,将更清楚地理解这些实施例和其它特征。
附图说明
为了更完整地理解本发明,结合附图和具体实施方式,参考以下附图说明,其中,相同的附图标记表示相同的部件。
图1A是本发明一个实施例提供的网络的示意图。
图1B至图1H示出了为图1A中的网络构建的子图的不同阶段。
图2是为图1A中的网络的待构建子图选择根节点的流程图。
图3是根据本发明实施例计算到的节点开销值的图表。
图4是本发明一个实施例提供的选择链路来构建子图的流程图。
图5示出了本发明实施例提供的构建子图的初始阶段;
图6是本发明一个实施例提供的网络设备的示意图。
图7是本发明一个实施例提供的用于实现链路选择和子图构建方法的装置的示意图。
图8是本申请实施例提供的部分网络子图的示意图。
具体实施方式
首先应该理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任意数量的技术来实现,无论这些技术是当前已知还是现有的。本发明绝不限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效部分的完整范围内修改。
在一些情况下,“树”或“分布树”用于传输用户数据和/或控制数据。树是子图,包括到达网络中每个节点的节点间链路的无环子集。这类树/图的典型示例包括桥接网络中的“生成树协议”图和多链路透明互联(Transparent Interconnection of Lots ofLinks,TRILL)规范中的组播数据分发树。除非另有说明,“树”、“分布树”、“子图”和“图”在本文中可以互换。
在其它情况下,图可以用于泛洪控制信息。这种图与无环树的不同之处在于,这种图通常存在一些冗余路径,因此包括循环。例如,该图可以构建为每个节点至少是双重连接,即,每个节点连接到属于泛洪图的至少两条链路。可选地,该图可以构建为每个节点都是三重连接或甚至是三重以上连接。这些丰富连接的图可以通过以下方式构建:首先构建无环树,然后添加选定的链路以实现所需的丰富连接。但是,网络中可能存在一些节点只是单独连接或存在有限连接,对于这些节点,无法实现所需的丰富连接。
路由协议指定路由器相互通信的方式,从而分发使得路由器能够在计算机网络上的任意两个节点之间选择路线的信息。内部网关协议(interior gateway protocol,IGP)是一种用于在网络内的网关(通常是路由器)之间交换路由信息的协议,该网络可以是自治系统(autonomous system,AS)。然后,该路由信息可以用于路由网络层协议,例如互联网协议(Internet Protocol,IP)包。
IGP中存在不同类型的协议,例如链路状态路由协议和距离向量协议。链路状态路由协议由网络中的每个交换节点(即,准备转发包的节点;在互联网中,这些节点称为路由器)执行。链路状态路由的基本概念是,每个节点都以图的形式构建网络连接地图,从而显示哪些节点连接到哪些其它节点。接着,每个节点独立计算从自己到网络中每个可能目的地的最佳(例如开销值最小)逻辑路径或最佳下一跳接口。然后,包括最佳路径的每个集合形成每个节点的路由表。链路状态路由协议的示例包括开放最短路径优先(Open ShortestPath First,OSPF)路由协议和中间系统到中间系统(Intermediate System toIntermediate System,IS-IS)。OSPF是互联网工程任务组(Internet Engineering TaskForce,IETF)指定的标准路由协议。
OSPF使用链路状态公告(Link State Advertisement,LSA)在路由器之间交换路由信息。IS-IS是国际标准化组织(International Standards Organization,ISO)标准化的路由协议。IS-IS使用链路状态协议数据单元(Link State Protocol Data Unit,LSP)在路由器之间交换路由信息。对于OSPF或IS-IS等链路状态路由协议,控制数据通常由在许多和/或所有链路上发送这些数据的每个节点泛洪,其中,接收到的控制数据的复本(duplicate)被丢弃。这种泛洪控制数据的方法在一些情况下可能导致浪费。在丰富连接的网络中,例如,节点通常会接收链路状态更新的许多(甚至可能是100个或以上)副本(copy)。因此,可以使用减少控制信息冗余传输的泛洪图(flooding graph)。
分布树、泛洪图等的构建或导出可以使用多种方式实现,例如通过以下步骤:(a)选择树/图开始生长的根节点(该根节点可以指定为层0);(b)选择并添加该根节点到直连节点的链路(这些链路和直连节点可以指定为层1);(c)如果存在剩余节点还不属于树/图,则选择层1节点到还不属于树的节点的还不属于树的链路(这些添加的链路和节点可以指定为层2);(d)在每个后续步骤中,如果存在剩余节点不属于树,则选择通过上一步骤添加的层中的节点到还不属于树的节点的还不属于树的链路(这些添加的链路和节点可以指定为下一个高层,例如,层3、层4等)。对于一些类型的子图,例如链路状态泛洪子图,可能会存在其它链路添加到子图的一个或多个其它阶段。另一种示例性构建方法是,首先选择一条链路,有效地使该第一条链路连接的一组节点成为树“根”,然后像上面的步骤(c)和步骤(d)中那样继续进行。但是,在选择根节点或初始链路之后,树或子图可以使用其它方式构建。例如,可以添加远程节点到根节点或初始链路的链路,而不是添加根节点或初始链路向外的链路。可选地,这些技术可以组合,或者树可以使用其它方式通过初始根节点或初始链路构建。
树可以在一对节点之间具有多条并行的物理链路。当检测到这种情况时,(1)除一条链路外,所有链路都可能被禁止通信;(2)多条链路可以看作单条链路,其中,流量在这些链路之间分流;或(3)组合(1)和(2),例如,在启用的链路之间分流流量的同时,禁用一些并行的物理链路。在任何情况下,所有这些选项都可以看作节点之间存在单条逻辑链路。
链路具有与之相关联的“开销值(cost)”,而且优化通过网络的数据所用的路径通常认为是将与数据经过的链路相关联的开销值之和降至最低。最常见的是,链路的“开销值”基于该链路的速度的倒数。例如,开销值可以设置为20,000,000,000,000(20万亿)除以比特每秒(bits per second,bps)的链路速度。又如,开销值可以基于可靠性、货币开销值(monetary cost)、时延、安全性,或者这些因素或其它因素的任意组合。传统上,链路的开销值表示为正整数。开销值通常是对称的,这表示对于连接节点N1和N2的链路,N1到N2的开销值与N2到N1的开销值相同。但是,可以存在不对称的开销值,即,N1到N2的开销值与N2到N1的开销值不同。
可以为不同的流量定义不同的链路开销值。例如,实时游戏流量等流量可能对时延非常敏感,而批量文件传输可能对带宽或货币开销值更敏感。因此,可以为这些不同的流量构建不同的子图。单播路由应用的目标是将数据经过的路径(链路序列)的开销值降至最低。
在给定的树中,每个节点都应对树的拓扑有相同的理解,以便在一条链路上接收流量时,每个节点可以知道要在哪些其它链路上发送数据。构建网络的子图可以使用分布式或集中式的方式完成。例如,分布式子图构建包括每个节点具有足够的信息来计算自己如何适合子图。相反,集中式子图构建包括一个或多个集中式控制器处理信息以构建子图,然后将该信息发送给网络中的所有节点。
图1A是包括多个节点n1、n2……n30的网络100的示意图,这些节点经由多条链路互连。在一些实施例中,链路可以具有不同的带宽。在图1A中,例如,链路包括小带宽链路102和大带宽链路104,大带宽链路104由粗实线表示。尽管本示例中示出了4条大带宽链路104(即,n1-n2、n1-n3、n1-n4和n4-n6),但在其它示例中,网络100可以包括更多或更少的大带宽链路。
网络100中的每个节点n1、n2……n30都应对网络的拓扑有相同的理解,以便在一条链路上接收流量时,每个节点可以知道要在哪些其它链路上发送数据。为此,可以构建网络100的子图。构建子图可以使用分布式或集中式的方式进行。例如,分布式子图构建包括为每个节点n1、n2……n30配置足够的信息来计算自己如何适合子图。相反,集中式子图构建包括一个或多个集中式控制器处理构建后的子图的信息,然后将该信息发送给网络100中的所有节点n1、n2……n30。
无论选择何种方式,为网络100构建子图可以开始于选择子图开始构建的根节点(例如,n1、n2……n30)。根据其它方法的一种常见选择方法包括手动配置要选择为根节点的节点的优先级。可选地,根节点可以根据序列号、接口地址(例如,每个节点端口的媒体接入控制(medium access control,MAC)或互联网协议(Internet Protocol,IP)地址)、节点的“顺序”或“度”(即,该节点通过链路直连到的其它节点的数量)等标识符自动选择。
例如,端口MAC地址最小的节点或顺序最高的节点可以自动选择为根节点,其中,节点的“顺序”是连接到该节点的链路的数量。在一些情况下,当手动选择或自动选择初始根节点或链路产生得分或开销值相同的多个候选时(例如,如果两个或两个以上节点可能具有相同的优先级或顺序),可以实现平局决胜过程(tiebreaking procedure)。在这些情况下,平局决胜过程可以基于与节点相关联的任意唯一编号(例如,内置设备序列号、其中一个节点端口的最小或最大地址,等等)。
使用根据其它方法的示例,假设编号最大的节点自动选择为用于构建网络100的子图的根节点。进一步做以下假设:在每个后续阶段,从编号最大的层N节点开始到编号最小的层N节点检查层N中的边缘节点;对于检查的每个节点,如果存在直连链路的每个节点还不属于子图,则向该节点添加链路,以便构建树的层N+1;下一个编号最大的层重复同样的过程,直到所有节点n1、n2……n30都属于子图。结合图1B至图1H进一步描述根据上述示例构建子图的过程。
如图1B所示,由于n30是网络100中编号最大的节点,因此该过程开始于自动选择节点n30为根节点。选择根节点n30完成了构建子图的阶段0。请注意,根节点在下面的第一阶段中连接到的每个节点可以称为“层1节点”。类似地,层1节点在第二阶段中连接到的每个节点可以称为“层2节点”,层2节点在第三阶段中连接到的每个节点可以称为“层3节点”,以此类推。
构建子图的第一阶段包括将根节点n30连接到网络100中还不属于子图的一个或多个其它节点。在本示例中,根节点n30存在两条可用连接。因此,根节点n30可以通过添加n30到n25的一条链路和n30到n2的另一条链路连接到2个层1节点(添加的链路通过图1C中的高亮线示出)。添加这两条链路完成了第一阶段。
第二阶段包括将层1节点n25和n2连接到一个或多个层2节点。如图1D所示,这一阶段开始于添加n25到层2节点n1的链路,然后添加n2的任何链路,这是因为n25的编号是比n2的大。由于n25不存在其它可用连接链路,因此第二阶段结束于添加n2到层2节点n10、n11、n12和n3的4条链路,如图1E所示。请注意,尽管n2到n1的链路可用,但不添加该条链路,这是因为n1已经经由n25的链路连接。此外,添加n2到n1的链路会产生环路(即,在n30、n25、n1和n2之间),这会对网络100内的数据传输产生不利影响(例如,当发送广播流量或组播数据时)。
第三阶段包括添加层2节点(即n1、n10、n11、n12和n3)到还不属于子图的一个或多个节点的链路。请注意,层2节点n10和n11不存在其它可用链路。虽然存在将n12连接到n3的一条链路,但该条链路不会添加到子图中,这是因为n3已经连接到n2。因此,第三阶段可以忽略层2节点n10、n11和n12,并且继续添加n1和n3的链路,从n3开始,因为n3是编号大的节点。如图1F所示,第三阶段在添加n3到层3节点n13、n9、n8、n7、n6和n4的6条链路,然后添加n1到层3节点n24和n5的2条链路之后完成。
第四阶段从编号最大的层3节点n24开始,该节点与n5存在一条可用连接。但是不添加n24到n5的链路,这是因为n5已经连接到n1。编号第二大的层3节点是n13,但由于类似的原因,不添加n13到n9的链路。编号第三大的层3节点是n9,该节点存在8条可用连接。因此,第四阶段开始于添加n9到层4节点n14、n26、n27、n28、n29、n15和n16的7条链路,但不添加n9到n8的第八链路,这是因为n8已经连接到n3。下一个编号最大的层3节点是n8,但不添加n8到n16的链路,这是因为n16已经连接到n9。下一个编号最大的层3节点是n7,该节点存在两条可用连接。这里,添加n7到层4节点n17的链路,但不添加到n16的链路。接着,添加n6到层4节点n18和n20的2条链路,但不添加到n17的链路。如图1G所示,第四阶段在添加n5到层4节点n23和n21的2条链路之后完成。
第五阶段开始于添加n23到层5节点n22的链路,结束于添加n20到层5节点n19的链路,从而完成子图。如图1H所示,构建后的子图表示一个完整的无环树,跨越网络100中的所有节点n1、n2……n30。尽管最终结果取决于网络100的特征,但可以看到,根据其它方法(例如,使用编号最大的节点作为根节点)构建子图可能不太理想。
例如,图1H所示的子图不使用网络100中的任何大带宽链路104(即,n2-n1、n1-n3、n1-n4或n4-n6)。另外,网络100的右上方区域和网络100的左下方区域之间的所有流量必须经过根节点n30和网络100最左上角的多条小带宽链路102。此外,一些边缘节点之间的路径可以包括多达9跳(例如,边缘节点n22和n14之间的路径)。
在上面的示例中,构建树/图的过程包括:选择根节点,然后经由一条或多条链路将根节点连接到网络中的其它节点。在一种方法中,该过程可以基于要连接的节点的序列号或唯一标识符。另一种方法可以是选择还未连接到正在构建的子图的节点到根节点的具有最小开销值路径的链路,其中,该链路连接到已经属于子图的另一个节点。但是,这种方法没有考虑链路末端的不同节点的能力。
不同的应用可能需要不同类型的链路和/或节点。例如,存在许多源和目的地的大带宽用户流量需要包括大带宽链路的子图,从而需要连接到这些链路的节点。启发式地,具有大带宽链路的节点相比于具有小带宽链路的节点,能力强,时延低。因此,具有大带宽链路的节点往往包括更强大的硬件(例如,以处理短的包间到达时间),并且可能更高效地在端口之间转发流量。另一方面,小带宽控制流量(例如,链路状态信息)的泛洪图需要具有许多链路的节点,以便更快地将控制信息传播到许多其它节点。因此,包括连接更好、能力更强节点的子图可能取决于低开销值链路和连接到每个节点的链路的数量。
本文中公开了一种改进方法,即通过对链路和/或节点进行优先级排序以进行选择,自动构建分布树、泛洪图、子图等。在一个实施例中,该方法通过计算一组候选链路中的每条链路的“链路开销值”,对能力强的链路和/或低开销值链路进行优先级排序。在另一个实施例中,该方法也通过使用“节点开销值”,从而将链路的一个或多个末端的一个或多个节点的能力与“链路开销值”组合起来,对能力强的链路和能力强的节点进行优先级排序。例如,这种方法可以采用“链路和节点开销值”计算,使用基于链路的开销值和该链路连接到的节点的开销值的加权调和平均值除以链路连接到的节点的数量的两倍的参数化加权。在又一个实施例中,该方法通过计算“链路和节点带宽”来选择链路,“链路和节点带宽”是链路的带宽和连接到该链路的节点的带宽的组合。本文中公开的方法可以在不计算整个网络/子图上的全局度量的情况下实现,计算该全局度量可能需要网络中的节点数量或链路总数或典型路径长度的指数或多项式计算。此外,本文公开的方法适用于路由应用、链路状态泛洪图、组播/广播分布树以及相关标准。这些特征和其它特征如下详述。
图2示出了选择根节点以构建改进的子图的方法200,其中,使用更好连接和更强大的节点作为网络(例如图1A中的网络100)中的根节点。方法200中的操作可以按所示顺序执行,也可以按不同的顺序执行。此外,方法200中的两个或两个以上操作可以同时执行,而不是按顺序执行。在一些实现方式中,方法200可以使用分布式树计算来实现,其中,每个节点(例如,n1、n2……n30)选择相同的根节点并计算网络的相同子图。在其它实现方式中,方法200可以通过一个或多个集中式控制器(例如,软件定义网络(software-definednetworking,SDN)控制器)来实现,所述集中式控制器用于选择根节点、计算子图并将所有相关网络信息提供给网络中的每个节点。
在步骤202中,方法200获取连接到网络中节点的所有链路的开销值,其中,可以假设每个节点具有连接到网络中其它节点的一条或多条链路。以图1A中的网络100为例,特定节点对应的每条链路的开销值C可以表示为C1、C2……Cm,其中,m是连接到该节点的链路的数量。因此,在图1A中,连接到节点n7的链路的开销值可以表示为C1、C2、Cm,其中,Cm指的是C7,因为节点n7连接到三条链路。在一些实施例中,链路开销值可以基于带宽,其中,特定的小带宽或大带宽链路的开销值C可以设置为一个值除以链路速度,例如,C=2*1013/bps。在其它实现方式中,链路开销值可以基于一个或多个因素,例如带宽、可靠性、时延/延迟、每比特货币开销值或其某种组合。
在步骤204中,方法200选择要在步骤206中使用的加权参数k。关于选择加权参数k的其它详细内容如下结合表1论述。在步骤206中,方法200计算网络中的每个节点n1、n2……n30的“节点开销值”。在一个实施例中,节点开销值可以设置为用连接到特定节点(例如,n1、n2……n30)的链路的数量除连接到该节点的链路的开销值的第k次幂的调和平均值而得到的商。例如,节点开销值可以通过以下公式在数学上导出:
上面的公式可以使用下面的任一个公式改写,但每个公式在其它方面与上面的公式相同。因此,除非另有说明,否则这三个公式统称为等式1。
请注意,等式1假设链路开销值C大于0。如果在使用的链路开销值的类型允许0值或负值,则可以添加常量以确保正开销值。以使用非负整数开销值为例,假设链路开销值等于0,在这种情况下,链路开销值可以在根据等式1计算节点开销值之前加1。
在步骤208中,方法200根据在步骤206中计算到的节点开销值选择根节点,其中,节点开销值最小的节点被选择为根节点。
下面的表1包括k的值和选择k的不同值时的效果之间的映射。
表1
从表1中可以看出,将k设置为0的效果是,将特定节点的节点开销值设置为连接到该节点的链路的数量的倒数,而将k等于1的效果是,连接到该特定节点的节点的数量与低开销值链路具有相同的权重。一般而言,当对待构建子图的信息知之甚少或根本不知道时,后一种可能是一个合理的选择。在其它情况下,根据预期用途,将k设置为大于或小于1的值可能更合理。
例如,当构建通用组播流量分布树或承载大量单播和组播流量的生成树时,往返树的各个分支末端的流量往往集中在树的中间。因此,k可以设置为大于1的值。在这种情况下,由于树中的中心链路的开销值会影响大多数用户流量,因此低开销值链路应该具有更大权重。另一方面,在泛洪到节点的控制流量有限的应用中,具有丰富连接可能具有较高的优先级(例如,以使控制信息更快地到达更多节点)。因此,k可以设置为小于1的值,使得选择具有更多连接到根节点的链路的根节点具有更大权重。
图3是为图1A的网络100中的节点n1、n2……n30计算到的节点开销值的图表300。节点开销值是在以下示例中计算到的:大带宽链路(即,n2-n1、n1-n3、n1-n4和n4-n6)支持高达100兆比特每秒(megabits per second,mbps)的速度,而其它小带宽链路支持高达40mbps的速度。如图表300所示,大带宽链路(LinkHBW)的链路开销值设置为200,000,而小带宽链路(LinkLBW)的链路开销值设置为500,000。应当理解,大带宽链路和/或小带宽链路在其它实现方式中具有其它开销值。为了证明在方法200的步骤204中选择加权参数k的效果,使用k的不同值作为上文公开的公式的输入来计算节点开销值。应当理解,在其它实现方式中,k的其它值可以用作输入。
图表300的第一列表示对应于节点n1、n2……n30的节点编号,其中,节点编号1对应于n1,节点编号2对应于n2,依此类推。第二列和第三列表示连接到每个节点的大带宽链路和小带宽链路的数量。例如,图表300指定节点n1连接到三条大带宽链路(n1-n2、n1-n3和n1-n4)和三条小带宽链路(n1-n25、n1-n24和n1-n5),如图1A所示。第四列、第五列、第六列和第七列表示使用k的不同值作为等式1的输入而计算到的节点开销值。
如上所述,方法200可以选择节点开销值最小的节点作为根节点。因此,当k设置为0.0时,节点n9可以选择为根节点,这是因为对应的节点开销值是0.10,这是根据等式1计算到的最小节点开销值。请注意,连接到节点n9的链路(10条)比连接到任何其它节点的链路都多。因此,节点n9的节点开销值与表1中k=0的情况一致,这表明节点开销值设置为连接到该节点的链路的数量的倒数。链路数第二多的节点是节点n3,总共有9条链路连接到该节点。因此,当k设置为0.0作为针对节点n3的等式1的输入时,节点n3具有第二小的节点开销值(0.11)。相比之下,只有1条连接链路的节点(例如,n10和n14)的节点开销值等于1.0,比节点n9的最小节点开销值高出10倍。
当k设置为1.0作为等式1的输入时,有两个节点(n1和n3)可以选择为根节点,这是因为这些节点都具有最小的节点开销值(47,619.05)。在这种情况下,可以实现平局决胜过程,以在节点n1与n3之间选择根节点。例如,由于n1的编号比n3的小,因此节点n1可以选择为根节点。可选地,由于n3的编号比n1的大,因此节点n3可以选择为根节点。又如,由于n3比n1连接到更多链路,因此节点n3可以选择为根节点。又如,如果大带宽链路的数量是重要的标准,则节点n1可以选择为根节点。
图4示出了在构建网络(例如图1A中的网络100)的子图时选择待添加链路的方法400。当子图要通过如上所述添加链路到初始链路来生长时,该方法也可以用于选择初始链路。方法400中的操作可以按所示顺序执行,也可以按不同的顺序执行。此外,方法400中的两个或两个以上操作可以同时执行,而不是按顺序执行。在一些实现方式中,方法400可以使用分布式树计算来实现,其中,每个节点(例如,n1、n2……n30)选择相同的链路并计算网络的相同子图。在其它实现方式中,方法400可以通过一个或多个集中式控制器(例如,SDN控制器)来实现,所述集中式控制器用于选择链路、计算子图并将所有相关网络信息提供给网络中的每个节点。
方法400可以在选择根节点之后或在选择初始链路时开始。根节点可以根据本文中提到的任一技术或根据其它合适的技术来选择。出于论述目的,假设图2中的方法200以k设置为0.8作为等式1的输入为例选择根节点。如图表300所示,当使用k=0.8作为等式1的输入时,节点n3具有最小节点开销值(3,594.64)。因此,在这种情况下,方法400可以继续使用节点n3作为根节点,如图5所示。如果这种树构建基于初始根节点选择,这就完成了构建网络100的子图的初始阶段。
在方法400开始于子图基于在一组候选链路中选择的初始链路的实现方式中,这组候选链路可以是网络100中的所有链路。例如,可以通过识别具有最小“链路和节点开销值”的链路来选择初始链路,可以为所有链路计算链路和节点开销值,如下所述。在选择了初始链路之后,该链路及其连接的节点属于子图,这时,这组候选链路可以是将已经属于子图的节点与还不属于子图的节点连接的所有链路。出于论述目的,假设方法400在选择节点n3作为根节点之后开始。
在步骤402中,方法400获取所有候选链路的开销值。从根节点开始生长树的候选链路可以是根节点可以连接到的链路。例如,在图5中,存在9条候选链路,可以从中选择一条链路将根节点n3连接到可用节点(例如,节点n1、n2、n12、n13、n9、n8、n7、n6或n4)。这些链路的开销值可以表示为LC1、LC2……LC9,其中,LC1表示节点n3和n1之间的链路开销值;LC2表示节点n3和n2之间的链路开销值;LC3表示节点n3和n12之间的链路开销值;LC4表示节点n3和n13之间的链路开销值;LC5表示节点n3和n9之间的链路开销值;LC6表示节点n3和n8之间的链路开销值;LC7表示节点n3和n7之间的链路开销值;LC8表示节点n3和n6之间的链路开销值;LC9表示节点n3和n4之间的链路开销值。
在步骤404中,方法400获取连接到候选链路(即链路n3-n1、n3-n2、n3-n12、n3-n13、n3-n9、n3-n8、n3-n7、n3-n6和n3-n4)中每条链路的节点的“节点开销值”。对于两个节点之间的点对点连接,计算根节点n3的第一节点开销值N1C,计算n3连接到的另一个节点(例如,节点n1、n2、n12、n13、n9、n8、n7、n6、或n4)的第二节点开销值N2C。在本示例中,方法400使用k=0.8作为等式1的输入来计算节点开销值N1C和N2C。因此,对于节点n3和n1之间的链路,例如,N1C等于3,594.64,N2C等于3,920.21。方法400重复步骤404,直到获取每条候选链路的一对节点开销值N1C和N2C。
在步骤406中,方法400选择加权参数k2以对链路开销值和/或节点开销值进行优先级排序。关于选择加权参数k2的其它详细内容如下结合表2论述。在步骤408中,方法400计算每条候选链路的“链路和节点开销值”。在一个实施例中,链路和节点开销值可以根据以下公式导出:
假设k2等于0.5,k等于0.8,则可以使用图表300中的值计算每条候选链路的链路和节点开销值。例如,节点n3和n1之间的链路开销值等于LC=200,000,这是因为连接这些节点的链路是大带宽链路,而根节点n3的节点开销值等于NC1=3,594.64,节点n1的节点开销值等于NC2=3,920.21。使用这些值作为等式2的输入,节点n3和n1之间的链路具有以下输出:链路和节点开销值=1,857.77。
根节点n3和所有其它可用节点(n2、n12、n13、n9、n8、n7、n6和n4)之间的链路开销值等于LC=500,000,这是因为这些链路是小带宽链路。对于节点n3和n2之间的链路,根节点n3的节点开销值等于NC1=3,594.64,节点n2的节点开销值等于NC2=5,117.50;对于节点n3和n12之间的链路,根节点n3的节点开销值等于NC1=3,594.64,节点n12的节点开销值等于NC2=18,119.49;对于节点n3和n13之间的链路,根节点n3的节点开销值等于NC1=3,3594.64,节点n13的节点开销值等于NC2=18,119.49;对于节点n3和n9之间的链路,根节点n3的节点开销值等于NC1=3,3594.64,节点n9的节点开销值等于NC2=3,623.90;对于节点n3和n8之间的链路,根节点n3的节点开销值等于NC1=3,3594.64,节点n8的节点开销值等于NC2=12,079.66;对于节点n3和n7之间的链路,根节点n3的节点开销值等于NC1=3,3594.64,节点n7的节点开销值等于NC2=12,079.66;对于节点n3和n6之间的链路,根节点n3的节点开销值等于NC1=3,594.64,节点n6的节点开销值为NC2=5,959.0;对于节点n3和n4之间的链路,根节点n3的节点开销值等于NC1=3,3594.64,节点n4的节点开销值等于NC2=4,439.55。
使用上述值作为等式2的输入产生以下输出:节点n3和n2之间链路的链路和节点开销值=2,102.61;节点n3和n12之间链路的链路和节点开销值=2,981.68;节点n3和n13之间链路和节点开销值=2,981.68;节点n3和n9之间链路的链路和节点开销值=1,798.12;节点n3和n8之间链路的链路和节点开销值=2,755.0;节点n3和n7之间链路的链路和节点开销值=2,755.0;节点n3和n6之间链路的链路和节点开销值=2,232.12;节点n3和n4之间链路的链路和节点开销值=1,978.47。
在一些实现方式中,网络100中的特定链路可以是连接n个节点的多点链路(也称为广播链路或局域网(local area network,LAN)链路),在这种情况下,节点开销值可以表示为N1C、N2C、N3C……NnC。在这些实现方式中,方法400可以组合所有节点开销值,并且按因子n加权该特定链路的链路开销值LC,使得链路开销值和节点开销值具有相同的权重。例如,为了计算与连接两个以上节点的多点链路相关联的链路和节点开销值,等式2可以推广如下:
在等式3中,n表示多点链路连接到的链路的数量,k2表示表2中描述的加权参数,LC表示多点链路的链路开销值,NiC表示多点链路连接到的第i个节点的节点开销值。
请注意,上面的等式假设链路开销值(link cost,LC)和节点开销值(N1C、N2C……NnC)大于0。如果在使用的开销值的类型允许0值或负开销值,则可以添加常量以确保正开销值。例如,如果存在非负整数开销值,例如0,则在根据等式2来计算链路和节点开销值之前,该开销值可以加1。
在一些实现方式中,当考虑在一组候选链路中选择哪条链路时,已经属于子图的节点可以看作是固定节点。也就是说,例如当第一次添加链路到根节点时,可能只有一个节点能够链接到还不属于子图的新节点。如果是,则方法400可以只计算要添加的节点(或多点链路下的节点)的节点开销值。因此,方法400可以根据以下公式计算点对点链路的链路和节点开销值:
一般而言,如果有j个固定节点由进行选择的所有候选链路连接,则对应于等式3的广义公式可以通过以下方式修改:(1)仅对连接到每条候选链路的n–j(即n减j)个其它节点进行求和;(2)将链路开销值LC的倒数的权重从n改为n–j。
下面的表2包括k2的值和选择k2的不同值作为等式2和等式3的输入时的效果之间的映射关系。
表2
从表2中可以看出,当k2的值接近0时,将k2设置为0到1之间的值使得节点开销值的优先级高于链路开销值的优先级。如果在节点上进行一些处理,并且数据量有限(例如,转发IS-IS或OSPF应用的链路状态信息),这可能是合适的。另一方面,将k2设置为大于1的值使得链路开销值的优先级高于节点开销值的优先级。因此,这些值可能适用于节点简单转发广播或多播用户流量(例如,当链路能力具有更高优先级时)的应用。然而,需要说明的是,将k2设置为相对大于1的值的效果类似于在候选链路中选择开销值最小的一条链路的效果。
在步骤410中,方法400从候选链路中选择链路和节点开销值最小的链路。以上面的k设置为0.8且k2设置为0.5作为等式2的输入为例,链路和节点开销值最小的链路对应于根节点n3和节点n9之间的链路(即链路和节点开销值=1,798.12)。因此,方法400添加该链路将根节点连接到节点n9,节点n9是在子图构建过程中添加到子图中的第一个节点。请注意,当根据等式3而不是等式2使用链路和节点开销值时,方法400选择相同的链路。例如,使用k2=0.5、LC=500,000和N2C=3,623.9(节点n9)作为等式3的输入,链路和节点开销值的输出等于3,610.8,这是最小的开销值。下一个最小的开销值对应于节点n3和n1之间的链路。例如,使用k2=0.5、LC=200,000和N2C=3,920.21(节点n1)作为等式3的输入,链路和节点开销值的输出等于3,882.16。
在添加将根节点n3连接到节点9的链路之后,方法400可以添加将根节点n3连接到其它节点(例如,n1、n2、n12、n13、n8、n7、n6和/或n4)或将节点n9连接到其它节点(例如,n13、n14、n26、n27、n28、n29、n15、n16和/或n8)的其它链路。例如,方法400可以添加将根节点n3连接到节点n1的链路,这是因为该链路在源自n3的剩余链路中具有第二最小的链路和节点开销值。可选地,方法400可以用于计算节点n3的剩余链路和节点n9的其它链路的链路和节点开销值,而不是已经属于构建中子图的连接到节点n3的链路。
换句话说,方法400可以计算节点n3和节点n1、n2、n12、n13、n8、n7、n6和n4之间的所有链路的链路和节点开销值,以及节点n9和节点n13、n14、n26、n27、n28、n29、n15、n16和n8之间的所有链路的链路和节点开销值。然后,方法400可以从这个较大的集合中选择链路和节点开销值最小的链路,以将节点n3或节点n9连接到另一个节点。方法400可以继续以类似的方式添加链路,以将已经属于网络100的节点连接到还不属于网络100的节点,直到添加完连接网络100中的所有节点n1至n30的链路。
请注意,一些链路具有相同的链路和节点开销值,例如节点n3和n12之间的链路以及节点n3和n13之间的链路。在这种情况下,方法400可以实现平局决胜过程以确定要选择哪条链路。例如,方法400可以选择节点n3和n13之间的链路,这是因为节点n13的编号比节点n12的大。可选地,方法400可以选择节点n3和n12之间的链路,这是因为n12的编号比n13的小。
此外,假设添加了将根节点n3连接到节点n9和n8的链路。在本示例中,方法400可以避免在节点n9和n8之间添加链路,以避免在网络100中形成循环(即,节点n3、n9和n8之间)。
在一些实施例中,方法400可以简单地根据链路开销值在步骤410中选择链路。也就是说,方法400可以选择链路开销值最小的链路,而不是选择链路和节点开销值最小的链路。在这些实施例中,方法400可以添加将根节点n3连接到节点n1的链路作为在步骤410中要添加的第一条链路,因为该链路在候选链路中具有最小的开销值(LC=200,000)。如果两条或两条以上链路具有相同的链路开销值,则方法400可以实现本文中公开的平局决胜过程。
在一些实施例中,方法400可以根据带宽在步骤410中选择链路。例如,网络100中的每条链路可以具有链路带宽,网络100中的每个节点可以具有节点带宽。在这种情况下,网络100中的特定点对点链路的链路和节点带宽可以如下导出:
链路和节点带宽=2*k2*LB+N1B+N2B(等式5)
在等式5中,LB表示两个节点之间的特定链路的链路带宽,N1B和N2B表示这两个节点的带宽,k2表示上表2所述的非负值。在计算每条候选链路的链路和节点带宽之后,方法400根据等式5选择链路和节点带宽最大的链路。
如果网络100包括连接具有节点带宽N1B、N2B……NnB的n个节点的一条或多条多点链路,则网络100中的特定多点链路的链路和节点带宽可以如下导出:
在等式6中,LB表示特定多点链路的链路带宽,n表示多点链路连接到的节点的数量,k2表示上表2所述的非负值,NiB表示第i个节点的节点带宽。在计算每条候选链路的链路和节点带宽之后,方法400根据等式6选择链路和节点带宽最大的链路。
在一些情况下,特定节点可以是由多条点对点候选链路共用的固定节点,这样固定节点出现在每条候选链路中。在这些情况下,当根据链路和节点带宽选择链路时,方法400可以只考虑点对点链路之间不同的节点的节点带宽(即,待添加节点的带宽,而不考虑固定节点的带宽)。例如,链路和节点带宽可以如下导出:
链路和节点带宽=k2*LB+N2B (等式7)
在等式7中,LB表示特定链路的链路带宽,N2B表示非固定节点的带宽,k2表示上表2所述的非负值。在计算每条候选链路的链路和节点带宽之后,方法400根据等式7选择链路和节点带宽最大的链路。
当处理多点链路时,方法400可以执行类似的选择。例如,假设由进行选择的候选链路连接的j个节点是相同的,则可以根据链路上其它n–j个节点的LB和节点开销值,将链路的链路和节点带宽计算为(n–j)*k2*LB加上链路上其它节点的带宽。
在带宽可能不直接已知或获取,但链路已知具有开销值C1、C2、C3……的实现方式中,带宽可以根据链路开销值如下估计:节点带宽=1/C1+1/C2+1/C3+……。
在一些实现方式中,链路开销值可以是不对称的,其中,节点1N1到节点2N2的开销值与节点2N2到节点N1的开销值不同。在这些实现方式中,本文中公开的根选择方法中使用的链路开销值可以通过以下方式根据两个不同方向的开销值导出:计算这些开销值的算术、几何或调和平均值,或者以系统方式选择一个开销值,例如选择两个开销值中的最大或最小的一个,或者这些方法的任意组合。
在一些实施例中,本发明公开的技术可以用于为特定网络构建多个分布树和/或泛洪图。也就是说,本发明不限于为单个树/图选择链路,因为网络可以同时包括多个树/图,例如,多个树/图可以在网络中同时使用。因此,本发明公开的技术可以用于构建多个树/图,使得每个树/图都是专用于一些应用(例如,不同类型的流量)。例如,当网络用于大带宽数据传输时,可以选择链路和/或节点来构建具有小开销值链路的树/图。又如,当网络用于发送流量有限的控制数据时,可以选择节点和/或链路来构建具有许多链路(即,不那么强调链路开销值)的另一树/图,以快速分发这些控制数据。
图6是本发明一个实施例提供的网络设备600的示意图。网络设备600适用于实现本文中描述的组件。网络设备600包括用于接收数据的入端口610和接收单元(Rx)620;用于处理所述数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)630;用于发送所述数据的发送单元(Tx)640和出端口650;用于存储所述数据的存储器660。网络设备600还可以包括与入端口610、接收单元620、发送单元640和出端口650耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
在一些实施例中,网络设备600可以连接到一条或条双向链路。另外,接收单元620和发送单元640可以替换为网络设备600每侧的一个或多个收发单元。类似地,入端口610和出端口650可以替换为网络设备600每侧的入端口/出端口的一个或多个组合。因此,收发单元620和640可以用于经由端口610和650通过一条或多条双向链路发送和接收数据。
处理器630可以通过硬件和软件来实现。处理器630可以实现为一个或多个CPU芯片、一个或多个核(例如作为多核处理器)、一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、一个或多个专用集成电路(application specificintegrated circuit,ASIC)和一个或多个数字信号处理器(digital signal processor,DSP)。处理器630可以与入端口610、接收单元620、发送单元640、出端口650和存储器660进行通信。处理器630包括链路选择和子图构建模块670。模块670可以实现以上所公开的实施例。例如,模块670可以实现图2中的方法200、图4中的方法400以及本文中公开的过程。因此,将模块670包含在内为设备600的功能提供了实质性的改进,并且影响了设备600到不同状态的转换。可选地,以存储在存储器660中并由处理器630执行的指令来实现模块670。
存储器660包括一个或多个磁盘、磁带驱动器和固态硬盘,并且可用作溢出数据存储设备,以在选择程序用于执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。存储器660可以是易失性和非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternarycontent-addressable memory,TCAM)和静态随机存取存储器(static random-accessmemory,SRAM)。
图7是本发明各个实施例提供的用于选择网络子图的链路的装置700的示意图。装置700包括:用于获取网络中的多条链路的链路开销值的模块710;用于获取所述网络中的所述多条链路分别连接的多个节点的节点开销值的模块720,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;用于根据所述链路开销值、所述节点开销值或两者选择加权参数的模块730;用于计算所述多条链路的链路和节点开销值的模块740,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;用于在所述多条链路中选择链路和节点开销值最小的一条链路的模块750。
下面参考图8,根据本发明实施例描述扩展部分网络子图800的一个示例。在图8中,假设方法400用于通过以下方式将链路10(L=10)连接到网络子图800:通过上文所述计算链路和节点开销值添加连接到节点1(N=1)的链路(例如,链路12、链路13、链路14或链路15)。下面的表3描述了使用k2的不同值作为等式2的输入为每条候选链路计算到的链路和节点开销值的一个示例。
表3:链路和节点开销值
如表3中的粗体文本所示,当使用k2=0.5时,链路15具有最小的链路和节点开销值,因此,方法400添加链路15以将节点1连接到节点2,节点2在其它节点中具有最小的节点开销值(20,000)。这与表2一致,表明了当k2在0和1之间时,等式2使得节点开销值的优先级高于链路开销值的优先级。另一方面,当使用k2=2.0时,链路12具有最小的链路和节点开销值,因此,方法400通过添加链路12将节点1连接到节点5,链路12在候选链路中具有最小的链路开销值(23,000)。这也与表2一致,因为当k2大于1时,等式2使得链路开销值的优先级高于节点开销值的优先级。此外,当使用k2=1.0时,链路15和链路13连接以获取最小的链路和节点开销值,因此需要一个连接断路器来确定该链路将节点1连接到节点2。
请注意,在上面的示例中,为每条候选链路和每个节点计算到不同的链路和节点开销值。然而,当两条不同链路的链路和节点开销值相同(如链路13和链路15之间的情况,其中,k2=1.0)时,方法400实现平局决胜过程,以根据最小开销值链路、序列号或端口地址等标识符等因素在两条链路之间进行选择。
本发明公开的实施例可以是任何可能的技术细节集成水平的系统、装置、方法和/或计算机程序产品。计算机程序产品可包括具有计算机可读程序指令的计算机可读存储介质,计算机可读程序指令使得处理器执行本发明的各方面。计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。
虽然本发明提供了若干个实施例,但应当理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以通过其它多种具体形式体现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。
另外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或彼此通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式或其它方式间接耦合或通信。变化、替换、变更的其它示例可由本领域技术人员确定,并可以在不脱离本文中公开的精神和范围的情况下举例。
Claims (20)
1.一种为网络子图选择链路的方法,其特征在于,所述方法包括:
获取网络中的多条链路的链路开销值;
获取所述网络中的所述多条链路分别连接的多个节点的节点开销值,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;
根据所述链路开销值、所述节点开销值或两者选择加权参数;
计算所述多条链路的链路和节点开销值,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;
在所述多条链路中选择链路和节点开销值最小的一条链路。
2.根据权利要求1所述的方法,其特征在于,所述网络中的所述多条链路将属于所述网络子图的一个节点连接到还不属于所述网络子图的一个或多个节点。
3.根据权利要求1或2所述的方法,其特征在于,所述加权参数的选择使得所述链路开销值和所述节点开销值具有相同的权重。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述加权参数的选择使得所述链路开销值的权重比所述节点开销值的权重大。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述加权参数的选择使得所述节点开销值的权重比所述链路开销值的权重大。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述多条链路中的至少一条链路是连接两个以上节点的多点链路。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述选择加权参数包括:将所述加权参数设置为大于1的值。
10.根据权利要求1至8中任一项所述的方法,其特征在于,所述选择加权参数包括:将所述加权参数设置为0和1之间的值。
11.一种用于选择网络子图的链路的网络设备,其特征在于,所述网络设备包括:
存储设备;
处理器,耦合到所述存储设备并用于在所述存储设备上执行指令,使得当所述指令被执行时,所述网络设备用于:
获取网络中的多条链路的链路开销值;
获取所述网络中的所述多条链路分别连接的多个节点的节点开销值,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;
根据所述链路开销值、所述节点开销值或两者选择加权参数;
计算所述多条链路的链路和节点开销值,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;
在所述多条链路中选择链路和节点开销值最小的一条链路。
12.根据权利要求11所述的网络设备,其特征在于,所述网络中的所述多条链路将属于所述网络子图的一个节点连接到还不属于所述网络子图的一个或多个节点。
13.根据权利要求11和/或12所述的网络设备,其特征在于,所述加权参数的选择使得所述链路开销值和所述节点开销值具有相同的权重。
14.根据权利要求11至13中任一项所述的网络设备,其特征在于,所述加权参数的选择使得所述链路开销值的权重比所述节点开销值的权重大或者使得所述节点开销值的权重比所述链路开销值的权重大。
16.根据权利要求11至15中任一项所述的网络设备,其特征在于,所述多条链路中的至少一条链路是连接两个以上节点的多点链路。
18.根据权利要求11至17中任一项所述的网络设备,其特征在于,所述网络设备通过将所述加权参数设置为大于1的值来选择所述加权参数。
19.根据权利要求11至17中任一项所述的网络设备,其特征在于,所述网络设备通过将所述加权参数设置为0到1之间的值来选择所述加权参数。
20.一种用于选择网络子图的链路的网络设备,其特征在于,所述网络设备包括:
用于获取网络中的多条链路的链路开销值的模块;
用于获取所述网络中的多条链路分别连接的多个节点的节点开销值的模块,其中,所述节点开销值包括从所述多个节点中选择的第一节点的第一节点开销值和第二节点的第二节点开销值;
用于根据所述链路开销值、所述节点开销值或两者选择加权参数的模块;
用于计算所述多条链路的链路和节点开销值的模块,其中,所述链路和节点开销值根据所述链路开销值、所述节点开销值、所述加权参数或其任意组合来计算;
用于在所述多条链路中选择链路和节点开销值最小的一条链路的模块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/044557 WO2022025926A1 (en) | 2020-07-31 | 2020-07-31 | Method for network subgraph link selection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116057919A true CN116057919A (zh) | 2023-05-02 |
Family
ID=72179196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080102904.9A Pending CN116057919A (zh) | 2020-07-31 | 2020-07-31 | 用于网络子图链路选择的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230269171A1 (zh) |
EP (1) | EP4179717A1 (zh) |
CN (1) | CN116057919A (zh) |
WO (1) | WO2022025926A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205239A1 (en) * | 2003-03-31 | 2004-10-14 | Doshi Bharat T. | Primary/restoration path calculation in mesh networks based on multiple-cost criteria |
WO2004111775A2 (en) * | 2003-06-06 | 2004-12-23 | Matsushita Electric Industrial Co., Ltd. | Static dense multicast path and bandwidth management |
CN101552936A (zh) * | 2009-05-05 | 2009-10-07 | 杭州华三通信技术有限公司 | 光纤最短路由优先协议的路由确定方法和装置 |
CN110224918A (zh) * | 2019-05-17 | 2019-09-10 | 西安交通大学 | 一种跨域sdn虚拟网络映射方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7688739B2 (en) * | 2005-08-02 | 2010-03-30 | Trilliant Networks, Inc. | Method and apparatus for maximizing data transmission capacity of a mesh network |
US8064360B2 (en) * | 2009-01-23 | 2011-11-22 | Empire Technology Development Llc | Wireless home network routing protocol |
-
2020
- 2020-07-31 EP EP20760645.0A patent/EP4179717A1/en active Pending
- 2020-07-31 WO PCT/US2020/044557 patent/WO2022025926A1/en unknown
- 2020-07-31 CN CN202080102904.9A patent/CN116057919A/zh active Pending
-
2023
- 2023-01-31 US US18/162,482 patent/US20230269171A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205239A1 (en) * | 2003-03-31 | 2004-10-14 | Doshi Bharat T. | Primary/restoration path calculation in mesh networks based on multiple-cost criteria |
WO2004111775A2 (en) * | 2003-06-06 | 2004-12-23 | Matsushita Electric Industrial Co., Ltd. | Static dense multicast path and bandwidth management |
CN101552936A (zh) * | 2009-05-05 | 2009-10-07 | 杭州华三通信技术有限公司 | 光纤最短路由优先协议的路由确定方法和装置 |
CN110224918A (zh) * | 2019-05-17 | 2019-09-10 | 西安交通大学 | 一种跨域sdn虚拟网络映射方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230269171A1 (en) | 2023-08-24 |
EP4179717A1 (en) | 2023-05-17 |
WO2022025926A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200389404A1 (en) | Fault tolerant and load balanced routing | |
US8897141B2 (en) | Network system and routing method | |
US7821963B2 (en) | Method for a root path calculation in a shortest path bridge | |
US7911944B2 (en) | Tie-breaking in shortest path determination | |
US9282031B2 (en) | Network system and routing method | |
JP6117911B2 (ja) | 802.1aqのための3段折り返しclosの最適化 | |
CN104335537B (zh) | 用于层2多播多路径传送的系统和方法 | |
US8982733B2 (en) | System and method for managing topology changes in a network environment | |
US20170195218A1 (en) | Routing in a hybrid network | |
JP2015136168A (ja) | ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減 | |
CN111770019A (zh) | 基于Dijkstra算法的Q-learning光片上网络自适应路由规划方法 | |
EP3364611A1 (en) | Software-defined-networking table-entry generation and packet forwarding | |
EP2853068A1 (en) | Tie-breaking in shortest path determination | |
US20230155929A1 (en) | Parameterized Method for Network Subgraph Root Node Selection | |
EP2923463B1 (en) | Establishing neighbor connection | |
CN116057919A (zh) | 用于网络子图链路选择的方法 | |
JP4589978B2 (ja) | 経路設定方法および経路設定装置 | |
CN101702686B (zh) | 实现多下一跳路由的方法、装置及系统 | |
CN100518382C (zh) | 自动交换光网络中多约束条件下最短路径查找方法及装置 | |
WO2005015834A1 (fr) | Formulation nanopharmaceutique et son procede de preparation | |
JP5434511B2 (ja) | ノードおよび経路計算方法 | |
Prihodko et al. | MODRA: Multi-Objective Distributed Routing Algorithm | |
GB2591118A (en) | A controller, computer program and method | |
CN116319531A (zh) | 基于多条最优准则的链路状态路由方法及装置 | |
CN115514640A (zh) | 确定路径的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |