CN115914078A - 报文转发方法及装置、蜻蜓网络 - Google Patents
报文转发方法及装置、蜻蜓网络 Download PDFInfo
- Publication number
- CN115914078A CN115914078A CN202111142613.5A CN202111142613A CN115914078A CN 115914078 A CN115914078 A CN 115914078A CN 202111142613 A CN202111142613 A CN 202111142613A CN 115914078 A CN115914078 A CN 115914078A
- Authority
- CN
- China
- Prior art keywords
- group
- network device
- network
- shortest path
- path
- 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
- 241000238633 Odonata Species 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 claims description 18
- 230000006855 networking Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1886—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
-
- 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/121—Shortest path evaluation by minimising delays
-
- 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/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- 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/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文转发方法及装置、蜻蜓网络,属于通信技术领域。第一设备组中的第一网络设备接收与第一网络设备连接的第一终端设备发送的、目的地址为与第二设备组中的第二网络设备连接的第二终端设备的IP地址的第一报文。当第一网络设备与第二设备组之间存在第一组间互联链路,且第一组间互联链路未发生拥塞时,第一网络设备通过第一组间互联链路向第二网络设备发送第一报文。本申请中,第一网络设备优先选用第一网络设备与第二设备组之间的组间互联链路来向第二网络设备发送报文,使报文的转发跳数尽可能地少,以实现组间通信的低时延,同时提高了对报文转发路径的控制精度。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种报文转发方法及装置、蜻蜓网络。
背景技术
蜻蜓(dragonfly)网络是高性能计算(high performance computing,HPC)领域一种常用的高效通信系统。与胖树(fat tree)网络等组网拓扑相比,蜻蜓网络具有通信路径短、时延低、组网规模大等特点,可以实现低时延和高吞吐通信。
蜻蜓网络包括多个设备组,每个设备组分别包括多个网络设备。每个网络设备包括全局(global)接口、本地(local)接口和接入(access)接口。全局接口用于组间互联,本地接口用于组内互联,接入接口用于连接服务器、虚拟机(virtual machine,VM)、存储设备等终端设备。每个设备组内的各个网络设备通过本地接口实现网状(mesh)直连(即全直连)。一个设备组可视为一个逻辑设备,不同设备组之间通过全局接口实现mesh直连。
目前,蜻蜓网络通常采用自适应路由(adaptive routing)方式进行报文转发,以兼顾低时延和高吞吐两个目标。不同设备组的网络设备进行组间通信时,如果组间最短路径不拥塞,则优先选择组间最短路径进行报文转发,以实现低时延;如果组间最短路径拥塞,则选择组间非最短路径进行转发,以实现高吞吐。其中,组间最短路径指只经过一条组间互联链路的报文转发路径。组间非最短路径指只经过一个中间设备组以及两条组间互联链路的报文转发路径,即有且只经过一个中间设备组的报文转发路径称为组间非最短路径。
但是,在不同设备组之间具有多条组间互联链路的情况下,组间最短路径可能会有多种情况:组间最短路径只包括一条组间互联链路;组间最短路径包括一条组间互联链路以及源设备组或目的设备组内一条组内互联链路;组间最短路径包括源设备组内一条组内互联链路、一条组间互联链路以及目的设备组内一条组内互联链路。而按照目前的报文转发方式只能优先选择使用组间最短路径,对报文转发路径的控制精度较低。
发明内容
本申请提供了一种报文转发方法及装置、蜻蜓网络,可以解决目前对报文转发路径的控制精度较低的问题。
第一方面,提供了一种报文转发方法。该方法应用于蜻蜓网络,该蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路。第一网络设备接收与第一网络设备连接的第一终端设备发送的第一报文。第一报文的目的地址为与第二网络设备连接的第二终端设备的互联网协议(Internet Protocol,IP)地址,第一网络设备属于第一设备组,第二网络设备属于第二设备组。当第一网络设备与第二设备组之间存在第一组间互联链路,且第一组间互联链路未发生拥塞时,第一网络设备通过第一组间互联链路向第二网络设备发送第一报文。
本申请中,第一网络设备优先选用第一网络设备与第二设备组之间的组间互联链路来向第二网络设备发送报文,使报文的转发跳数尽可能地少,以实现组间通信的低时延,同时提高了对报文转发路径的控制精度。
可选地,第一网络设备根据第一网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一组间互联链路是否发生拥塞。
可选地,当第一组间互联链路发生拥塞,或者,第一网络设备与第二设备组之间不存在组间互联链路时,第一网络设备依次对第一网络设备与第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止。第一网络设备通过目标转发路径向第二网络设备发送基于第一报文得到的第二报文。其中,组内绕行最短路径包括第一网络设备与第一设备组中的第三网络设备之间的组内互联链路以及第三网络设备与第二设备组之间的组间互联链路,本地直连非最短路径包括第一网络设备与第三设备组之间的组间互联链路以及第三设备组与第二设备组之间的一条组间互联链路,组内绕行非最短路径包括第一网络设备与第一设备组中的第四网络设备之间的组内互联链路、第四网络设备与第四设备组之间的组间互联链路以及第四设备组与第二设备组之间的一条组间互联链路。
本申请中,第一网络设备在进行路径选择时,遵循优先选用组间最短路径、组间最短路径都发生拥塞后再选用组间非最短路径的原则,并且在组间最短路径中选择转发路径时优先选用本地直连最短路径,在组间非最短路径中选择转发路径时优先选用本地直连非最短路径,一方面能够尽量降低报文转发时延,另一方面优先选用本地直连路径,第一网络设备能够较好地实时感知本地拥塞情况,后续根据本地拥塞情况判断是否切换路径,可以较为准确地确定路径切换时机。
可选地,第一网络设备依次对第一网络设备与第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止,包括:第一网络设备对第一网络设备与第二网络设备之间的组内绕行最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行最短路径时,第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行最短路径作为目标转发路径。当第一网络设备与第二网络设备之间不存在未发生拥塞的组内绕行最短路径时,第一网络设备对第一网络设备与第二网络设备之间的本地直连非最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的本地直连非最短路径时,第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一本地直连非最短路径作为目标转发路径。当第一网络设备与第二网络设备之间不存在未发生拥塞的本地直连非最短路径时,第一网络设备对第一网络设备与第二网络设备之间的组内绕行非最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行非最短路径时,第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行非最短路径作为目标转发路径。
可选地,第一网络设备对第一网络设备与第二网络设备之间的组内绕行最短路径进行拥塞判断的实现方式,包括:第一网络设备根据第一网络设备上与第三网络设备连接的本地接口的第一出接口队列的队列深度以及第三网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三网络设备的组内绕行最短路径是否发生拥塞,第一出接口队列用于转发第一网络设备中通过组内绕行最短路径转发的报文。
可选地,第一网络设备对第一网络设备与第二网络设备之间的本地直连非最短路径进行拥塞判断的实现方式,包括:第一网络设备根据第一网络设备上与第三设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三设备组的本地直连非最短路径是否发生拥塞。
可选地,第一网络设备对第一网络设备与第二网络设备之间的组内绕行非最短路径进行拥塞判断的实现方式,包括:第一网络设备根据第一网络设备上与第四网络设备连接的本地接口的第二出接口队列的队列深度以及第四网络设备上与第四设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第四网络设备以及第四设备组的组内绕行非最短路径是否发生拥塞,第二出接口队列用于转发第一网络设备中通过组内绕行非最短路径转发的报文。
由于第一网络设备选用组内绕行最短路径或组内绕行非最短路径时,都要通过第一设备组内的另一网络设备转发报文,而第一网络设备无论选用组内绕行最短路径还是组内绕行非最短路径,如果通过第一设备组内的同一网络设备转发报文,那么发送报文时所使用的本地接口是相同的,因此需要区分从同一本地接口发出的报文中走组内绕行最短路径的报文数量以及走组内绕行非最短路径的报文数量,以分别确定组内绕行最短路径和组内绕行非最短路径的拥塞情况。本申请中,通过将本地接口的出接口队列划分为第一出接口队列和第二出接口队列。第一出接口队列用于转发第一网络设备中通过组内绕行最短路径转发的报文,第二出接口队列用于转发第一网络设备中通过组内绕行非最短路径转发的报文,分别实现基于第一出接口队列的队列深度确定组内绕行最短路径的拥塞情况,基于第二出接口队列的队列深度确定组内绕行非最短路径的拥塞情况。
可选地,第一网络设备通过目标转发路径向第二网络设备发送基于第一报文得到的第二报文的实现方式,包括:当目标转发路径为组内绕行最短路径时,第一网络设备在第一报文中添加第一指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,第一指示用于指示转发路径类型为组内绕行最短路径。或者,当目标转发路径为组内绕行非最短路径时,第一网络设备在第一报文中添加第二指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,第二指示用于指示转发路径类型为组内绕行非最短路径。
本申请中,由于第一网络设备选用组内绕行最短路径或组内绕行非最短路径时,都要通过第一设备组内的另一网络设备转发报文,而无论第一网络设备选用组内绕行最短路径还是组内绕行非最短路径,如果通过第一设备组内的同一网络设备转发报文,那么这个网络设备接收报文所使用的本地接口是相同的,因此这个网络设备需要区分从本地接口接收到的报文中哪些报文走的是组内绕行最短路径,哪些报文走的是组内绕行非最短路径,以便采用相应的转发路径来转发报文。本申请中,源网络设备通过在走组内绕行最短路径的报文中添加第一指示,在走组内绕行非最短路径的报文中添加第二指示,以明确指示设备组内转发报文的其它网络设备采用哪种转发路径来转发报文,这样其它网络设备可以基于报文中的指示知晓应该通过哪个全局接口转发报文,从而可以提高报文转发效率。
可选地,第一网络设备获取路由转发表,路由转发表包括路由前缀表和多个等价多路径(equal cost multi-path,ECMP)组(ECMP group)表。路由前缀表的每个表项包括目的IP地址与目的设备组的组索引的对应关系。目的设备组的组索引关联一个ECMP组表,ECMP组表包括从第一网络设备到该目的设备组的每条路径分别对应的出接口,该目的设备组为对应的目的IP地址所属的终端设备的接入设备所在的设备组。
本申请中,网络设备采用路由前缀表结合ECMP组表的方式存储到各个终端设备的路由,采用一个ECMP组表即可存储接入同一设备组的终端设备的IP地址对应的所有转发信息,可以节约表项资源。
可选地,ECMP组表包括第一路由子表和第二路由子表。第一路由子表包括从第一网络设备到目的设备组的每条路径分别对应的出接口,第一路由子表用于第一网络设备转发来自接入第一设备组的终端设备的报文。第二路由子表包括从第一网络设备到目的设备组的组间最短路径对应的出接口,第二路由子表用于第一网络设备转发来自接入除第一设备组以外的其它设备组的终端设备的报文。
本申请中,当第一网络设备位于中间设备组或目的设备组内时,第一网络设备基于第二路由子表转发报文,即第一网络设备使用最短路径算法转发报文,可以避免出现路由环路。
一种实现方式中,每个设备组分别对应一个自治系统(autonomous system,AS)号。第一网络设备获取路由转发表的过程,包括:当第一网络设备接收到第一路由消息,且第一路由消息的AS-path属性仅包含一个AS号时,第一网络设备在第一路由子表和第二路由子表中分别添加基于第一路由消息得到的转发表项。当第一网络设备接收到第二路由消息,且第二路由消息的AS-path属性包含两个AS号时,第一网络设备仅在第一路由子表中添加基于第二路由消息得到的转发表项。
另一种实现方式中,第一网络设备获取路由转发表的过程,包括:第一网络设备根据蜻蜓网络的组网拓扑、接入蜻蜓网络的终端设备的IP地址以及终端设备的接入设备,生成路由前缀表和多个ECMP组表。
又一种实现方式中,第一网络设备获取路由转发表的过程,包括:第一网络设备接收控制设备发送的路由转发表。
第二方面,提供了一种报文转发装置。所述装置应用于蜻蜓网络中的第一网络设备,所述蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第三方面,提供了一种蜻蜓网络,包括:多个设备组,不同设备组之间具有多条组间互联链路,所述设备组中的网络设备用于执行上述第一方面及其各实施方式中的方法。
第四方面,提供了一种网络设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现上述第一方面及其各实施方式中的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现上述第一方面及其各实施方式中的方法。
第六方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现上述第一方面及其各实施方式中的方法。
第七方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现上述第一方面及其各实施方式中的方法。
附图说明
图1是本申请实施例提供的一种蜻蜓网络的结构示意图;
图2是本申请实施例提供的一种报文转发方法的流程示意图;
图3是本申请实施例提供的一种报文转发装置的结构示意图;
图4是本申请实施例提供的另一种报文转发装置的结构示意图;
图5是本申请实施例提供的一种网络设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的报文转发方法应用于蜻蜓网络。该蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路。两个设备组之间的多条组间互联链路通常分布在不同网络设备上。例如,图1是本申请实施例提供的一种蜻蜓网络的结构示意图。如图1所示,该蜻蜓网络包括设备组A、设备组B和设备组C。设备组A包括5个网络设备A1-A5,设备组B包括5个网络设备B1-B5,设备组C包括5个网络设备C1-C5。可选地,网络设备可以是路由器或交换机等。图1中设备组的数量以及每个设备组中网络设备的数量仅用作示意,不作为对本申请实施例提供的蜻蜓网络的限制。
在组网规划确定之后,可以配置蜻蜓网络中的每个网络设备的接口角色,具体可以将网络设备上的接口划分为全局接口、本地接口和接入接口。全局接口用于组间互联。本地接口用于组内互联。接入接口用于连接终端设备。终端设备例如可以是服务器、VM或存储设备等。网络设备上全局接口、本地接口、接入接口的比例通常为1:2:1。例如在如图1所示的蜻蜓网络中,每个网络设备具有8个接口GE1-GE8(图中未示出)。2个接口(GE1、GE2)为接入接口,4个接口(GE3、GE4、GE5、GE6)为本地接口,2个接口(GE7、GE8)为全局接口。
可选地,网络设备的接口既可以作为入接口来接收报文,也可以作为出接口来发送报文。本申请中所描述的网络设备的接口的拥塞状态,均指的是该接口作为出接口时的拥塞状态。一种实现方式下,接口的拥塞状态可以基于接口的出接口队列的队列深度确定。若某个接口的至少一个出接口队列的队列深度超出第一阈值,则判定该接口发生拥塞;若某个接口的所有出接口队列的队列深度均未超出第一阈值,则判定该接口未发生拥塞。另一种实现方式下,接口的拥塞状态也可以基于接口的带宽利用率确定。若某个接口的带宽利用率超出第二阈值,则判定该接口发生拥塞;若某个接口的带宽利用率未超出第二阈值,则判定该接口未发生拥塞。其中,接口的带宽利用率等于该接口的报文发送速率与分配给该接口的带宽的比值。本申请实施例中,可以将接口的拥塞状态分为拥塞和未拥塞这两种,或者也可以将接口的拥塞状态分为未拥塞(即轻载)、中度拥塞和重度拥塞这三种,本申请实施例对此不做限定。
在如图1所示的蜻蜓网络中,每个设备组内的多个网络设备之间通过各自的4个本地接口mesh直连。不同设备组之间分别具有5条组间互联链路。例如,设备组A与设备组B之间的5条组间互联链路分别包括:网络设备A1与网络设备B1之间的组间互联链路LAB1,网络设备A2与网络设备B2之间的组间互联链路LAB2,网络设备A3与网络设备B3之间的组间互联链路LAB3,网络设备A4与网络设备B4之间的组间互联链路LAB4,网络设备A5与网络设备B5之间的组间互联链路LAB5。设备组A与设备组C之间的5条组间互联链路分别包括:网络设备A1与网络设备C5之间的组间互联链路LAC1,网络设备A2与网络设备C4之间的组间互联链路LAC2,网络设备A3与网络设备C3之间的组间互联链路LAC3,网络设备A4与网络设备C2之间的组间互联链路LAC4,网络设备A5与网络设备C1之间的组间互联链路LAC5。设备组B与设备组C之间的5条组间互联链路分别包括:网络设备B1与网络设备C1之间的组间互联链路LBC1,网络设备B2与网络设备C2之间的组间互联链路LBC2,网络设备B3与网络设备C3之间的组间互联链路LBC3,网络设备B4与网络设备C4之间的组间互联链路LBC4,网络设备B5与网络设备C5之间的组间互联链路LBC5。
本申请实施例中,将两个设备组之间的组间最短路径划分为本地直连最短路径和组内绕行最短路径,和/或,将两个设备组之间的组间非最短路径划分为本地直连非最短路径和组内绕行非最短路径。本地直连最短路径与组内绕行最短路径的一处区别在于:本地直连最短路径不包括源设备组内的组内互联链路,组内绕行最短路径包括源设备组内的一条组内互联链路。本地直连非最短路径与组内绕行非最短路径的一处区别在于:本地直连非最短路径不包括源设备组内的组内互联链路,组内绕行非最短路径包括源设备组内的一条组内互联链路。
其中,源设备组指的是发送报文的源终端设备的接入设备(以下称为源网络设备)所在的设备组。目的设备组指的是接收报文的目的终端设备的接入设备(以下称为目的网络设备)所在的设备组。例如请继续参见图1,终端设备S1与网络设备C1连接,终端设备S2与网络设备B5连接,终端设备S3与网络设备B5连接。假设终端设备S1为源终端设备,则网络设备C1为源网络设备,设备组C为源设备组。假设终端设备S2为目的终端设备,则网络设备B5为目的网络设备,设备组B为目的设备组。
不同设备组的网络设备进行组间通信时,当源网络设备与目的设备组之间具有组间互联链路时,源网络设备可以按照优先级由高至低的顺序选用本地直连最短路径、组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径中的非拥塞路径来转发来自与源网络设备连接的终端设备的报文。当源网络设备与目的设备组之间不具有组间互联链路时,源网络设备可以按照优先级由高至低的顺序选用组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径中的非拥塞路径来转发来自与源网络设备连接的终端设备的报文。
一种实现方式中,当源网络设备与目的设备组之间存在组间互联链路,且该组间互联链路未发生拥塞时,源网络设备通过该组间互联链路发送来自源终端设备的报文。例如在如图1所示的蜻蜓网络中,终端设备S1为源终端设备,终端设备S2为目的终端设备。如果网络设备C1与网络设备B1之间的组间互联链路LBC1未发生拥塞,则网络设备C1通过组间互联链路LBC1向网络设备B1发送来自终端设备S1、目的地址为终端设备S2的报文。
本地直连最短路径包括源网络设备与目的设备组之间的组间互联链路,源网络设备通过源网络设备与目的设备组之间的组间互联链路发送来自源终端设备的报文,也即是,源网络设备通过本地直连最短路径发送来自源终端设备的报文。例如,网络设备C1与网络设备B5之间的本地直连最短路径包括网络设备C1与网络设备B1之间的组间互联链路LBC1以及网络设备B1与网络设备B5之间的组内互联链路。
组内绕行最短路径包括源网络设备与源设备组中的另一网络设备之间的组内互联链路以及该另一网络设备与目的设备组之间的组间互联链路。例如,网络设备C1与网络设备B5之间的一条组内绕行最短路径包括网络设备C1与网络设备C5之间的组内互联链路以及网络设备C5与网络设备B5之间的组间互联链路LBC5。
本地直连非最短路径包括源网络设备与除目的设备组以外的另一设备组之间的组间互联链路以及该另一设备组与目的设备组之间的一条组间互联链路。例如,网络设备C1与网络设备B5之间的本地直连非最短路径包括网络设备C1与网络设备A5之间的组间互联链路LAC5以及网络设备A5与网络设备B5之间的组间互联链路LAB5。
组内绕行非最短路径包括源网络设备与源设备组中的另一网络设备之间的组内互联链路、该另一网络设备与除目的设备组以外的另一设备组之间的组间互联链路以及该另一设备组与目的设备组之间的一条组间互联链路。例如,网络设备C1与网络设备B5之间的一条组内绕行非最短路径包括网络设备C1与网络设备C2之间的组内互联链路、网络设备C2与网络设备A4之间的组间互联链路LAC4、网络设备A4与网络设备B4之间的组间互联链路LAB4以及网络设备B4与网络设备B5之间的组内互联链路。
本申请实施例中,转发路径未发生拥塞指的是该转发路径中与源设备组关联的链路未发生拥塞。与源设备组关联的链路可以包括源设备组内的组内互联链路以及源设备组与其它设备组之间的组间互联链路。例如,若源网络设备与目的设备组之间的组间互联链路未发生拥塞,则判定本地直连最短路径未发生拥塞。若源网络设备与源设备组中的另一网络设备之间的组内互联链路未发生拥塞,并且该另一网络设备与目的设备组之间的组间互联链路也未发生拥塞,则判定经过该另一网络设备的组内绕行最短路径未发生拥塞。若源网络设备与除目的设备组以外的另一设备组之间的组间互联链路未发生拥塞,则判定经过该另一设备组的本地直连非最短路径未发生拥塞。若源网络设备与源设备组中的另一网络设备之间的组内互联链路未发生拥塞,并且该另一网络设备与除目的设备组以外的另一设备组之间的组间互联链路也未发生拥塞,则判定经过该另一网络设备以及该另一设备组的组内绕行非最短路径未发生拥塞。
本申请实施例中,通过将组间最短路径划分为本地直连最短路径和组内绕行最短路径,和/或,将组间非最短路径划分为本地直连非最短路径和组内绕行非最短路径,使得源网络设备能够在更细的粒度上进行路径选择,实现对报文转发路径的精细控制,从而能够精确控制报文转发的低时延和高吞吐。另外,源网络设备在进行路径选择时,遵循优先选用组间最短路径、组间最短路径都发生拥塞后再选用组间非最短路径的原则,并且在组间最短路径中选择转发路径时优先选用本地直连最短路径,在组间非最短路径中选择转发路径时优先选用本地直连非最短路径,一方面能够尽量降低报文转发时延,另一方面优先选用本地直连路径,源网络设备能够较好地实时感知本地拥塞情况,后续根据本地拥塞情况判断是否切换路径,可以较为准确地确定路径切换时机。
下面对本申请实施例提供的方法流程进行举例说明。
例如,图2是本申请实施例提供的一种报文转发方法的流程示意图。该方法可以应用于如图1所示的蜻蜓网络。如图2所示,该方法包括:
步骤201、第一网络设备接收与第一网络设备连接的第一终端设备发送的第一报文。
第一报文的目的地址为与第二网络设备连接的第二终端设备的IP地址,第一网络设备属于第一设备组,第二网络设备属于第二设备组。第一设备组与第二设备组之间具有多条组间互联链路。
例如在如图1所示的蜻蜓网络中,第一终端设备为终端设备S1,第二终端设备为终端设备S2,则第一网络设备为网络设备C1,第一设备组为设备组C,第二网络设备为网络设备B5,第二设备组为设备组B。
步骤202、第一网络设备判断第一网络设备与第二设备组之间是否存在组间互联链路;若第一网络设备与第二设备组之间存在第一组间互联链路,则执行步骤203;若第一网络设备与第二设备组之间不存在组间互联链路,则执行步骤205。
虽然第一设备组与第二设备组之间具有多条组间互联链路,但是第一网络设备与第二设备组之间可能存在组间互联链路,也可能不存在组间互联链路。
第一网络设备判断第一网络设备与第二设备组之间是否存在组间互联链路,也即是判断第一网络设备与第二设备组之间是否存在本地直连最短路径。
步骤203、第一网络设备判断第一组间互联链路是否发生拥塞;若第一组间互联链路未发生拥塞,则执行步骤204;若第一组间互联链路发生拥塞,则执行步骤205。
第一网络设备判断第一组间互联链路是否发生拥塞,也即是对第一网络设备与第二设备组之间的本地直连最短路径进行拥塞判断。可选地,第一网络设备根据第一网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一组间互联链路是否发生拥塞。若第一网络设备上与第二设备组连接的全局接口发生拥塞,则确定第一组间互联链路发生拥塞;若第一网络设备上与第二设备组连接的全局接口未发生拥塞,则确定第一组间互联链路未发生拥塞。
结合参考步骤201中的例子,假设网络设备C1通过全局接口GE8与网络设备B1连接。若网络设备C1的全局接口GE8发生拥塞,则确定网络设备C1与网络设备B1之间的组间互联链路LBC1发生拥塞;若网络设备C1的全局接口GE8未发生拥塞,则确定网络设备C1与网络设备B1之间的组间互联链路LBC1未发生拥塞。
步骤204、第一网络设备通过第一组间互联链路向第二网络设备发送第一报文。
第一网络设备通过第一组间互联链路向第二网络设备发送第一报文,也即是通过本地直连最短路径向第二网络设备发送第一报文。
本申请实施例中,源网络设备优先选用本地直连最短路径向目的网络设备发送报文,使报文的转发跳数尽可能地少,以实现组间通信的低时延。
步骤205、第一网络设备对第一网络设备与第二网络设备之间的组内绕行最短路径进行拥塞判断;若第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行最短路径,则执行步骤206;若第一网络设备与第二网络设备之间不存在未发生拥塞的组内绕行最短路径,则执行步骤207。
可选地,第一网络设备根据第一网络设备上与第三网络设备连接的本地接口的第一出接口队列的队列深度以及第三网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三网络设备的组内绕行最短路径是否发生拥塞。若第一网络设备上与第三网络设备连接的本地接口的第一出接口队列的队列深度超出第一阈值,和/或,第三网络设备上与第二设备组连接的全局接口发生拥塞,则确定第一网络设备与第二网络设备之间经过第三网络设备的组内绕行最短路径发生拥塞。若第一网络设备上与第三网络设备连接的本地接口的第一出接口队列的队列深度未超出第一阈值,且第三网络设备上与第二设备组连接的全局接口未发生拥塞,则确定第一网络设备与第二网络设备之间经过第三网络设备的组内绕行最短路径未发生拥塞。
其中,第一出接口队列用于转发第一网络设备中通过组内绕行最短路径转发的报文。由于第一网络设备选用组内绕行最短路径或组内绕行非最短路径时,都要通过第一设备组内的另一网络设备转发报文,而第一网络设备无论选用组内绕行最短路径还是组内绕行非最短路径,如果通过第一设备组内的同一网络设备转发报文,那么发送报文时所使用的本地接口是相同的,因此需要区分从同一本地接口发出的报文中走组内绕行最短路径的报文数量以及走组内绕行非最短路径的报文数量,以分别确定组内绕行最短路径和组内绕行非最短路径的拥塞情况。本申请实施例中,通过将本地接口的出接口队列划分为第一出接口队列和第二出接口队列。第一出接口队列用于转发第一网络设备中通过组内绕行最短路径转发的报文,第二出接口队列用于转发第一网络设备中通过组内绕行非最短路径转发的报文,分别实现基于第一出接口队列的队列深度确定组内绕行最短路径的拥塞情况,基于第二出接口队列的队列深度确定组内绕行非最短路径的拥塞情况。
可选地,第三网络设备为第一设备组中与第二设备组之间具有组间互联链路的除第一网络设备以外的任一网络设备。结合参考步骤201中的例子,第三网络设备可以是网络设备C2、网络设备C3、网络设备C4或网络设备C5。
可选地,属于同一设备组的多个网络设备之间互相通告自身的全局接口的拥塞状态。例如第一网络设备可以向第一设备组内的其它网络设备周期性或实时发送自身的全局接口的拥塞状态。第一网络设备中可以存储自身各个接口的最新拥塞状态以及第一设备组内的其它网络设备的全局接口的最新拥塞状态。例如,第一网络设备为图1中的网络设备C1,网络设备C1中所存储的各个接口在某个时刻的拥塞状态可以如表1所示。其中,“1”表示未发生拥塞,“2”表示发生拥塞。
表1
GE1 | GE2 | GE3 | GE4 | GE5 | GE6 | GE7 | GE8 | |
网络设备C1 | 1 | 1 | (1,2) | (1,1) | (2,2) | (1,1) | 1 | 1 |
网络设备C2 | / | / | / | / | / | / | 1 | 2 |
网络设备C3 | / | / | / | / | / | / | 2 | 1 |
网络设备C4 | / | / | / | / | / | / | 2 | 2 |
网络设备C5 | / | / | / | / | / | / | 1 | 1 |
参见表1,网络设备C1的本地接口GE3-6的拥塞状态(a,b),其中a表示用于转发网络设备C1中通过组内绕行最短路径转发的报文的第一出接口队列的拥塞状态,b表示用于转发网络设备C1中通过组内绕行非最短路径转发的报文的第二出接口队列的拥塞状态。
步骤206、第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行最短路径作为目标转发路径。
可选地,第一网络设备可以对第一网络设备与第二网络设备之间的所有组内绕行最短路径分别进行拥塞判断,然后从第一网络设备与第二网络设备之间未发生拥塞的组内绕行最短路径中随机选择一条作为目标转发路径。或者,第一网络设备也可以依次对第一网络设备与第二网络设备之间的组内绕行最短路径进行拥塞判断,在得到未发生拥塞的组内绕行最短路径之后停止判断,并将该未发生拥塞的组内绕行最短路径作为目标转发路径。
在如图1所示的蜻蜓网络中,网络设备C1与网络设备B5之间有4条组内绕行最短路径:网络设备C1→网络设备C2→网络设备B2→网络设备B5;网络设备C1→网络设备C3→网络设备B3→网络设备B5;网络设备C1→网络设备C4→网络设备B4→网络设备B5;网络设备C1→网络设备C5→网络设备B5。
步骤207、第一网络设备对第一网络设备与第二网络设备之间的本地直连非最短路径进行拥塞判断;若第一网络设备与第二网络设备之间存在未发生拥塞的本地直连非最短路径,则执行步骤208;若第一网络设备与第二网络设备之间不存在未发生拥塞的本地直连非最短路径,则执行步骤209。
可选地,第一网络设备根据第一网络设备上与第三设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三设备组的本地直连非最短路径是否发生拥塞。若第一网络设备上与第三设备组连接的全局接口发生拥塞,则确定第一网络设备与第二网络设备之间经过第三设备组的本地直连非最短路径发生拥塞。若第一网络设备上与第三设备组连接的全局接口未发生拥塞,则确定第一网络设备与第二网络设备之间经过第三设备组的本地直连非最短路径未发生拥塞。
可选地,第三设备组为蜻蜓网络中除第一设备组和第二设备组以外的任一设备组。结合参考步骤201中的例子,第三设备组为设备组A。假设网络设备C1通过全局接口GE7与网络设备A5连接。若网络设备C1的全局接口GE7发生拥塞,则确定网络设备C1与网络设备A5之间的组间互联链路LAC5发生拥塞,进而确定网络设备C1与网络设备B5之间的本地直连非最短路径发生拥塞;若网络设备C1的全局接口GE7未发生拥塞,则确定网络设备C1与网络设备A5之间的组间互联链路LAC5未发生拥塞,进而确定网络设备C1与网络设备B5之间的本地直连非最短路径未发生拥塞。
步骤208、第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一本地直连非最短路径作为目标转发路径。
可选地,第一网络设备可以对第一网络设备与第二网络设备之间的所有本地直连非最短路径分别进行拥塞判断,然后从第一网络设备与第二网络设备之间未发生拥塞的本地直连非最短路径中随机选择一条作为目标转发路径。或者,第一网络设备也可以依次对第一网络设备与第二网络设备之间的本地直连非最短路径进行拥塞判断,在得到未发生拥塞的本地直连非最短路径之后停止判断,并将该未发生拥塞的本地直连非最短路径作为目标转发路径。
在如图1所示的蜻蜓网络中,网络设备C1与网络设备B5之间只有一条本地直连非最短路径:网络设备C1→网络设备A5→网络设备B5。
步骤209、第一网络设备对第一网络设备与第二网络设备之间的组内绕行非最短路径进行拥塞判断;若第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行非最短路径,则执行步骤210;若第一网络设备与第二网络设备之间不存在未发生拥塞的组内绕行非最短路径,则结束报文转发流程。
可选地,第一网络设备根据第一网络设备上与第四网络设备连接的本地接口的第二出接口队列的队列深度以及第四网络设备上与第四设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第四网络设备以及第四设备组的组内绕行非最短路径是否发生拥塞。若第一网络设备上与第四网络设备连接的本地接口的第二出接口队列的队列深度超出第一阈值,和/或,第四网络设备上与第四设备组连接的全局接口发生拥塞,则确定第一网络设备与第二网络设备之间经过第四网络设备以及第四设备组的组内绕行非最短路径发生拥塞。若第一网络设备上与第四网络设备连接的本地接口的第二出接口队列的队列深度未超出第一阈值,且第四网络设备上与第四设备组连接的全局接口未发生拥塞,则确定第一网络设备与第二网络设备之间经过第四网络设备以及第四设备组的组内绕行非最短路径未发生拥塞。其中,第二出接口队列用于转发第一网络设备中通过组内绕行非最短路径转发的报文。
可选地,第四网络设备为第一设备组中与第二设备组之间具有组间互联链路的除第一网络设备以外的任一网络设备。第四网络设备与上述第三网络设备可以是同一网络设备,或者也可以是不同网络设备。第四设备组为蜻蜓网络中除第一设备组和第二设备组以外的任一设备组。第四设备组与上述第三设备组可以是同一设备组,或者也可以是不同设备组。结合参考步骤201中的例子,第三网络设备可以是网络设备C2、网络设备C3、网络设备C4或网络设备C5。第四设备组为设备组A。
步骤210、第一网络设备将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行非最短路径作为目标转发路径。
可选地,第一网络设备可以对第一网络设备与第二网络设备之间的所有组内绕行非最短路径分别进行拥塞判断,然后从第一网络设备与第二网络设备之间未发生拥塞的组内绕行非最短路径中随机选择一条作为目标转发路径。或者,第一网络设备也可以依次对第一网络设备与第二网络设备之间的组内绕行非最短路径进行拥塞判断,在得到未发生拥塞的组内绕行非最短路径之后停止判断,并将该未发生拥塞的组内绕行非最短路径作为目标转发路径。
在如图1所示的蜻蜓网络中,网络设备C1与网络设备B5之间有4条组内绕行非最短路径:网络设备C1→网络设备C2→网络设备A4→网络设备B4→网络设备B5;网络设备C1→网络设备C3→网络设备A3→网络设备B3→网络设备B5;网络设备C1→网络设备C4→网络设备A2→网络设备B2→网络设备B5;网络设备C1→网络设备C5→网络设备A1→网络设备B1→网络设备B5。
步骤211、第一网络设备通过目标转发路径向第二终端设备发送基于第一报文得到的第二报文。
可选地,当目标转发路径为组内绕行最短路径时,第一网络设备在第一报文中添加第一指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,该第一指示用于指示转发路径类型为组内绕行最短路径。或者,当目标转发路径为组内绕行非最短路径时,第一网络设备在第一报文中添加第二指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,第二指示用于指示转发路径类型为组内绕行非最短路径。
由于第一网络设备选用组内绕行最短路径或组内绕行非最短路径时,都要通过第一设备组内的另一网络设备转发报文,而无论第一网络设备选用组内绕行最短路径还是组内绕行非最短路径,如果通过第一设备组内的同一网络设备转发报文,那么这个网络设备接收报文所使用的本地接口是相同的,因此这个网络设备需要区分从本地接口接收到的报文中哪些报文走的是组内绕行最短路径,哪些报文走的是组内绕行非最短路径,以便采用相应的转发路径来转发报文。本申请实施例中,源网络设备通过在走组内绕行最短路径的报文中添加第一指示,在走组内绕行非最短路径的报文中添加第二指示,以明确指示设备组内转发报文的其它网络设备采用哪种转发路径来转发报文,这样其它网络设备可以基于报文中的指示知晓应该通过哪个全局接口转发报文,从而可以提高报文转发效率。
可选地,上述第一指示、第二指示可以是不同的差分服务代码点(differentiatedservices code point,DSCP)编码值,或者可以是不同的虚拟局域网(virtual local areanetwork,VLAN)优先级,又或者可以是不同的802.1p标签,等等。第一指示和第二指示具体可以由网络管理人员预先分配,本申请实施例对指示的类型不做限定。例如,采用VLAN优先级来指示转发路径类型时,可以用VLAN 10指示转发路径类型为组内绕行最短路径,用VLAN20指示转发路径类型为组内绕行非最短路径。
可选地,当目标转发路径为本地直连非最短路径时,第一网络设备直接通过目标转发路径向第二终端设备发送第一报文,即步骤211中的第二报文即步骤201中的第一报文。
在本申请实施例提供的报文转发方法中,通过将组间最短路径划分为本地直连最短路径和组内绕行最短路径,和/或,将组间非最短路径划分为本地直连非最短路径和组内绕行非最短路径,使得源网络设备能够在更细的粒度上进行路径选择,实现对报文转发路径的精细控制,从而能够精确控制报文转发的低时延和高吞吐。另外,源网络设备在进行路径选择时,遵循优先选用组间最短路径、组间最短路径都发生拥塞后再选用组间非最短路径的原则,并且在组间最短路径中选择转发路径时优先选用本地直连最短路径,在组间非最短路径中选择转发路径时优先选用本地直连非最短路径,一方面能够尽量降低报文转发时延,另一方面优先选用本地直连路径,源网络设备能够较好地实时感知本地拥塞情况,后续根据本地拥塞情况判断是否切换路径,可以较为准确地确定路径切换时机。
本申请实施例提供的报文转发方法的步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内。
可选地,上述步骤201至步骤211可以由第一网络设备中的转发芯片执行,也即是,由转发芯片对转发路径进行拥塞判断,并基于判断结果选择合适的转发路径来转发报文。或者,上述步骤201至步骤211也可以由第一网络设备中的转发芯片协同协处理器执行,转发芯片接收到报文后,由协处理器对转发路径进行拥塞判断,并基于判断结果选择合适的转发路径,转发芯片再基于协处理器选择的转发路径来转发报文。
本申请实施例中,蜻蜓网络中的网络设备之间基于三层转发技术实现通信。每个网络设备都需要维护路由转发表,以实现报文转发。
可选地,第一网络设备获取路由转发表,该路由转发表包括路由前缀表和多个ECMP组表。路由前缀表的每个表项包括目的IP地址与目的设备组的组索引的对应关系。目的设备组的组索引关联一个ECMP组表,该ECMP组表包括从第一网络设备到该目的设备组的每条路径分别对应的出接口,该目的设备组为对应的目的IP地址所属的终端设备的接入设备所在的设备组。实际应用中,路由前缀表的每个表项对应存储一个IP地址与一个组索引。一个表项中的IP地址为目的终端设备的IP地址(即目的IP地址),组索引为目的终端设备的接入设备所在的设备组(即目的设备组)的组索引。
例如在如图1所示的蜻蜓网络中,终端设备S2的IP地址为20.1.1.1/24,终端设备S3的IP地址为20.1.2.1/24,设备组B的组索引为100,则网络设备C1中存储的路由前缀表可以如表2所示。
表2
IP地址 | 组索引 |
20.1.1.1/24 | 100 |
20.1.2.1/24 | 100 |
… | … |
参见表2,由于终端设备S2与终端设备S3都接入设备组B,因此该路由前缀表将目的地址为终端设备S2的IP地址的报文以及目的地址为终端设备S3的IP地址的报文都索引至设备组B所关联的ECMP组表。
可选地,ECMP组表除了包括从第一网络设备到该目的设备组的每条路径分别对应的出接口以外,还可以包括各个出接口对应的本地拥塞程度和远端拥塞程度。其中,本地拥塞程度指本地出接口的拥塞程度。远端拥塞程度指经由本地出接口发出的报文在本设备组内其它网络设备对应的出接口的拥塞程度。组内绕行最短路径和组内绕行非最短路径对应有本地拥塞程度和远端拥塞程度。本地直连最短路径和本地直连非最短路径只对应有本地拥塞程度。
例如在如图1所示的蜻蜓网络中,网络设备C1通过全局接口GE7与网络设备A5连接,通过全局接口GE8与网络设备B1连接,通过本地接口GE3与网络设备C2连接,通过本地接口GE4与网络设备C3连接,通过本地接口GE5与网络设备C4连接,通过本地接口GE6与网络设备C5连接。网络设备C2通过全局接口GE7与网络设备A4连接,通过全局接口GE8与网络设备B2连接。网络设备C3通过全局接口GE7与网络设备A3连接,通过全局接口GE8与网络设备B3连接。网络设备C4通过全局接口GE7与网络设备A2连接,通过全局接口GE8与网络设备B4连接。网络设备C5通过全局接口GE7与网络设备A1连接,通过全局接口GE8与网络设备B5连接。若网络设备C1中所存储的自身各个接口的最新拥塞状态以及设备组B内的其它网络设备的全局接口的最新拥塞状态如表1所示,则网络设备C1中存储的与设备组B关联的ECMP组表可以如表3所示。
表3
其中,出接口角色“min1”对应本地直连最短路径,出接口角色“min2”对应组内绕行最短路径,出接口角色“non-min1”对应本地直连非最短路径,出接口角色“non-min2”对应组内绕行非最短路径。
本申请实施例中,网络设备采用路由前缀表结合ECMP组表的方式存储到各个终端设备的路由,采用一个ECMP组表即可存储接入同一设备组的终端设备的IP地址对应的所有转发信息,可以节约表项资源。
可选地,ECMP组表包括第一路由子表和第二路由子表。第一路由子表与第二路由子表可以关联至同一个路由前缀表,或者也可以分别关联至一个路由前缀表。第一路由子表与第二路由子表所关联的路由前缀表的表项内容通常是相同的。
第一路由子表包括从第一网络设备到目的设备组的每条路径分别对应的出接口,第一路由子表用于第一网络设备转发来自接入第一设备组的终端设备的报文。也即是,当第一网络设备位于源设备组内时,第一网络设备基于第一路由子表转发报文。
可选地,当第一网络设备通过接入接口接收到与第一网络设备连接的终端设备发送的报文后,第一网络设备可以基于第一路由子表,依次判断本地直连最短路径、组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径是否发生拥塞,直至得到非拥塞路径为止,再采用对应的出接口转发报文。当第一网络设备通过本地接口接收到第一设备组内的其它网络设备发送的、来自与该其它网络设备连接的终端设备的报文后,第一网络设备根据报文中的指示确定该报文走组内绕行最短路径还是走组内绕行非最短路径,然后采用对应的出接口转发报文。
第一路由子表可以如表3所示。网络设备C1接收到来自终端设备S1、目的地址为20.1.1.1/24(终端设备S2的IP地址)的报文后,首先基于表2索引得到表3,由于出接口角色“min1”对应的出接口GE8未发生拥塞,即本地直连最短路径未发生拥塞,因此网络设备C1直接通过接口GE8转发该报文。
第二路由子表包括从第一网络设备到目的设备组的组间最短路径对应的出接口,第二路由子表用于第一网络设备转发来自接入除第一设备组以外的其它设备组的终端设备的报文。也即是,当第一网络设备位于中间设备组或目的设备组内时,第一网络设备基于第二路由子表转发报文,即第一网络设备使用最短路径算法转发报文,可以避免出现路由环路。
可选地,当第一网络设备通过全局接口接收到来自其它设备组的报文后,第一网络设备基于第二路由子表确定对应的出接口来转发报文。例如,第二路由子表可以如表4所示。
表4
其中,表4中各个表项的含义可参考对表3的相关描述,本申请实施例在此不再赘述。
本申请实施例中,可以通过分布式路由协议或集中控制方案生成路由转发表。
第一种实现方式,网络设备之间采用分布式路由协议进行路由同步,根据统一策略配置各自生成本地路由转发表。同一设备组内的网络设备之间可以使用内部边界网关协议(interior Border Gateway Protocol,iBGP)发布路由信息,即组内互联链路运行iBGP。不同设备组的网络设备之间可以使用外部边界网关协议(external Border GatewayProtocol,eBGP)发布路由信息,即组间互联链路运行eBGP。每个设备组分别对应一个AS号。
这种实现方式下,第一网络设备获取路由转发表的过程包括:当第一网络设备接收到第一路由消息,且第一路由消息的AS-path属性仅包含一个AS号时,第一网络设备在第一路由子表和第二路由子表中分别添加基于第一路由消息得到的转发表项。当第一网络设备接收到第二路由消息,且第二路由消息的AS-path属性包含两个AS号时,第一网络设备仅在第一路由子表中添加基于第二路由消息得到的转发表项。
例如在如图1所示的蜻蜓网络中,设备组A中的网络设备A1-A5都配置有AS号100,设备组B中的网络设备B1-B5都配置有AS号101,设备组C中的网络设备C1-C5都配置有AS号102。
设备组B内的网络设备B5通过eBGP发布包含终端设备S2的IP地址(20.1.1.1/24)的路由消息,该路由消息中的AS-path属性携带有AS号101,该路由消息会发布给设备组A和设备组C中的各个网络设备。例如,网络设备C1通过eBGP接收到该路由消息后,由于该路由消息的AS-path属性仅包含一个AS号101,网络设备C1会将该路由作为本地直连最短路径,在本地路由前缀表中添加终端设备S2的IP地址与设备组B的组索引的对应关系,并在设备组B关联的ECMP组表所包含的第一路由子表和第二路由子表中分别添加相应的转发表项。
进一步地,网络设备C1在设备组C内通过iBGP发布包含终端设备S2的IP地址的路由消息。网络设备C2-C5通过iBGP接收到该路由消息后,由于该路由消息的AS-path属性仅包含一个AS号101,网络设备C2-C5会将该路由作为组内绕行最短路径,在本地路由前缀表中添加终端设备S2的IP地址与设备组B的组索引的对应关系,并在设备组B关联的ECMP组表所包含的第一路由子表和第二路由子表中分别添加相应的转发表项。
同时,网络设备C1在接收到的路由消息的AS-path属性中添加自身的AS号102,再继续通过eBGP向设备组A发布包含终端设备S2的IP地址的路由消息,该路由消息中的AS-path属性携带有AS号101和102,该路由消息会发布给设备组A中的各个网络设备。例如,网络设备A5通过eBGP接收到该路由消息后,由于该路由消息的AS-path属性包含两个AS号101和102,网络设备A5会将该路由作为本地直连非最短路径,在本地路由前缀表中添加终端设备S2的IP地址与设备组B的组索引的对应关系,并在设备组B关联的ECMP组表所包含的第一路由子表中添加相应的转发表项。
再进一步地,网络设备A5在设备组A内通过iBGP发布包含终端设备S2的IP地址的路由消息。网络设备A1-A4通过iBGP接收到该路由消息后,由于该路由消息的AS-path属性包含两个AS号101和102,网络设备A1-A4会将该路由作为组内绕行非最短路径,在本地路由前缀表中添加终端设备S2的IP地址与设备组B的组索引的对应关系,并在设备组B关联的ECMP组表所包含的第一路由子表中添加相应的转发表项。
最终,设备组A和设备组C中的各个网络设备可以得到类似表2的路由前缀表、类似表3的第一路由子表以及类似表4的第二路由子表。
第二种实现方式,通过集中控制方案生成路由转发表。蜻蜓网络中的各个网络设备由控制设备统一控制和管理,控制设备中存储有蜻蜓网络的组网拓扑以及各个网络设备连接的终端设备的IP地址等。当网络设备连接的终端设备的IP地址发生变化或网络设备的链路状态信息发生变化时,网络设备可以向控制设备上报变更后的信息,以供控制设备基于更新存储的信息。该控制设备例如可以是软件定义网络(software-definednetworking,SDN)控制器。
可选地,控制设备可以向各个网络设备发送蜻蜓网络的组网拓扑以及各个网络设备连接的终端设备的IP地址,由各个网络设备分别根据统一的路由算法自行计算到达其它网络设备连接的终端设备的转发路径,以生成对应的路由转发表。例如,第一网络设备可以根据蜻蜓网络的组网拓扑、接入蜻蜓网络的终端设备的IP地址以及终端设备的接入设备,生成路由前缀表和多个ECMP组表。
或者,控制设备可以根据蜻蜓网络的组网拓扑、接入蜻蜓网络的终端设备的IP地址以及终端设备的接入设备,生成各个网络设备对应的路由转发表,并向网络设备发送对应的路由转发表。例如,第一网络设备可以接收控制设备发送的路由转发表。
用于执行图2所示方法的第一网络设备可以是图3所示的报文转发装置300。该报文转发装置300应用于蜻蜓网络中的网络设备。该蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路。如图3所示,装置300包括:
接收模块301,用于接收与第一网络设备连接的第一终端设备发送的第一报文,第一报文的目的地址为与第二网络设备连接的第二终端设备的IP地址,第一网络设备属于第一设备组,第二网络设备属于第二设备组。
处理模块302,用于当第一网络设备与第二设备组之间存在第一组间互联链路时,确定第一组间互联链路是否发生拥塞。
发送模块303,用于当第一组间互联链路未发生拥塞时,通过第一组间互联链路向第二网络设备发送第一报文。
可选地,处理模块302,用于根据第一网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一组间互联链路是否发生拥塞。
可选地,处理模块302,还用于当第一组间互联链路发生拥塞,或者,第一网络设备与第二设备组之间不存在组间互联链路时,依次对第一网络设备与第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止。发送模块303,还用于通过目标转发路径向第二网络设备发送基于第一报文得到的第二报文。其中,组内绕行最短路径包括第一网络设备与第一设备组中的第三网络设备之间的组内互联链路以及第三网络设备与第二设备组之间的组间互联链路,本地直连非最短路径包括第一网络设备与第三设备组之间的组间互联链路以及第三设备组与第二设备组之间的一条组间互联链路,组内绕行非最短路径包括第一网络设备与第一设备组中的第四网络设备之间的组内互联链路、第四网络设备与第四设备组之间的组间互联链路以及第四设备组与第二设备组之间的一条组间互联链路。
可选地,处理模块302,用于:对第一网络设备与第二网络设备之间的组内绕行最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行最短路径时,将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行最短路径作为目标转发路径。当第一网络设备与第二网络设备之间不存在未发生拥塞的组内绕行最短路径时,对第一网络设备与第二网络设备之间的本地直连非最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的本地直连非最短路径时,将第一网络设备与第二网络设备之间未发生拥塞的任一本地直连非最短路径作为目标转发路径。当第一网络设备与第二网络设备之间不存在未发生拥塞的本地直连非最短路径时,对第一网络设备与第二网络设备之间的组内绕行非最短路径进行拥塞判断。当第一网络设备与第二网络设备之间存在未发生拥塞的组内绕行非最短路径时,将第一网络设备与第二网络设备之间未发生拥塞的任一组内绕行非最短路径作为目标转发路径。
可选地,处理模块302,用于:根据第一网络设备上与第三网络设备连接的本地接口的第一出接口队列的队列深度以及第三网络设备上与第二设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三网络设备的组内绕行最短路径是否发生拥塞,第一出接口队列用于转发第一网络设备中通过组内绕行最短路径转发的报文。
可选地,处理模块302,用于:根据第一网络设备上与第三设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第三设备组的本地直连非最短路径是否发生拥塞。
可选地,处理模块302,用于:根据第一网络设备上与第四网络设备连接的本地接口的第二出接口队列的队列深度以及第四网络设备上与第四设备组连接的全局接口的拥塞状态,确定第一网络设备与第二网络设备之间经过第四网络设备以及第四设备组的组内绕行非最短路径是否发生拥塞,第二出接口队列用于转发第一网络设备中通过组内绕行非最短路径转发的报文。
可选地,发送模块303,用于:当目标转发路径为组内绕行最短路径时,在第一报文中添加第一指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,第一指示用于指示转发路径类型为组内绕行最短路径。或者,当目标转发路径为组内绕行非最短路径时,在第一报文中添加第二指示得到第二报文,并通过目标转发路径向第二网络设备发送第二报文,第二指示用于指示转发路径类型为组内绕行非最短路径。
可选地,如图4所示,装置300还包括:获取模块304,用于获取路由转发表,路由转发表包括路由前缀表和多个ECMP组表。路由前缀表的每个表项包括目的IP地址与目的设备组的组索引的对应关系,组索引关联一个ECMP组表,ECMP组表包括从第一网络设备到该目的设备组的每条路径分别对应的出接口,目的设备组为该目的IP地址所属的终端设备的接入设备所在的设备组。
可选地,ECMP组表包括第一路由子表和第二路由子表。第一路由子表包括从第一网络设备到目的设备组的每条路径分别对应的出接口,第一路由子表用于第一网络设备转发来自接入第一设备组的终端设备的报文。第二路由子表包括从第一网络设备到目的设备组的组间最短路径对应的出接口,第二路由子表用于第一网络设备转发来自接入除第一设备组以外的其它设备组的终端设备的报文。
可选地,每个设备组分别对应一个AS号,获取模块304,用于:当第一网络设备接收到第一路由消息,且第一路由消息的AS-path属性仅包含一个AS号时,在第一路由子表和第二路由子表中分别添加基于第一路由消息得到的转发表项。当第一网络设备接收到第二路由消息,且第二路由消息的AS-path属性包含两个AS号时,仅在第一路由子表中添加基于第二路由消息得到的转发表项。
或者,获取模块304,用于:根据蜻蜓网络的组网拓扑、接入蜻蜓网络的终端设备的IP地址以及终端设备的接入设备,生成路由前缀表和多个ECMP组表。
又或者,获取模块304,用于:接收控制设备发送的路由转发表。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
用于执行图2所示方法的第一网络设备可以是图5所示的网络设备500。该网络设备500为蜻蜓网络中的网络设备。该蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路。该网络设备500可以是路由器或交换机等。如图5所示,网络设备500包括:处理器501和存储器502。
存储器502,用于存储计算机程序,所述计算机程序包括程序指令;
处理器501,用于调用所述计算机程序,实现如上述方法实施例中第一网络设备执行的动作。
可选地,网络设备500还包括通信总线503和通信接口504。
其中,处理器501包括一个或者一个以上处理核心,处理器501通过运行计算机程序,执行各种功能应用以及数据处理。
存储器502可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OS X之类的操作系统。
通信接口504可以为多个,通信接口504用于与例如终端设备或其它网络设备进行通信。例如在本申请实施例中,通信接口504用于收发报文。
存储器502与通信接口504分别通过通信总线503与处理器501连接。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现上述方法实施例中第一网络设备执行的动作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现上述方法实施例中第一网络设备执行的动作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (30)
1.一种报文转发方法,其特征在于,应用于蜻蜓网络,所述蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路,所述方法包括:
第一网络设备接收与所述第一网络设备连接的第一终端设备发送的第一报文,所述第一报文的目的地址为与第二网络设备连接的第二终端设备的互联网协议IP地址,所述第一网络设备属于第一设备组,所述第二网络设备属于第二设备组;
当所述第一网络设备与所述第二设备组之间存在第一组间互联链路,且所述第一组间互联链路未发生拥塞时,所述第一网络设备通过所述第一组间互联链路向所述第二网络设备发送所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一网络设备根据所述第一网络设备上与所述第二设备组连接的全局接口的拥塞状态,确定所述第一组间互联链路是否发生拥塞。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述第一组间互联链路发生拥塞,或者,所述第一网络设备与所述第二设备组之间不存在组间互联链路时,所述第一网络设备依次对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止;
所述第一网络设备通过所述目标转发路径向所述第二网络设备发送基于所述第一报文得到的第二报文;
其中,所述组内绕行最短路径包括所述第一网络设备与所述第一设备组中的第三网络设备之间的组内互联链路以及所述第三网络设备与所述第二设备组之间的组间互联链路,所述本地直连非最短路径包括所述第一网络设备与第三设备组之间的组间互联链路以及所述第三设备组与所述第二设备组之间的一条组间互联链路,所述组内绕行非最短路径包括所述第一网络设备与所述第一设备组中的第四网络设备之间的组内互联链路、所述第四网络设备与第四设备组之间的组间互联链路以及所述第四设备组与所述第二设备组之间的一条组间互联链路。
4.根据权利要求3所述的方法,其特征在于,所述第一网络设备依次对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止,包括:
所述第一网络设备对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的组内绕行最短路径时,所述第一网络设备将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一组内绕行最短路径作为所述目标转发路径;
当所述第一网络设备与所述第二网络设备之间不存在未发生拥塞的组内绕行最短路径时,所述第一网络设备对所述第一网络设备与所述第二网络设备之间的本地直连非最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的本地直连非最短路径时,所述第一网络设备将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一本地直连非最短路径作为所述目标转发路径;
当所述第一网络设备与所述第二网络设备之间不存在未发生拥塞的本地直连非最短路径时,所述第一网络设备对所述第一网络设备与所述第二网络设备之间的组内绕行非最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的组内绕行非最短路径时,所述第一网络设备将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一组内绕行非最短路径作为所述目标转发路径。
5.根据权利要求4所述的方法,其特征在于,所述第一网络设备对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径进行拥塞判断,包括:
所述第一网络设备根据所述第一网络设备上与所述第三网络设备连接的本地接口的第一出接口队列的队列深度以及所述第三网络设备上与所述第二设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第三网络设备的组内绕行最短路径是否发生拥塞,所述第一出接口队列用于转发所述第一网络设备中通过组内绕行最短路径转发的报文。
6.根据权利要求4所述的方法,其特征在于,所述第一网络设备对所述第一网络设备与所述第二网络设备之间的本地直连非最短路径进行拥塞判断,包括:
所述第一网络设备根据所述第一网络设备上与所述第三设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第三设备组的本地直连非最短路径是否发生拥塞。
7.根据权利要求4所述的方法,其特征在于,所述第一网络设备对所述第一网络设备与所述第二网络设备之间的组内绕行非最短路径进行拥塞判断,包括:
所述第一网络设备根据所述第一网络设备上与所述第四网络设备连接的本地接口的第二出接口队列的队列深度以及所述第四网络设备上与所述第四设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第四网络设备以及所述第四设备组的组内绕行非最短路径是否发生拥塞,所述第二出接口队列用于转发所述第一网络设备中通过组内绕行非最短路径转发的报文。
8.根据权利要求3至7任一所述的方法,其特征在于,所述第一网络设备通过所述目标转发路径向所述第二网络设备发送基于所述第一报文得到的第二报文,包括:
当所述目标转发路径为组内绕行最短路径时,所述第一网络设备在所述第一报文中添加第一指示得到第二报文,并通过所述目标转发路径向所述第二网络设备发送所述第二报文,所述第一指示用于指示转发路径类型为组内绕行最短路径;或者,
当所述目标转发路径为组内绕行非最短路径时,所述第一网络设备在所述第一报文中添加第二指示得到第二报文,并通过所述目标转发路径向所述第二网络设备发送所述第二报文,所述第二指示用于指示转发路径类型为组内绕行非最短路径。
9.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
所述第一网络设备获取路由转发表,所述路由转发表包括路由前缀表和多个等价多路径ECMP组表;
所述路由前缀表的每个表项包括目的IP地址与目的设备组的组索引的对应关系,所述组索引关联一个ECMP组表,所述ECMP组表包括从所述第一网络设备到所述目的设备组的每条路径分别对应的出接口,所述目的设备组为所述目的IP地址所属的终端设备的接入设备所在的设备组。
10.根据权利要求9所述的方法,其特征在于,所述ECMP组表包括第一路由子表和第二路由子表;
所述第一路由子表包括从所述第一网络设备到所述目的设备组的每条路径分别对应的出接口,所述第一路由子表用于所述第一网络设备转发来自接入所述第一设备组的终端设备的报文;
所述第二路由子表包括从所述第一网络设备到所述目的设备组的组间最短路径对应的出接口,所述第二路由子表用于所述第一网络设备转发来自接入除所述第一设备组以外的其它设备组的终端设备的报文。
11.根据权利要求10所述的方法,其特征在于,每个所述设备组分别对应一个自治系统AS号,所述第一网络设备获取路由转发表,包括:
当所述第一网络设备接收到第一路由消息,且所述第一路由消息的AS-path属性仅包含一个AS号时,所述第一网络设备在所述第一路由子表和所述第二路由子表中分别添加基于所述第一路由消息得到的转发表项;
当所述第一网络设备接收到第二路由消息,且所述第二路由消息的AS-path属性包含两个AS号时,所述第一网络设备仅在所述第一路由子表中添加基于所述第二路由消息得到的转发表项。
12.根据权利要求9或10所述的方法,其特征在于,所述第一网络设备获取路由转发表,包括:
所述第一网络设备根据所述蜻蜓网络的组网拓扑、接入所述蜻蜓网络的终端设备的IP地址以及所述终端设备的接入设备,生成所述路由前缀表和多个所述ECMP组表。
13.根据权利要求9或10所述的方法,其特征在于,所述第一网络设备获取路由转发表,包括:
所述第一网络设备接收控制设备发送的所述路由转发表。
14.一种报文转发装置,其特征在于,应用于蜻蜓网络中的第一网络设备,所述蜻蜓网络包括多个设备组,不同设备组之间具有多条组间互联链路,所述装置包括:
接收模块,用于接收与所述第一网络设备连接的第一终端设备发送的第一报文,所述第一报文的目的地址为与第二网络设备连接的第二终端设备的互联网协议IP地址,所述第一网络设备属于第一设备组,所述第二网络设备属于第二设备组;
处理模块,用于当所述第一网络设备与所述第二设备组之间存在第一组间互联链路时,确定所述第一组间互联链路是否发生拥塞;
发送模块,用于当所述第一组间互联链路未发生拥塞时,通过所述第一组间互联链路向所述第二网络设备发送所述第一报文。
15.根据权利要求14所述的装置,其特征在于,
所述处理模块,用于根据所述第一网络设备上与所述第二设备组连接的全局接口的拥塞状态,确定所述第一组间互联链路是否发生拥塞。
16.根据权利要求14或15所述的装置,其特征在于,
所述处理模块,还用于当所述第一组间互联链路发生拥塞,或者,所述第一网络设备与所述第二设备组之间不存在组间互联链路时,依次对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径、本地直连非最短路径以及组内绕行非最短路径进行拥塞判断,直至得到目标转发路径为止;
所述发送模块,还用于通过所述目标转发路径向所述第二网络设备发送基于所述第一报文得到的第二报文;
其中,所述组内绕行最短路径包括所述第一网络设备与所述第一设备组中的第三网络设备之间的组内互联链路以及所述第三网络设备与所述第二设备组之间的组间互联链路,所述本地直连非最短路径包括所述第一网络设备与第三设备组之间的组间互联链路以及所述第三设备组与所述第二设备组之间的一条组间互联链路,所述组内绕行非最短路径包括所述第一网络设备与所述第一设备组中的第四网络设备之间的组内互联链路、所述第四网络设备与第四设备组之间的组间互联链路以及所述第四设备组与所述第二设备组之间的一条组间互联链路。
17.根据权利要求16所述的装置,其特征在于,所述处理模块,用于:
对所述第一网络设备与所述第二网络设备之间的组内绕行最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的组内绕行最短路径时,将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一组内绕行最短路径作为所述目标转发路径;
当所述第一网络设备与所述第二网络设备之间不存在未发生拥塞的组内绕行最短路径时,对所述第一网络设备与所述第二网络设备之间的本地直连非最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的本地直连非最短路径时,将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一本地直连非最短路径作为所述目标转发路径;
当所述第一网络设备与所述第二网络设备之间不存在未发生拥塞的本地直连非最短路径时,对所述第一网络设备与所述第二网络设备之间的组内绕行非最短路径进行拥塞判断;
当所述第一网络设备与所述第二网络设备之间存在未发生拥塞的组内绕行非最短路径时,将所述第一网络设备与所述第二网络设备之间未发生拥塞的任一组内绕行非最短路径作为所述目标转发路径。
18.根据权利要求17所述的装置,其特征在于,所述处理模块,用于:
根据所述第一网络设备上与所述第三网络设备连接的本地接口的第一出接口队列的队列深度以及所述第三网络设备上与所述第二设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第三网络设备的组内绕行最短路径是否发生拥塞,所述第一出接口队列用于转发所述第一网络设备中通过组内绕行最短路径转发的报文。
19.根据权利要求17所述的装置,其特征在于,所述处理模块,用于:
根据所述第一网络设备上与所述第三设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第三设备组的本地直连非最短路径是否发生拥塞。
20.根据权利要求17所述的装置,其特征在于,所述处理模块,用于:
根据所述第一网络设备上与所述第四网络设备连接的本地接口的第二出接口队列的队列深度以及所述第四网络设备上与所述第四设备组连接的全局接口的拥塞状态,确定所述第一网络设备与所述第二网络设备之间经过所述第四网络设备以及所述第四设备组的组内绕行非最短路径是否发生拥塞,所述第二出接口队列用于转发所述第一网络设备中通过组内绕行非最短路径转发的报文。
21.根据权利要求16至20任一所述的装置,其特征在于,所述发送模块,用于:
当所述目标转发路径为组内绕行最短路径时,在所述第一报文中添加第一指示得到第二报文,并通过所述目标转发路径向所述第二网络设备发送所述第二报文,所述第一指示用于指示转发路径类型为组内绕行最短路径;或者,
当所述目标转发路径为组内绕行非最短路径时,在所述第一报文中添加第二指示得到第二报文,并通过所述目标转发路径向所述第二网络设备发送所述第二报文,所述第二指示用于指示转发路径类型为组内绕行非最短路径。
22.根据权利要求14至21任一所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取路由转发表,所述路由转发表包括路由前缀表和多个等价多路径ECMP组表;
所述路由前缀表的每个表项包括目的IP地址与目的设备组的组索引的对应关系,所述组索引关联一个ECMP组表,所述ECMP组表包括从所述第一网络设备到所述目的设备组的每条路径分别对应的出接口,所述目的设备组为所述目的IP地址所属的终端设备的接入设备所在的设备组。
23.根据权利要求22所述的装置,其特征在于,所述ECMP组表包括第一路由子表和第二路由子表;
所述第一路由子表包括从所述第一网络设备到所述目的设备组的每条路径分别对应的出接口,所述第一路由子表用于所述第一网络设备转发来自接入所述第一设备组的终端设备的报文;
所述第二路由子表包括从所述第一网络设备到所述目的设备组的组间最短路径对应的出接口,所述第二路由子表用于所述第一网络设备转发来自接入除所述第一设备组以外的其它设备组的终端设备的报文。
24.根据权利要求23所述的装置,其特征在于,每个所述设备组分别对应一个自治系统AS号,所述获取模块,用于:
当所述第一网络设备接收到第一路由消息,且所述第一路由消息的AS-path属性仅包含一个AS号时,在所述第一路由子表和所述第二路由子表中分别添加基于所述第一路由消息得到的转发表项;
当所述第一网络设备接收到第二路由消息,且所述第二路由消息的AS-path属性包含两个AS号时,仅在所述第一路由子表中添加基于所述第二路由消息得到的转发表项。
25.根据权利要求22或23所述的装置,其特征在于,所述获取模块,用于:
根据所述蜻蜓网络的组网拓扑、接入所述蜻蜓网络的终端设备的IP地址以及所述终端设备的接入设备,生成所述路由前缀表和多个所述ECMP组表。
26.根据权利要求22或23所述的装置,其特征在于,所述获取模块,用于:
接收控制设备发送的所述路由转发表。
27.一种蜻蜓网络,其特征在于,包括:多个设备组,不同设备组之间具有多条组间互联链路,所述设备组中的网络设备用于执行如权利要求1至13任一所述的报文转发方法。
28.一种网络设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如权利要求1至13任一所述的报文转发方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如权利要求1至13任一所述的报文转发方法。
30.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至13任一所述的报文转发方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142613.5A CN115914078A (zh) | 2021-09-28 | 2021-09-28 | 报文转发方法及装置、蜻蜓网络 |
EP22874272.2A EP4333380A1 (en) | 2021-09-28 | 2022-06-10 | Packet forwarding method and apparatus, and dragonfly network |
PCT/CN2022/098019 WO2023050874A1 (zh) | 2021-09-28 | 2022-06-10 | 报文转发方法及装置、蜻蜓网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142613.5A CN115914078A (zh) | 2021-09-28 | 2021-09-28 | 报文转发方法及装置、蜻蜓网络 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914078A true CN115914078A (zh) | 2023-04-04 |
Family
ID=85741142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111142613.5A Pending CN115914078A (zh) | 2021-09-28 | 2021-09-28 | 报文转发方法及装置、蜻蜓网络 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4333380A1 (zh) |
CN (1) | CN115914078A (zh) |
WO (1) | WO2023050874A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117081984A (zh) * | 2023-09-27 | 2023-11-17 | 新华三技术有限公司 | 一种路由调整方法、装置及电子设备 |
CN117155846A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 互连网络的路由方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959633B (zh) * | 2017-11-18 | 2021-04-23 | 浙江工商大学 | 一种工业实时网络中基于价格机制的多路径负载均衡方法 |
CN107896192B (zh) * | 2017-11-20 | 2020-09-25 | 电子科技大学 | 一种SDN网络中区分业务优先级的QoS控制方法 |
CN108156090A (zh) * | 2018-03-15 | 2018-06-12 | 北京邮电大学 | 基于卫星dtn网络拥塞控制最优到达率路由方法 |
US20200236052A1 (en) * | 2020-03-04 | 2020-07-23 | Arvind Srinivasan | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks |
CN111711565B (zh) * | 2020-07-01 | 2021-05-04 | 西安电子科技大学 | 面向高速互连蜻蜓+网络的多路径路由方法 |
-
2021
- 2021-09-28 CN CN202111142613.5A patent/CN115914078A/zh active Pending
-
2022
- 2022-06-10 EP EP22874272.2A patent/EP4333380A1/en active Pending
- 2022-06-10 WO PCT/CN2022/098019 patent/WO2023050874A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117081984A (zh) * | 2023-09-27 | 2023-11-17 | 新华三技术有限公司 | 一种路由调整方法、装置及电子设备 |
CN117081984B (zh) * | 2023-09-27 | 2024-03-26 | 新华三技术有限公司 | 一种路由调整方法、装置及电子设备 |
CN117155846A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 互连网络的路由方法、装置、计算机设备及存储介质 |
CN117155846B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 互连网络的路由方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023050874A1 (zh) | 2023-04-06 |
EP4333380A1 (en) | 2024-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7417825B2 (ja) | スライスベースルーティング | |
CA2882535C (en) | Control device discovery in networks having separate control and forwarding devices | |
JP3546764B2 (ja) | ネットワークに備えられた負荷分散サーバ及び負荷分散サーバを備えるノード | |
US8576721B1 (en) | Local forwarding bias in a multi-chassis router | |
US6584071B1 (en) | Routing with service level guarantees between ingress-egress points in a packet network | |
US8611251B2 (en) | Method and apparatus for the distribution of network traffic | |
US8630297B2 (en) | Method and apparatus for the distribution of network traffic | |
US8503310B2 (en) | Technique for policy conflict resolution using priority with variance | |
US7558214B2 (en) | Mechanism to improve concurrency in execution of routing computation and routing information dissemination | |
US9807035B1 (en) | Using available bandwidths of an IP fabric to intelligently distribute data | |
JP6510115B2 (ja) | 負荷分散を実現するための方法、装置、およびネットワークシステム | |
US20120033552A1 (en) | Utilizing Betweenness to Determine Forwarding State in a Routed Network | |
CN112242949A (zh) | 路由分发方法及控制器、信息路由方法及网络节点设备 | |
WO2023050874A1 (zh) | 报文转发方法及装置、蜻蜓网络 | |
JPH02149039A (ja) | マルチキャスト・メッセージ分配方式 | |
EP2675118B1 (en) | Method and device for adjusting ip network load | |
CN115150321A (zh) | 确定屏蔽备份路径 | |
Tso et al. | Baatdaat: Measurement-based flow scheduling for cloud data centers | |
CN109286563B (zh) | 一种数据传输的控制方法和装置 | |
US11070472B1 (en) | Dynamically mapping hash indices to member interfaces | |
CN111245724A (zh) | 基于虚拟交换机部署的sdn负载均衡路由方法 | |
CN113098788B (zh) | 一种路由发布的方法及装置 | |
CN114172842B (zh) | 一种数据传输处理方法、装置、设备及可读存储介质 | |
CN116074236A (zh) | 报文转发方法及装置 | |
Dave | An efficient traffic management solution in data center networking using SDN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |