CN116057905A - 网络子图根节点选择的参数化方法 - Google Patents
网络子图根节点选择的参数化方法 Download PDFInfo
- Publication number
- CN116057905A CN116057905A CN202080102930.1A CN202080102930A CN116057905A CN 116057905 A CN116057905 A CN 116057905A CN 202080102930 A CN202080102930 A CN 202080102930A CN 116057905 A CN116057905 A CN 116057905A
- Authority
- CN
- China
- Prior art keywords
- node
- links
- nodes
- value
- 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.)
- Pending
Links
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/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/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- 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/48—Routing tree calculation
- H04L45/488—Routing tree calculation using root node determination
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Navigation (AREA)
Abstract
一种用于根选择的方法和网络设备,其中,所述方法包括:获取连接所述网络中的多个节点的链路的链路开销值;至少部分地根据所述链路开销值选择加权参数;根据所述链路开销值和所述加权参数计算对应于所述多个节点中的每个节点的节点开销值;根据所述节点开销值选择节点作为所述根节点,其中,所述根节点是从所述多个节点中选择的。
Description
技术领域
本发明大体上涉及网络拓扑,更具体地,涉及为给定网络拓扑的子图选择根节点的方法。
背景技术
分组交换计算机网络包括通过链路互连的多个节点。当用户数据流量从源用户设备(user equipment,UE)到达边缘节点时,该流量将由该节点及其经过的每个后续节点转发到网络中的零个或多个直接连接的节点。如果流量到达一个或多个后续边缘节点,则该流量通常会离开网络前往目的地UE。控制数据也可以在网络中的节点之间传输。在被称为“泛洪”的过程中,控制数据可以被转发以到达网络中的每个节点。
发明内容
第一方面涉及一种为网络的待构建子图选择根节点的方法。该方法包括:获取连接网络中的多个节点的链路的链路开销值;至少部分地根据链路开销值选择加权参数;根据链路开销值和加权参数计算对应于多个节点中的每个节点的节点开销值;以及根据节点开销值选择节点作为根节点,其中,根节点是从多个节点中选择的。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择节点作为根节点包括选择具有最低节点开销值的至少一个节点。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择加权参数是基于连接到每个节点的第一数量的链路,和比网络中的其它链路的链路开销值低的第二数量的链路。
可选地,根据上述任一方面,在该方面的另一种实现方式中,使用以下公式计算对应于多个节点中的每个节点的节点开销值:
其中,C1、C2、C3……表示链路开销值,k表示加权参数,链路的数量是连接到计算节点开销值的节点的链路的数量。
可选地,根据上述任一方面,在该方面的另一种实现方式中,C1、C2、C3……是大于零的整数。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择加权参数包括将k设置为大于1的值。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择加权参数包括将k设置为0与1之间的值。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择加权参数包括将k设置为等于1的值。
第二方面涉及一种用于根节点选择的网络设备。该网络设备包括存储设备和耦合到存储设备的处理器。该处理器用于执行存储在存储设备中的指令,以使网络设备:获取连接网络中的多个节点的链路的链路开销值;至少部分地根据链路开销值选择加权参数;根据链路开销值和加权参数计算对应于多个节点中的每个节点的节点开销值;以及根据节点开销值选择节点作为根节点,其中,根节点是从多个节点中选择的。
可选地,根据上述任一方面,在该方面的另一种实现方式中,网络设备通过选择具有最低节点开销值的至少一个节点来选择节点作为根节点。
可选地,根据上述任一方面,在该方面的另一种实现方式中,网络设备根据连接到每个节点的第一数量的链路,和比网络中的其它链路的链路开销值低的第二数量的链路选择加权参数。
可选地,根据上述任一方面,在该方面的另一种实现方式中,使用以下公式计算对应于多个节点中的每个节点的节点开销值:
其中,C1、C2、C3……表示链路开销值,k表示加权参数,链路的数量是连接到计算节点开销值的节点的链路的数量。
可选地,根据上述任一方面,在该方面的另一种实现方式中,C1、C2、C3……是大于零的整数。
可选地,根据上述任一方面,在该方面的另一种实现方式中,网络设备通过将k设置为大于1的值来选择加权参数。
可选地,根据上述任一方面,在该方面的另一种实现方式中,网络设备通过将k设置为0与1之间的值来选择加权参数。
可选地,根据上述任一方面,在该方面的另一种实现方式中,网络设备通过将k设置为等于1的值来选择加权参数。
第三方面涉及一种用于根节点选择的网络设备。该网络设备包括:用于获取连接网络中的多个节点的链路的链路开销值的部件;用于至少部分地根据链路开销值选择加权参数的部件;用于根据链路开销值和加权参数计算对应于多个节点中的每个节点的节点开销值的部件;以及用于根据节点开销值选择节点作为根节点的部件,其中,根节点是从多个节点中选择的。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择节点作为根节点包括选择具有最低节点开销值的至少一个节点。
可选地,根据上述任一方面,在该方面的另一种实现方式中,选择加权参数是基于连接到每个节点的第一数量的链路,和比网络中的其它链路的链路开销值低的第二数量的链路。
可选地,根据上述任一方面,在该方面的另一种实现方式中,用于计算对应于多个节点中的每个节点的节点开销值的节点开销值是使用以下公式计算的:
其中,C1、C2、C3……表示链路开销值,k表示加权参数,链路的数量是连接到计算节点开销值的节点的链路的数量。
所公开的技术通过对连接丰富的和更强大的节点进行优先级排序以选择节点作为根节点来改进网络子图的构建。通过根据每个节点本地的信息(例如将每个节点连接到其它节点的链路总数量以及这些链路的开销值)对节点进行优先级排序,可以有利于计算特定节点的优先级,其中,链路开销值可以基于带宽。为此,可以通过选择这样的节点来计算待构建子图的根节点,其中,该节点的开销值具有链路开销值的谐波平均值除以连接到该节点的链路的数量的最小商。虽然这种计算对人类来说可能不切实际,但一个或多个网络组件(例如节点、路由器、控制器等)可以用于计算此类商,而不必在整个网络/子图/路径上对全局度量执行困难的任何类型的指数或多项式计算。
为了清楚起见,上述任一实实现方式可以与上述其它任何一个或多个实现方式组合以创建在本发明范围内的新实施例。从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些实施例和其它特征。
附图说明
为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。
图1A是根据本发明的实施例的网络的示意图。
图1B至图1H示出了为图1A中的网络构建的子图的不同阶段。
图2是为图1A中的网络的待构建子图选择根节点的流程图。
图3是示出根据本发明的实施例计算的节点开销值的图表。
图4A至图4D以及图5A至图5D示出了根据本发明的实施例的构建子图的不同阶段。
图6是根据本发明的实施例的网络设备的示意图。
图7是根据本发明的实施例的实现根节点选择和子图构建方法的装置的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可使用任何数量的技术来实现,无论这些技术是当前已知还是现有的。本发明绝不限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。
在一些情况下,“树”或“分布树”用于用户数据和/或控制数据的传输。树是子图,包括到达网络中的每个节点的节点间链路的非循环子集。这种树/图的典型示例包括桥接网络中的“生成树协议”图和多链路透明互联(transparent interconnection of lots oflinks,TRILL)规范中的组播数据分发树。除非另有说明,否则“树”、“分布树”、“子图”和“图”在本文可互换使用。
在其它情况下,图表可以用于泛洪控制信息。这种图与非循环树的不同之处在于,其通常提供一些路径冗余,并因此包括循环。例如,该图可以被构建成使得每个节点至少是双连接的,即,每个节点连接到作为泛洪图的一部分的至少两个链路。替代地,图可以构建为使每个节点都是三重连接的,甚至具有更丰富的连接。这种连接更丰富的图可以通过首先构建非循环树,然后添加所选择的链路来实现所需的连接丰富度而构建。但是,网络中可能有一些节点仅单独连接或具有有限的连接,对于这些节点,所需的连接丰富度是无法到达的。
路由协议指定路由器相互通信的方式,分发信息,以使路由器能够在计算机网络上的任何两个节点之间选择路线。内部网关协议(interior gateway protocol,IGP)是一种用于在网络内网关(通常是路由器)之间交换路由信息的协议类型,它可以是任何合适的类型,如自治系统(autonomous system,AS)。然后,该路由信息可用于路由网络层协议,如互联网协议(internet protocol,IP)数据包。
在IGP中,有不同类型的协议,如链路状态路由协议。链路状态路由协议由网络中的每个交换节点(即,准备转发数据包的节点;在互联网中,这些节点称为路由器)执行。链路状态路由的基本概念是,每个节点都以图表的形式构建与网络的连接的图,示出哪些节点连接到哪些其它节点。然后,每个节点独立计算从其到网络中每个可能目的地的最佳(例如,最低开销值)逻辑路径或最佳下一跳接口。然后,每个最佳路径集合将形成每个节点的路由表。链路状态路由协议的示例包括开放最短路径优先(open shortest path first,OSPF)路由协议和中间系统到中间系统(intermediate system to intermediate system,IS-IS)。OSPF是Internet工程任务组(Internet Engineering Task Force,IETF)指定的标准路由协议。
OSPF使用链路状态通告(link-state advertisement,LSA)在路由器之间交换路由信息。IS-IS是国际标准化组织(international standards organization,ISO)标准化的路由协议。IS-IS使用链路状态协议数据单元(link state protocol data unit,LSP)在路由器之间交换路由信息。对于OSPF或IS-IS等链路状态路由协议,控制数据通常由在许多和/或所有链路上发送这种数据的每个节点泛洪,所接收的控制数据副本将被丢弃。这种泛洪控制数据的方法在一些情况下可能存在浪费。例如,在连接丰富的网络中,节点通常会接收链路状态更新的许多副本(甚至可能是100个或更多个)。因此,可以使用减少控制信息冗余传输的泛洪图。
分布树、泛洪图等的构建或推导通常通过以下步骤实现:(a)选择要从中生长树/图的根节点(该根节点可指定为层零);(b)选择并添加从该根节点到直接连接的节点的链路(这些链路和直接连接的节点可指定为层1);(c)如果有剩余节点不是树/图的一部分,则从层一节点到不属于树的节点选择不属于树的一部分的链路(这些添加的链路和节点可以指定为层二);(d)在每个后续步骤中,如果有剩余节点还不是树的一部分,则从由上一步骤添加的层的节点中选择不属于树的一部分的链路(这些添加的链路和节点可以指定为下一个编号较大的层,例如层三、层四等)。对于一些类型的子图,如链路状态泛洪子图,可能会有一个或多个附加阶段,其中,附加链路被添加到子图。但是,在根节点的选择之后,树或子图可以以其它方式构建。例如,链路可以从向根工作的远程节点添加,而不是从根向外添加。替代地,这些技术可以组合,或者树可以以其它方式使用选定的根构建。
树可以在一对节点之间具有多个并行的物理链路。当检测到这种情况时,(1)除一个链路外,所有链路都可能被禁止通信;(2)多个链路可以被视为单个链路,流量在这些链路上分配;或(3),即(1)和(2)的某种组合,例如,在仍启用的链路上分配流量的同时,禁用一些并行物理链路。在任何情况下,所有这些选项都可以被视为节点之间存在单个逻辑链路。
链路具有关联的“开销值”,通过网络优化数据路径通常被认为是将与数据经过的链路关联的开销值总和降至最低。最常见的是,链路的“开销值”基于该链路的速度的倒数。例如,开销值可以设置为20000000000000(20万亿)除以链路速度(单位为比特每秒(bitsper second,bps))。又例如,开销值可以基于可靠性、传输开销值(monetary cost)、延迟、安全性,或这些因素或其它因素的任何组合。传统上,链路的开销值表示为正整数。开销值通常是对称的,这意味着对于连接节点N1和N2的链路,从N1到N2的开销值与从N2到N1的开销值相同。但是,在从N1到N2的开销值与从N2到N1的开销值不同的情况下,可能存在不对称的开销值。
可以对不同的流量使用不同的链路开销值定义。例如,实时游戏流量等流量可能对延迟非常敏感,而批量文件传输可能对带宽或传输开销值更敏感。因此,可以为这种不同的流量构建不同的子图。对于单播路由应用,目标是将数据流经过的路径(链路序列)的开销值降至最低。
在给定的树中,每个节点都应对树的拓扑有相同的理解,以便在链路上接收流量时,节点可以知道要在哪些其它链路上发送数据。构建网络的子图可以以分布式或集中式的方式完成。例如,分布式子图构建涉及每个节点具有足够的信息来计算其如何适合子图。相反,集中式子图构建涉及一个或多个集中式控制器处理信息以构建子图,然后将该信息发送到网络中的所有节点。
图1A是包括多个节点n1、n2……n30的网络100的示意图,这些节点通过多个链路互连。在一些实施例中,链路可以具有不同的带宽。例如,在图1A中,链路包括低带宽链路102和高带宽链路104,后者由更宽和更粗的线表示。尽管在本示例中示出了4个高带宽链路(即,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)或互联网协议(internetprotocol,IP)地址)、节点的“顺序”或“程度”(即,其通过链路直接连接到的其它节点的数量)等。
例如,可以自动选择具有最低端口MAC地址的节点或具有最高节点顺序的节点作为根节点。在一些情况下,当根节点的手动或自动选择导致多个根节点候选(例如,如果两个或更多个节点可能具有相同的优先级或顺序)时,可以实现平局决胜过程。在这种情况下,平局决胜过程可以基于与节点关联的任意唯一编号(例如,内置设备序列号、节点端口之一的最低或最高地址等)。
使用根据其它方法的示例,假设编号最高的节点被自动选择为用于构建网络100的子图的根节点。进一步假设:在每个后续阶段,从编号最高的层N节点到编号最低的层N节点开始检查层N的边缘节点;对于检查的每个节点,如果有直接链路的每个节点还不是子图的一部分,则向有直接链路的每个节点添加链路,以便构建树的N+1层;对于下一个编号较高的层重复同样的过程,直到所有节点n1、n2……n30是子图的一部分。结合图1B至图1H进一步描述了根据上述示例构建子图的过程。
如图1B所示,因为n30是网络100中编号最高的节点,所以该过程从自动选择节点n30作为根节点开始。根节点n30的选择完成了构建子图的阶段零。需要说明的是,在下面的第一阶段中,根节点连接到的每个节点可以指“层一节点”。类似地,在第二阶段中层一节点连接的每个节点可以指“层二节点”,在第三阶段中层二节点连接的每个节点可以指“层三节点”,以此类推。
构建子图的第一阶段包括将根节点n30连接到网络100中还不是子图的一部分的一个或多个其它节点。在本示例中,根节点n30有两个可用的连接。因此,根节点n30可以通过添加从n30到n25的一个链路和从n30到n2的另一链路来连接到2个层1节点(添加的链路通过图1C中的突出显示的线示出)。这两个链路的添加完成了第一阶段。
第二阶段涉及将层一节点n25和n2连接到一个或多个层二节点。如图1D所示,因为n25是比n2编号高的节点,所以此阶段开始于在添加来自n2的任何链路之前添加从n25到层二节点n1的链路。由于n25没有其它连接链路可用,所以第二阶段以从n2添加4个链路到二层节点n10、n11、n12和n3结束,如图1E所示。需要说明的是,尽管从n2到n1的链路可用,但因为n1已经通过来自n25的链路连接,所以不会添加该链路。此外,添加从n2到n1的链路将导致环路(即,在n30、n25、n1和n2之间),这可能对网络100内的数据传输产生不利影响(例如,当发送广播流量或组播数据时)。
第三阶段包括添加从层二节点(即,n1、n10、n11、n12和n3)到还不是子图的一部分的一个或多个节点的链路。需要说明的是,层2节点n10和n11没有附加的链路可用。虽然有链路可用于将n12连接到n3,但因为n3已经连接到n2,所以该链路不会添加到子图中。因此,第三阶段可以忽略层2节点n10、n11和n12,并继续添加来自n1和n3的链路,从后者开始,因为n3是高编号节点。如图1F所示,在从n3添加6个链路到层三节点n13、n9、n8、n7、n6和n4,然后从n1添加2个链路到层三节点n24和n5之后,第三阶段完成。
第四阶段从编号最高的层三节点n24开始,该节点有一个到n5的可用的连接。但是,因为n5已经连接到n1,所以没有添加从n24到n5的链路。第二高编号的层三节点是n13,但由于类似的原因,没有添加从n13到n9的链路。第三高编号的层三节点是n9,其有8个可用的连接。因此,第四阶段开始于从n9添加7个链路到层四节点n14、n26、n27、n28、n29、n15和n16,但因为n8已经连接到n3,所以不添加从n9到n8的第八链路。下一个编号最高的层三节点是n8,但是因为n16已经连接到n9,所以没有添加从n8到n16的链路。下一个编号最高的层三节点是n7,其有两个可用的连接。这里,添加从n7到层四节点n17的链路,但不添加到n16的链路。接下来,添加2个从n6到层四节点n18和n20的链路,但不添加到n17的链路。如图1G所示,在添加从n5到四层节点n23和n21的2个链路之后,第四阶段完成。
第五阶段开始于添加从n23到层五节点n22的链路,并结束于添加从n20到层五节点n19的链路,从而完成子图。如图1H所示,所构建的子图代表了一个完整的非循环树,跨越网络100中的所有节点n1、n2……n30。尽管最终结果取决于网络100的特征,但可以看到,根据其它方法(例如,使用最高编号的节点作为根节点)构建子图可能不是最佳的。
例如,图1H中示出的子图不使用网络100中的任何高带宽链路(即,n2-n1、n1-n3、n1-n4或n4-n6)。附加地,网络100的右上方区域与网络100的左下方区域之间的所有流量必须经过根节点n30和网络100最左上角的多个较低带宽链路。此外,一些边缘节点之间的路径可以包括多达9跳(例如,边缘节点n22与n14之间的路径)。
改进的子图可以使用连接更好和更强大的节点作为根节点来构建。不同的应用可能需要不同类型的根。例如,具有许多源和宿的高带宽用户流量需要以具有高带宽链路的节点为前提的子图。启发式地,具有较高带宽链路的节点也比具有较低带宽链路的节点更有能力,时延也更低。因此,具有较高带宽链路的节点倾向于具有更强大的硬件(例如,用于处理较短的数据包间到达时间),并且在将流量从端口移动到端口方面可能更高效。另一方面,较低带宽控制流量(例如,链路状态信息)的泛洪图需要具有许多链路的节点,以便更快地将控制信息传播到许多其它节点。因此,连接更好、功能更强大的节点可能取决于低开销值链路的存在和连接到该节点的链路的数量。
本文公开了一种通过根据节点本地的信息对节点进行优先级排序以选择节点作为根节点来构建子图的方法。该方法涉及使用每个节点的“节点开销值”来对节点进行优先级排序,其中,节点开销值计算为链路开销值的参数乘幂的谐波平均值。该方法还包括根据最低节点开销值选择节点作为根节点,最低节点开销值可以基于加权参数,以考虑低开销值链路和连接链路的数量。该方法可以在不计算整个网络/子图上的全局度量的情况下实现,该全局度量的计算可能需要对网络中的节点的数量或链路总数量执行复杂的指数或多项式计算。此外,该方法适用于路由应用、链路状态泛洪图、组播/广播分布树以及相关标准。这些特征和其它特征将在下文详细介绍。
图2示出了为图1A中的网络100等网络的待构建子图选择根节点的方法200。方法200中的操作可以按所示顺序执行,也可以按不同的顺序执行。此外,方法200的两个或更多个操作可以同时执行,而不是按顺序执行。在一些实现方式中,方法200可以使用分布式树计算来实现,其中,每个节点(例如,n1、n2……n30)选择相同的根节点并计算网络的相同子图。在其它实现方式中,方法200可以通过一个或多个集中控制器(例如,软件定义网络(software-defined networking,SDN)控制器)来实现,该一个或多个集中控制器用于选择根节点、计算子图并将所有相关网络信息提供给网络中的每个节点。
在框202处,方法200获取连接到网络中节点的所有链路的开销值,其中,可以假设每个节点具有到网络中其它节点的一个或多个链路。例如,使用图1A中的网络100,特定节点的每个链路的开销值C可以表示为C1、C2……Cm,其中,m是连接到该节点的链路的数量。因此,在图1A中,连接到节点n7的链路的开销值可以表示为C1、C2、Cm,其中,Cm是C3,因为节点n7连接到三个链路。在一些实施例中,链路开销值可以基于带宽,其中,特定低带宽或高带宽链路的开销值C可以设置为除以链路速度的值,例如,C=2*1013/bps。在其它实现方式中,链路开销值可以基于一个或多个因素,如带宽、可靠性、延迟/时延、每比特传输开销值或其某些组合。
在框204处,方法200选择要在框206处使用的加权参数k。关于加权参数k选择的其它细节将在下文结合表1讨论。在框206处,方法200计算网络中的每个节点n1、n2……n30的节点开销值。在一个实施例中,节点开销值可以设置为通过将连接到特定节点(例如,n1、n2……n30)的链路的数量除以连接到该节点的链路的开销值的k次幂的谐波平均值而得到的商。例如,节点开销值可以通过以下公式数学推导:
上面的公式可以使用下面的任何一个公式重写,但每个公式在其它方面与上面的公式相同。因此,除非另有说明,否则这三个公式统称为方程1。
需要说明的是,方程1假设链路开销值Cm大于零。如果所使用的链路开销值的类型允许值为零或负值,则可以添加常量以确保正开销值。作为使用非负整数开销值的示例,假设链路开销值等于零,在这种情况下,链路开销值可以在使用方程1计算节点开销值之前增加1。
在框208处,方法200基于在框206中计算的节点开销值选择根节点。在一个实施例中,选择具有最低节点开销值的节点作为根节点。
下面的表1包括k的值与选择k的不同值时的效果之间的映射。
表1
从表1可以看出,将k设置为零的效果是,将特定节点的节点开销值设置为连接到该节点的链路的数量的倒数,而将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)的链路开销值设置为200000,而低带宽链路(LinkLBW)的链路开销值设置为500000。应理解,高带宽链路和/或低带宽链路在其它实现方式中具有其它开销值。为了证明在方法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)可以被选择为根节点,这是因为这些节点具有最低的节点开销值(47619.05)。在这种情况下,可以实现平局决胜过程,以在节点n1与n3之间选择节点作为根节点。例如,因为n1是比n3编号低的节点,所以节点n1可以被选择为根节点。替代地,因为n3是比n1编号高的节点,所以节点n3可以被选择为根节点。又例如,因为n3连接到比n1更多的链路,所以节点n3可以被选择为根节点。又例如,如果高带宽链路的数量是重要的标准,则节点n1可以被选择为根节点。
参考图4A至图4D,使用结合图1B至图1H讨论的类似原理描述构建网络100的子图的过程,这里使用本文所公开的方法200选择根节点。附加地,将使用一个示例来描述该过程,其中,k设置为0.8,作为方程1的输入。如图表300所示,当使用k=0.8作为方程1的输入时,节点n3具有最低的节点开销值(3594.64)。因此,在这种情况下,方法200可以选择节点n3作为根节点,如图4A所示。这就完成了过程的阶段零。
构建子图的第一阶段包括将根节点n3连接到网络100中还不是子图的一部分的一个或多个其它节点。在本示例中,根节点n3有9个可用的连接。因此,根节点n3可以连接到9个层一节点,以建立8个低带宽链路(n3-n2、n3-12、n3-n13、n3-n9、n3-n8、n3-n7、n3-n6和n3-n4)和1个高带宽链路(n3-n1),如图4B所示。
第二阶段涉及将层一节点n2、12、n13、n9、n8、n7、n6、n4和n1连接到一个或多个节点,从节点n13开始,因为该节点是编号最高的层一节点。尽管节点n13到节点n9有一个可用的连接,但是因为n8已经连接到节点n3,所以不会添加从n13到n9的链路。第二高编号的层一节点是n12,但由于类似的原因,没有添加链路。第三高编号的层一节点是n9,其连接到层二节点n14、n26、n27、n28、n29、n15和n16,但不连接节点n8或n13。该过程以与先前描述的类似的方式继续,直到第二阶段完成,结果如图4C所示。
图4D示出了该过程的第三阶段(也是最后阶段)的结果,其中,可以看到,所构建的子图利用高带宽链路(n3-n1),并且在节点之间具有比根据其它方法构建的先前描述的子图短的最大路径长度。例如,图4D中边缘节点之间的跳数不超过6跳,而图1H中边缘节点之间的跳数不超过10跳。附加地,图4D中的子图仅用三个阶段构建,这意味着到达网络100中的每个节点只需要3个步骤。
参考图5A至图5D,使用结合图1B至图1H讨论的类似原理描述构建网络100的子图的过程,这里使用本文所公开的方法200选择根节点。附加地,将使用一个示例来描述该过程,其中,k设置为1.25,作为方程1的输入。如图表300所示,当使用k=1.25作为方程1的输入时,节点n1具有最低的节点开销值(1069584.62)。因此,在这种情况下,方法200可以选择节点n1作为根节点,如图5A所示。这就完成了过程的阶段零。
构建子图的第一阶段包括将根节点n3连接到网络100中还不是子图的一部分的一个或多个其它节点。在本示例中,根节点n1有6个可用的连接。因此,根节点n1可以连接到6个层一节点,以建立3个低带宽链路(n1-n25、n1-n24和n1-n5)和3个高带宽链路(n1-n2、n1-n3和n1-n4),如图5B所示。
第二阶段涉及将层一节点n25、24、n5、n2、n3和n4连接到一个或多个节点,从节点n25开始,因为该节点是编号最高的层一节点,到层一节点n2结束,因为该节点是编号最低的层一节点。图5C示出了第二阶段的结果。
第三阶段涉及将层二节点连接到一个或多个节点,从节点n30开始,因为该节点是编号最高的层二节点,到节点n6结束,因为该节点是编号最低的层二节点。图5D示出了该过程的第三阶段(也是最后阶段)的结果,其中,可以看到,所构建的子图利用4个高带宽链路(n1-n2、n1-n3、n1-4和n4-n6),并且在节点之间具有比根据其它方法构建的先前描述的子图短的最大路径长度。因此,将k设置为大于1(例如,k=1.25)的值可能适用于涉及广播和组播流量的传输。与图4D中的子图一样,图5D中的边缘节点之间的跳数不超过6跳,子图只分三个阶段构建。
在一些实施例中,网络中链路的开销值可以基于带宽,其中,来自每个节点的链路的带宽可以表示为B1、B2、B3等。在这些实施例中,选择节点作为根节点可以涉及选择具有最高总带宽的节点。每个节点的带宽可以计算如下:节点带宽=B1+B2+B3+……。
在带宽可能不直接已知或获取,但链路已知具有开销值C1、C2、C3……的实现方式中,带宽可以根据链路开销值估计如下:节点带宽=1/C1+1/C2+1/C3+……。
在这些实施例和实现方式中,可以选择网络中具有最高节点带宽的节点作为根节点。如果网络中存在两个或更多个节点具有相同的最高节点带宽,则可以选择具有最高节点带宽、最多连接链路数量的节点作为根节点。如果仍然存在平局,则可以选择具有最高节点带宽、最多连接链路数量和最高(或最低)节点标识符(identifier,ID)或地址的节点作为根节点。
在一些实现方式中,链路之间的开销值可以是不对称的,其中,从节点一N1到节点二N2的开销值不同于从节点二N2到节点N1的开销值。在这些实现方式中,在本文所公开的根选择方法中使用的链路开销值可以通过以下方式从两个不同的方向开销值中导出:计算这些开销值的算术、几何或谐波平均值,或以系统方式选择一个,例如选择两个开销值中的最高或最低的一个,或这些方法的任何组合。
在一些实施例中,所公开的技术可用于为特定网络构建多个分布树和/或泛洪图。也就是说,本发明不限于为单个树/图选择根节点,因为网络可以同时包括多个树/图,例如,多个树/图可以在网络中同时使用。因此,可以导出多个根节点(例如,使用k的不同的值)来构建多个树/图,使得每个树/图都是为某些应用(例如,不同类型的流量)定制的。例如,当网络用于高带宽数据传输时,可以导出根节点以构建具有低开销值链路的树/图。又例如,当网络用于发送具有有限流量的控制数据时,可以导出根节点以构建具有许多链路(即,不那么强调链路开销值)的另一树/图,以快速分发这些控制数据。
图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中的至少一个集成。附加地,或替代地,接收单元620中的至少一个可以用至少一个收发单元替换。类似地,发送单元640中的至少一个可以用至少一个收发单元替换。此外,入端口610中的至少一个可以与出端口650中的至少一个集成。附加地,或替代地,入端口620中的至少一个可以用至少一个双向端口替换。类似地,出端口640中的至少一个可以用至少一个双向端口替换。因此,在这些实施例中,网络设备600可以用于经由双向端口620和/或640在一个或多个双向链路上发送和接收数据。
处理器630可以通过硬件和软件来实现。处理器630可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器630可以与入端口610、接收单元620、发送单元640、出端口650和存储器660通信。处理器630包括根节点选择和子图构建模块670。模块670可以实现以上所公开的实施例。例如,模块670可以实现图2的方法200和本文所公开的过程。因此,包含模块670对设备600的功能提供了实质性的改进,并实现设备600到不同状态的转换。替代地,模块670可以实现为存储在存储器660中并由处理器630执行的指令。
存储器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,其中,根节点是从多个节点中选择的。
在一些实施例中,网络设备600和/或装置700可以包括网络(例如,网络100)中的控制器(例如,软件定义网络(software defined network,SDN)控制器)。在其它实施例中,网络设备600和/或装置700可以包括节点、路由器等其它类型的网络组件。
所公开的实施例可以是任何可能的集成技术细节级别的系统、装置、方法和/或计算机程序产品。计算机程序产品可包括具有计算机可读程序指令的计算机可读存储介质,计算机可读程序指令使得处理器执行本发明的各方面。计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。
虽然本发明提供了若干个实施例,但应当理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以通过其它多种具体形式体现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或讨论为彼此耦合或直接耦合或通信的其它项也可以使用电方式、机械方式或其它方式通过某一接口、设备或中间组件间接地耦合或通信。变化、替换、变更的其它示例可由本领域技术人员确定,并可以在不脱离本文中公开的精神和范围的情况下举例。
Claims (20)
1.一种为网络的待构建子图选择根节点的方法,其特征在于,所述方法包括:
获取连接所述网络中的多个节点的链路的链路开销值;
至少部分地根据所述链路开销值选择加权参数;
根据所述链路开销值和所述加权参数计算对应于所述多个节点中的每个节点的节点开销值;
根据所述节点开销值选择节点作为所述根节点,其中,所述根节点是从所述多个节点中选择的。
2.根据权利要求1所述的方法,其特征在于,选择所述节点作为所述根节点包括:选择具有最低节点开销值的至少一个节点。
3.根据权利要求1或2所述的方法,其特征在于,选择所述加权参数是基于连接到每个节点的第一数量的链路,和比所述网络中的其它链路的链路开销值低的第二数量的链路。
5.根据权利要求4所述的方法,其特征在于,C1、C2、C3……是大于零的整数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,选择所述加权参数包括将k设置为大于1的值。
7.根据权利要求1至5中任一项所述的方法,其特征在于,选择所述加权参数包括将k设置为0与1之间的值。
8.根据权利要求1至5中任一项所述的方法,其特征在于,选择所述加权参数包括将k设置为等于1的值。
9.一种用于根节点选择的网络设备,其特征在于,包括:
存储设备;
处理器,耦合到所述存储设备,并用于在所述存储设备上执行指令,使得所述指令在被执行时,使所述网络设备:
获取连接网络中的多个节点的链路的链路开销值;
至少部分地根据所述链路开销值选择加权参数;
根据所述链路开销值和所述加权参数计算对应于所述多个节点中的每个节点的节点开销值;
根据所述节点开销值选择节点作为根节点,其中,所述根节点是从所述多个节点中选择的。
10.根据权利要求9所述的网络设备,其特征在于,所述网络设备通过选择具有最低节点开销值的至少一个节点来选择所述节点作为所述根节点。
11.根据权利要求9或10所述的网络设备,其特征在于,所述网络设备根据连接到每个节点的第一数量的链路,和比所述网络中的其它链路的链路开销值低的第二数量的链路选择所述加权参数。
13.根据权利要求12所述的网络设备,其特征在于,C1、C2、C3……是大于零的整数。
14.根据权利要求12或13所述的网络设备,其特征在于,所述网络设备通过将k设置为大于1的值来选择所述加权参数。
15.根据权利要求12或13所述的网络设备,其特征在于,所述网络设备通过将k设置为0与1之间的值来选择所述加权参数。
16.根据权利要求12或13所述的网络设备,其特征在于,所述网络设备通过将k设置为等于1的值来选择所述加权参数。
17.一种用于根选择的网络设备,其特征在于,包括:
用于获取连接所述网络中的多个节点的链路的链路开销值的部件;
用于至少部分地根据所述链路开销值选择加权参数的部件;
用于根据所述链路开销值和所述加权参数计算对应于所述多个节点中的每个节点的节点开销值的部件;
用于根据所述节点开销值选择节点作为所述根节点的部件,其中,所述根节点是从所述多个节点中选择的。
18.根据权利要求17所述的网络设备,其特征在于,选择所述节点作为所述根节点包括选择具有最低节点开销值的至少一个节点。
19.根据权利要求17或18所述的网络设备,其特征在于,选择所述加权参数是基于连接到每个节点的第一数量的链路,和比所述网络中的其它链路的链路开销值低第二数量的链路。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/041825 WO2020215103A2 (en) | 2020-07-13 | 2020-07-13 | Parameterized method for network subgraph root node selection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116057905A true CN116057905A (zh) | 2023-05-02 |
Family
ID=71895265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080102930.1A Pending CN116057905A (zh) | 2020-07-13 | 2020-07-13 | 网络子图根节点选择的参数化方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230155929A1 (zh) |
EP (1) | EP4173241A2 (zh) |
CN (1) | CN116057905A (zh) |
WO (1) | WO2020215103A2 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422420A (zh) * | 2020-11-18 | 2021-02-26 | 迈普通信技术股份有限公司 | 链路显示方法、装置、电子设备及可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745172B1 (en) * | 2000-07-19 | 2004-06-01 | Whisperwire, Inc. | Expert system adapted data network guidance engine |
JP3938582B2 (ja) * | 2003-02-19 | 2007-06-27 | 富士通株式会社 | 仮想lan構築装置 |
US7689693B2 (en) * | 2003-03-31 | 2010-03-30 | Alcatel-Lucent Usa Inc. | Primary/restoration path calculation in mesh networks based on multiple-cost criteria |
US7246172B2 (en) * | 2003-06-06 | 2007-07-17 | Matsushita Electric Industrial Co., Ltd. | Static dense multicast path and bandwidth management |
US7688739B2 (en) * | 2005-08-02 | 2010-03-30 | Trilliant Networks, Inc. | Method and apparatus for maximizing data transmission capacity of a mesh network |
US8111619B2 (en) * | 2008-02-08 | 2012-02-07 | Honeywell International Inc. | Apparatus and method for routing data in wireless networks |
US20120072475A1 (en) * | 2010-09-10 | 2012-03-22 | Morrison Gregory C | Measuring "closeness" in a network |
US8949158B2 (en) * | 2010-10-25 | 2015-02-03 | Intelius Inc. | Cost-sensitive alternating decision trees for record linkage |
JP5464278B2 (ja) * | 2010-11-29 | 2014-04-09 | 富士通株式会社 | 無線通信装置および無線ネットワークにおける経路決定方法 |
US8831524B2 (en) * | 2011-04-11 | 2014-09-09 | University Of Maryland, College Park | Systems, methods, devices, and computer program products for control and performance prediction in wireless networks |
US9176832B2 (en) * | 2013-03-15 | 2015-11-03 | Cisco Technology, Inc. | Providing a backup network topology without service disruption |
US20200322868A1 (en) * | 2015-07-17 | 2020-10-08 | Origin Wireless, Inc. | Method, apparatus, and system for improving topology of wireless sensing systems |
WO2017090535A1 (ja) * | 2015-11-24 | 2017-06-01 | 日本電気株式会社 | フロー制御装置、通信システム、フロー制御方法及び記録媒体 |
KR102606598B1 (ko) * | 2018-01-12 | 2023-11-29 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 내부 게이트웨이 프로토콜 플러딩 최소화 |
-
2020
- 2020-07-13 EP EP20750096.8A patent/EP4173241A2/en active Pending
- 2020-07-13 CN CN202080102930.1A patent/CN116057905A/zh active Pending
- 2020-07-13 WO PCT/US2020/041825 patent/WO2020215103A2/en unknown
-
2023
- 2023-01-13 US US18/154,706 patent/US20230155929A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4173241A2 (en) | 2023-05-03 |
WO2020215103A2 (en) | 2020-10-22 |
WO2020215103A3 (en) | 2021-01-21 |
US20230155929A1 (en) | 2023-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200389404A1 (en) | Fault tolerant and load balanced routing | |
KR101406878B1 (ko) | 네트워크 시스템 및 라우팅 방법 | |
JP5551253B2 (ja) | 複数の等コストパスから選択するための方法および装置 | |
US8279753B2 (en) | Efficient determination of fast routes when voluminous data is to be sent from a single node to many destination nodes via other intermediate nodes | |
US9853889B2 (en) | Broadcast and multicast traffic reduction in stacking systems | |
JP6589060B2 (ja) | ソフトウェア定義ネットワークのエントリ生成およびパケット転送 | |
US8761053B2 (en) | Link state fast flood with computed multi-protocol-label-switching (MPLS) broadcast tree | |
JP2015136168A (ja) | ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減 | |
US20140355612A1 (en) | Network system and routing method | |
KR20150013612A (ko) | 802.1aq에 대한 3 스테이지 폴딩된 clos 최적화 | |
EP1641198B1 (en) | Method for routing traffic using traffic weighting factors | |
EP3868062A1 (en) | Methods and apparatus for transmitting data over multiple paths in a network | |
US20230155929A1 (en) | Parameterized Method for Network Subgraph Root Node Selection | |
Matsuura | Energy-saving routing algorithm using Steiner tree | |
EP2923463B1 (en) | Establishing neighbor connection | |
CN116057919A (zh) | 用于网络子图链路选择的方法 | |
CN100518382C (zh) | 自动交换光网络中多约束条件下最短路径查找方法及装置 | |
WO2005015834A1 (fr) | Formulation nanopharmaceutique et son procede de preparation | |
Nimbar et al. | Intelligent computer networks: A Game Theoretic Approach to Compute the Traffic Equilibrium of Various Routing Schemes for multimedia applications in wireless networks | |
Mubeen et al. | On source routing for mesh topology network on chip | |
JP5434511B2 (ja) | ノードおよび経路計算方法 | |
TW201424301A (zh) | 網路系統及路由方法 | |
TW201722116A (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 |