CN112039795B - 一种负载分担方法、装置和网络设备 - Google Patents
一种负载分担方法、装置和网络设备 Download PDFInfo
- Publication number
- CN112039795B CN112039795B CN201910482206.5A CN201910482206A CN112039795B CN 112039795 B CN112039795 B CN 112039795B CN 201910482206 A CN201910482206 A CN 201910482206A CN 112039795 B CN112039795 B CN 112039795B
- Authority
- CN
- China
- Prior art keywords
- node
- network device
- path
- nodes
- message
- 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.)
- Active
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/24—Multipath
-
- 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/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/17—Interaction among intermediate nodes, e.g. hop by hop
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种负载分担方法、装置和网络设备,通过为不同的路径预设对应的流量分配比例,例如:将等效电阻法作为本申请实施例提供的负载分担算法,为各种可能的路径计算对应的流量分配比例,并将流量分配比例和对应的路径预设到相应的节点,这样,将进入网络设备内的流量按照预设的比例分配到该网络设备内各条路径上,而不对最短路径造成过大的带宽压力,实现了较优的负载均衡,无论对环网结构还是体网结构的网络设备,均可以降低对其内各节点之间链路带宽的需求,即,设计较小的链路带宽即可实现非阻塞交换,从而达到了对交换能力和链路带宽的设计的适当平衡。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种负载分担方法、装置和网络设备。
背景技术
随着对单个网络设备交换能力需求的日益增加,一个网络设备内集成的节点(英文:die)数目需要不断增多,而多个节点在网络设备内部形成的网络架构,需要满足非阻塞交换条件:每个节点网络侧入口的输入流量小于等于该节点网络侧入口带宽,且发往每个节点网络侧出口的输出流量小于等于该节点网络侧出口带宽。但是,网络设备中集成越多的节点,要满足非阻塞交换就需要为该网络设备内各个节点之间的链路配置较大的带宽,这对于网络设备而言较难实现,也就是说,目前的网络设备较难兼顾交换能力不断提高的需求和链路带宽增大的设计压力。
基于此,亟待提供一种方案,可以让网络设备可以集成数目较多的节点以提高交换能力,但又可以在降低对各节点之间网络带宽需求的基础上,确保该网络交换设备实现非阻塞交换。
发明内容
基于此,本申请实施例提供了一种网络设备内负载分担方法、装置和网络设备,以尽量避免在网络设备内部集成数目较多的节点时,降低对节点之间网络带宽的过高要求,实现对交换能力和链路带宽压力的兼顾。
第一方面,本申请实施例提供了一种负载分担方法,包括:网络设备内的第一节点接收第一报文和第二报文,该第一报文和第二报文在网络设备内具有相同的源节点和目的节点;该第一节点根据预设的第一流量分配比例,沿第一路径向目的节点转发第一报文;第一节点根据预设的第二流量分配比例,沿第二路径向目的节点发送所述第二报文。其中,第一流量分配比例和第二流量分配比例为基于本申请实施例提出的负载分担算法:等效电阻法确定的。需要说明的是,一种情况下,该负载分担方法可以应用于至少包括4个节点且该4个节点呈现体网结构的网络设备中,该体网结构是指该网络设备内至少有一个节点与多于2个节点直连。另一种情况下,该负载分担方法也可以应用于至少包括3个节点且该3个节点呈现环网结构的网络设备中,该环网结构是指该网络设备内的每个节点均与两个节点直连,而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
可见,通过为不同的路径预设对应的流量分配比例,例如:等效电阻法作为本申请实施例提供的负载分担算法,为各种可能的路径计算对应的流量分配比例,并将流量分配比例和对应的路径预设到相应的节点,这样,可以将流量按照预设的比例分配到各条路径上,而不对最短路径造成过大的带宽压力,实现了较优的负载均衡,无论对环网结构还是体网结构的网络设备,均可以降低对其内各节点之间链路带宽的需求,即,设计较小的链路带宽即可实现非阻塞交换,从而达到了对交换能力和链路带宽的设计的适当平衡。
在本申请中,上述等效电阻法,指的是一种负载分担算法,通过等效电阻法,确定每条路径上的流量分配比例。利用等效电阻法进行负载均衡的基本原理,描述如下:将网络设备内各网络节点组成的结构对应理解为电阻网络,将网络节点对应理解为电路节点,将网络节点之间的带宽对应理解为电路节点之间的等效电阻(其中,带宽与等效电阻的大小成反比),将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应理解到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,进而利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律等知识,求解出电流在电阻网络中的路径选择和电流分配比例结果,从而对应到网络设备内流量的路径选择和流量分配比例。
结合第一方面的一种具体实现方式,如果第一节点是源节点,且第一节点内保存的第一路径的指示信息是:用于指示第一路径从源节点到目的节点所经过的各跳节点,第二路径的指示信息是:用于指示第二路径从源节点到目的节点所经过的各跳节点;那么,在网络设备内的第一节点接收第一报文和第二报文之后,该方法还包括:第一节点将该第一路径的指示信息封装到第一报文中,而且第一节点将第二路径的指示信息封装到第二报文中。这样,目的节点相同的流量从第一节点进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
结合第一方面的另一种具体实现方式,无论第一节点时源节点还是中间节点,如果第一节点内保存的第一路径的指示信息是:用于指示第一路径从源节点到目的节点的第一节点的第一下一跳节点,第一节点内保存的第二路径的指示信息是:用于指示第二路径从源节点到目的节点的第一节点的第二下一跳节点;那么,第一节点根据预设的第一流量分配比例,沿第一路径向所述目的节点发送第一报文,可以包括:第一节点根据第一路径的指示信息,将第一报文发送至第一下一跳节点;第一节点根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文,可以包括:第一节点根据第二路径的指示信息,将第二报文发送至第二下一跳节点。这样,目的节点相同的流量从第一节点进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
需要说明的是,网络设备内的第一节点上保存有各种路径的指示信息,指示信息可以包括:用于指示该路径从源节点到目的节点所经过的各跳节点的信息,和/或,用于指示该路径从源节点到目的节点的第一节点的下一跳节点的信息;指示信息还可以是用于指示该路径从源节点到第二节点所经过的各跳节点的信息,那么,从第二节点到目的节点上,则需要保存用于指示该路径从第二节点到目的节点中该跳节点的下一跳节点的指示信息;再或者,指示信息还可以是从第一节点到第三节点上,保存用于指示该路径从第一节点到第三节点中该跳节点的下一跳节点的指示信息,那么,从第三节点到目的节点上,则需要保存用于指示该路径从第三节点到目的节点所经过的各跳节点的信息。而且,相同的第一节点上,保存的第一路径的指示信息和第二路径的指示信息可以相同,也可以不同,可以灵活配置。
可以理解的是,第一节点可以根据以下任意一种参数确定第一流量分配比例和第二流量分配比例的粒度:报文数量、报文长度。其中,报文长度可以是指报文包括的字节长度或者报文包括的单元数量。
结合第一方面的再一种具体实现方式,本申请实施例中的网络设备若呈现体网结构,则,作为一个示例,该体网结构具体可以为四面体、六面体、八面体或三棱柱。
第二方面,本申请实施例还提供了一种网络设备,该网络设备内至少四个节点,该至少四个节点包括:第一节点、第二节点、第三节点和第四节点;其中,第一节点和第二节点、第三节点以及第四节点直连;而且,该第一节点,用于接收报文,并将报文发送到第二节点、第三节点或第四节点。可见,本申请实施例通过将包括多个节点的网络设备构建为体网结构,体网结构相比相同节点的环网结构,由于其节点连接的相邻节点数量增多,即每个节点到其他节点的路径选择增多了,可以在网络设备设计时适当地平衡交换能力和链路带宽,从而克服了目前的网络设备较难兼顾交换能力不断提高的需求和链路带宽增大的设计压力的问题。
结合第二方面的具体实现方式,该至少四个节点形成体网结构,体网结构为四面体、六面体、八面体或三棱柱。
第三方面,本申请实施例还提供了一种网络设备,包括:第一节点和第二节点;其中,第一节点,用于接收第一报文和第二报文,第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点,该目的节点为第二节点;该第一节点,还用于根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;该第一节点,还用于根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文。需要说明的是,一种情况下,该网络设备可以是至少包括4个节点且该4个节点呈现体网结构的网络设备,该体网结构是指该网络设备内至少有一个节点与多于2个节点直连。另一种情况下,该网络设备也可以是至少包括3个节点且该3个节点呈现环网结构的网络设备,该环网结构是指该网络设备内的每个节点均与两个节点直连,而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
结合第三方面的一种具体实现方式,若该第一节点为源节点,则,该第一节点,还用于:在接收第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。这样,目的节点相同的流量从第一节点进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
结合第三方面的另一种具体实现方式,所述第一节点还可以具体用于:根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。这样,目的节点相同的流量从第一节点进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
可以理解的是,第一流量分配比例和第二流量分配比例为基于等效电阻法确定的。
可以理解的是,第一节点可以根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:报文数量、报文长度。
结合第三方面的再一种具体实现方式,若网络设备内包括的多个节点形成体网结构,则该体网结构可以为四面体、六面体、八面体或三棱柱。
需要说明的是,第三方面提供的网络设备,对应于第一方面提供的负载分担方法,故第三方面提供的网络设备的各种可能的实现方式以及达到的技术效果,可以参照前述第一方面提供的负载分担方法的介绍。
第四方面,本申请实施例提供了一种网络设备,包括:接收单元和发送单元。其中,接收单元,用于在第一节点处接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;发送单元,用于根据预设的第一流量分配比例,沿第一路径,由第一节点向所述目的节点转发所述第一报文,且根据预设的第二流量分配比例,沿第二路径,由第一节点向所述目的节点发送所述第二报文。需要说明的是,一种情况下,该网络设备可以是至少包括4个节点且该4个节点呈现体网结构的网络设备,该体网结构是指该网络设备内至少有一个节点与多于2个节点直连。另一种情况下,该网络设备也可以是至少包括3个节点且该3个节点呈现环网结构的网络设备,该环网结构是指该网络设备内的每个节点均与两个节点直连,而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
结合第四方面的一种具体实现方式,所述第一节点为所述源节点,所述网络设备还包括:处理单元。该处理单元,用于在所述第一节点接收第一报文之后,将第一路径的指示信息封装到第一报文中,其中,该第一路径的指示信息用于指示第一路径从源节点到目的节点所经过的各跳节点。这样,目的节点相同的流量从第一节点进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
结合第四方面的另一种具体实现方式,发送单元,具体用于:根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。这样,目的节点相同的流量从第一节点进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
可以理解的是,第一流量分配比例和第二流量分配比例为基于等效电阻法确定的。
可以理解的是,第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:报文数量、报文长度。
结合第四方面的再一种具体实现方式,该网络设备内包括的多个节点形成体网结构。该体网结构具体可以为四面体、六面体、八面体或三棱柱。
可以理解的是,第四方面提供的网络,对应于第一方面提供的负载分担方法,故第四方面提供的负载分担装置的各种可能的实现方式以及达到的技术效果,可以参照前述第一方面提供的负载分担方法的介绍。
第五方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器。其中,存储器,用于存储程序代码;处理器,用于运行该程序代码中的指令,使得该网络设备执行前述第一方面中任意一种实现方式所述的负载分担方法。
第六方面,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面中任意一种实现方式所述的负载分担方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行前述第一方面中任意一种实现方式所述的负载分担方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一网络设备的结构示意图;
图2a为本申请实施例中多网络设备组成的环网系统200的结构示意图;
图2b为本申请实施例中网络设备250的结构示意图;
图3a为本申请实施例中一种4节点的网络设备300的结构示意图;
图3b为本申请实施例中网络设备300对应电阻网络的结构示意图;
图4为本申请实施例中一种6节点的网络设备400的结构示意图;
图5为本申请实施例中另一种6节点的网络设备500的结构示意图;
图6为本申请实施例中再一种6节点的网络设备600的结构示意图;
图7为本申请实施例中一种8节点的网络设备700的结构示意图;
图8为本申请实施例中另一种8节点的网络设备800的结构示意图;
图9为本申请实施例中一种包括3个电路节点的电阻网络的结构示意图;
图10为本申请实施例中运用等效电阻法进行负载分担的流程示意图;
图11为本申请实施例中一种网络设备400对应的电阻网络1100的结构示意图;
图12为本申请实施例中一种负载分担方法的流程示意图;
图13为本申请实施例中一种负载分担方法的一实现方式的流程示意图;
图14为本申请实施例中一种负载分担方法的另一实现方式的流程示意图;
图15为本申请实施例中一种负载分担方法的再一实现方式的流程示意图;
图16为本申请实施例中一种6节点环网结构的网络设备1600的结构示意图;
图17为本申请实施例中一种4节点环网结构的网络设备1700的结构示意图;
图18为本申请实施例中一种负载分担方法的流程示意图;
图19为本申请实施例中一种网络设备的结构示意图;
图20为本申请实施例中另一种网络设备的结构示意图;
图21为本申请实施例中再一种网络设备的结构示意图。
具体实施方式
随着数据量的暴增,对网络设备例如网络交换设备而言,需要其交换能力不断提高。网络设备的交换能力,与该网络设备中封装的节点(英文:die,也称作晶粒)的数量相关,即,网络设备中封装的节点越多,该网络设备就可以提供越强的交换能力。对于网络设备的内部结构,如图1所示,1个网络设备内包括1个交换芯片,1个交换芯片内封装至少1个节点,需要说明的是,本申请实施例中提及的1个节点代表1个die,即,半导体工艺中的一个整片硅片或晶元里面的一个基本划片单元。
对于网络设备的网络侧端口数量需求不断增多,即,网络设备需要能够提供越来越高的交换能力。目前,为提高网络设备交换能力采用的方式,例如:如图2a所示,可以将4个图1所示的网络设备210~240通过连接组成一个环网系统200,该环网系统可以被视作一个网络设备使用;其中,网络设备210~240均可以包括一个或者两个交换芯片,每个交换芯片内也可以包括1个或者两个节点。又例如:如图2b所示,还可以在单个网络设备内封装多个节点,如:在一个网络设备250内封装8个节点251~258,这8个节点在网络设备250内呈现环网结构,即,每个节点有且仅有两个相邻节点,而且这8个节点可以分别被封装在该网络设备250内的一个或多个交换芯片内。通过上述两种方式可以增加网络设备包括的节点数量,使得网络侧端口数量增多,从而提高该网络设备的交换能力。
但是,在设计网络设备时,除了考虑该网络设备的交换能力,还需要考虑该网络设备的其他指标,例如:网络设备在非阻塞交换时该网络设备内各节点的交换侧加速比、时延等。可以理解的是,网络设备满足非阻塞交换的条件可以包括:每个节点网络侧入口的输入流量小于等于该节点网络侧入口带宽,且发往每个节点网络侧出口的输出流量小于等于该节点网络侧出口带宽。而满足该非阻塞交换条件下,网络交换设备内各节点一般按照最短路径优先算法进行负载分担。如此,该网络设备中各节点均计算出对应的交换侧加速比,并将各节点对应的交换侧加速比中选出最大的交换侧加速比,作为设计该网络设备在各节点之间链路的交换侧带宽的依据。其中,节点的交换侧加速比=该节点和与该节点直连的所有相邻节点之间在交换侧的链路带宽之和/该节点的网络侧带宽,以图2b示出的网络设备250中的节点251为例,节点251的交换侧加速比=(节点251和节点252之间的带宽+节点251和节点258之间的带宽)/节点251的网络侧带宽。
也就是说,在网络设备的交换能力需求高到一定程度时,该网络设备内需要封装较多的节点;那么,为了确保该网络设备内各节点都可以进行非阻塞交换,该网络设备内各节点的交换侧加速比需要设置的较大,且随着网络设备中节点数量的增多还需要增大;而随着交换侧加速比的增大,需要将网络设备内各节点之间链路的带宽设计的较大,难以实现。
基于此,在交换能力需求仍然不断增大的情况下,为了尽可能的在较低链路带宽设计下可以确保网络设备实现非阻塞交换,本申请实施例提供了一种网络设备内的负载分担方法,将等效电阻法利用到本申请实施例提及的各种网络设备中内节点之间的负载分担中,作为本申请实施例提供的负载分担算法,为各种可能的路径计算对应的流量分配比例,并将流量分配比例和对应的路径预设到相应的节点,确保在该网络设备中各条路径上转发的流量符合预设的流量分配比例,这样,相比采用最短路径优先算法在网络设备内进行负载分担,采用等效电阻法的负载分担算法可以将流量按照预设的比例分配到各条路径上,而不对最短路径造成过大的带宽压力,实现了较优的负载均衡,无论对环网结构还是体网结构的网络设备,可以降低对其内各节点之间链路带宽的需求,即,可以设计较小的链路带宽即可实现非阻塞交换,从而实现了对交换能力和链路带宽的设计的适当平衡。
而且,为了克服目前的网络设备较难兼顾交换能力不断提高的需求和链路带宽增大的设计压力的问题,本申请实施例还提供了一种内部多个节点呈现体网结构的网络设备,体网结构相比相同节点的环网结构,由于其节点连接的相邻节点数量增多,即每个节点到其他节点的路径选择增多了,可以在网络设备设计时适当地平衡交换能力和链路带宽。
需要说明的是,对于网络设备内节点呈现的各种网络结构,在不同的负载分担算法(包括:最短路径优先算法、等效电阻法)下,网络设备的交换侧加速比的具体值、以及交换侧加速比和网络设备包括节点数量的关系,可以参见后续介绍完本申请各实施例后的效果对比部分的表18以及相关描述。
举例来说,本申请实施例的场景之一,可以是应用到如图3a所示的网络设备300中,该网络设备300中包括:节点301、节点302、节点303和节点304共4个节点,且每个节点和其他3个节点分别相连,4个节点形成四面体的体网结构。其中,节点301、节点302、节点303和节点304均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点301、节点302、节点303和节点304也分别对应3组交换侧端口,用于将4个节点之间在交换侧进行互连。
可以理解的是,对于网络设备中的节点,通过其对应的网络侧端口与外部设备连接。对于报文(或流量)在网络设备内转发的路径,可以是指报文从外部设备进入该网络设备开始至该报文从该网络设备发送至另一外部设备的过程中,在该网络设备内所经过的节点构成的路径。其中,报文从外部设备进入该网络设备时经过网络侧端口对应的节点,称为源节点;报文从该网络设备发出时经过网络侧端口对应的节点,称为目的节点;报文在该网络设备内部发送的过程中,所经过的源节点和目的节点之间的节点,称为中间节点。需要说明的是,一个单播报文在一个网络设备内传输,可能有1条或者多条路径可以选择,但是,有且仅有1个源节点,有且仅有1个目的节点,可能有0个、1个或者多个中间节点。
假设网络设备300内节点302对应的网络侧端口b从网络侧接收到带宽为1.0的流量,该流量包括4个报文:报文1~报文4,从节点301对应的网络侧端口a出该网络设备300,即,源节点为节点302,目的节点为节点301。此处,1.0泛指网络带宽,具体可以视作指代400Gbps(其中,Gbps位交换带宽单位,1Gbps表示每秒1000兆位)、800Gbps等,带宽1.0类似将任意具体的带宽看做1份带宽,方便后续进行流量分配比例的计算以及流量的分配。
作为一个示例,可以通过等效电阻法这一负载分担算法计算出节点302作为源节点、节点301作为目的节点时各种路径选项和对应的流量分配比例。
可以理解的是,假设网络设备300中各节点之间的链路带宽相等,首先,将网络设备300等效为如图3b所示的电阻网络,具体包括:将节点302等效为输入电路节点302,将节点301等效为输出电路节点301,将节点303和节点304等效为电路节点303和电路节点304;在网络设备300内各节点之间链路上设置阻值相等的等效电阻R。接着,对于图3b的电阻网络,根据基尔霍夫电压定律和基尔霍夫电流定律,将1.0的电流从输入电路节点302输入,从输出电路节点301输出,计算流过各个等效电阻R的电流,具体可以通过求解下述方程组求得上述表1中的流量分配比例:
上述方程组中,Iij表示电阻节点30i到电阻节点30j的路径上流过等效电阻R的电流,i,j=1,2,3,4。求解上述方程组,可以得到I21=1/2,I23=I24=I31=I41=1/4,I43=0。最后,可以将电阻节点30i到电阻节点30j的路径上流过等效电阻R的电流Iij,对应到网络300中节点30i到节点30j的路径上,作为该路径对应的流量分配比例。得到如下表1所示的节点302->节点301的路径选项及流量分配比例的对应关系表,该表1或者与表1内容实质相同的信息被存储在源节点302上。详细内容可以参见图10所示的实施例的相关描述。
表1节点302->节点301的路径选项及流量分配比例的对应关系表
参见表1,对于接收到的4个报文,源节点302可以为4个报文中的1/2,即2条报文,如:报文1和报文2确定路径为节点302->节点301,那么,节点302可以直接经过交换侧端口发送到节点301,节点301通过其网络侧端口a发送至外部设备;源节点302还可以为接收到的4个报文中的1/4,即1条报文,如:报文3确定路径为节点302->节点303->节点301,那么,节点302可以将报文3从其交换侧端口发送至节点303,节点303将该报文发送到节点301,节点301通过其网络侧端口a发送至外部设备;源节点302还可以为接收到的4个报文中的1/4,即1条报文,如:报文4确定路径为节点302->节点304->节点301,那么,节点302可以将报文4从其交换侧端口发送至节点304,节点304将该报文发送到节点301,节点301通过其网络侧端口a发送至外部设备;如此,完成将报文1~报文4从节点302对应的网络侧端口b接收并从节点301对应的网络侧端口a转出。
作为另一个示例,通过等效电阻法计算出的节点302作为源节点、节点301作为目的节点时各种可能的下一跳和对应的流量分配比例,还可以如下表2~表4所示,该表2或者与表2内容实质相同的信息被存储在源节点302上,该表3或者与表3内容实质相同的信息被存储在节点303上,该表4或者与表4内容实质相同的信息被存储在源节点304上。
表2节点302上维护的(302->301)路径选项及流量分配比例对应关系表
表3节点303上维护的(302->301)路径选项及流量分配比例对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(302,301) | 301 | 1 |
表4节点304上维护的(302->301)路径选项及流量分配比例对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(302,301) | 301 | 1 |
参见表2,对于接收到的4个报文,源节点302可以为4个报文中的1/2,即2条报文,如:报文1和报文2确定下一跳节点为节点301,那么,节点302可以直接经过交换侧端口发送到节点301,节点301通过其网络侧端口a发送至外部设备。源节点302还可以为接收到的4个报文中的1/4,即1条报文,如:报文3确定下一跳节点为节点303,那么,节点302可以将报文3从其交换侧端口发送至节点303;此时,节点303参见表3,确定源节点302到目的节点301的报文3到达该节点303后,下一跳节点只可以是节点301,节点303将该报文发送到节点301,节点301通过其网络侧端口a发送至外部设备。同理,源节点302还可以为接收到的4个报文中的1/4,即1条报文,如:报文4确定下一跳节点为节点304,那么,节点302可以将报文4从其交换侧端口发送至节点304;此时,节点304参见表4,确定源节点302到目的节点301的报文3到达该节点304后,下一跳节点只可以是节点301,节点304将该报文发送到节点301,节点301通过其网络侧端口a发送至外部设备;如此,也可以完成将报文1~报文4从节点302对应的网络侧端口b接收并从节点301对应的网络侧端口a转出。
需要说明的是,上述网络设备300具体可以是网络交换设备,例如:路由器或者交换机等具有报文转发功能的网络设备;节点301~节点301具体可以集成在网络设备300内的一个或多个交换芯片上的晶粒(英文:die)。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中一种负载分担方法、装置及网络设备的具体实现方式。
首先,结合附图,对本申请实施例提供的网络设备进行具体介绍。
为了克服网络设备内的多个节点采用环网结构连接,每个节点有且仅有两个相邻节点,导致各节点之间进行报文转发时可选择的路径较少,对各节点之间的链路的带宽压力较大的问题,本申请实施例提供了一种体网结构的网络设备,即,将网络设备内的多个节点采用体网结构连接,这样,增加了网络设备内节点之间的路径数量,不仅降低了对网络设备内部各节点之间的链路上带宽的设计需求,而且可以通过多种路径的负载分担降低报文在网络设备内转发的时延。
作为一个示例,本申请实施例提供了一种包括4个节点的网络设备,该网络设备内4个节点的网络结构具体可以为四面体。参见图3a,示出了该网络设备300的结构示意图,该网络设备300具体包括:节点301、节点302、节点303和节点304,每个节点与其他三个节点都相连。其中,节点301、节点302、节点303和节点304均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点301、节点302、节点303和节点304也分别对应3组交换侧端口,用于将4个节点之间在交换侧进行互连。
具体实现时,节点301通过其对应的3组交换侧端口,分别与节点302、节点303和节点304连接;节点302通过其对应的3组交换侧端口分别与节点301、节点303和节点304连接;节点303通过其对应的3组交换侧端口分别与节点301、节点302和节点304连接;节点304通过其对应的3组交换侧端口分别与节点301、节点302和节点303连接。
需要说明的是,任意两个节点之间的互连的链路带宽可以相等,也可以不等,每个节点的网络侧带宽可以相等,也可以不等,可以根据该网络设备的具体需求进行相应的设计,在本申请实施例中不作具体限定。但是,在下述实施例中,为了方便描述和理解,各种结构的网络设备均以两个节点之间的互连的链路带宽相等,且每个节点的网络侧带宽相等为例进行介绍。
需要说明的是,一种情况下,节点301、节点302、节点303和节点304可以封装于网络设备300内的一个交换芯片中;另一种情况下,节点301、节点302、节点303和节点304也可以被封装在网络设备300内的两个交换芯片中,每个交换芯片中可以分别包括2个节点,或者,一个交换芯片内包括1个节点而另一个交换芯片内包括3个节点;再一种情况下,节点301、节点302、节点303和节点304也可以被封装在网络设备300内的三个交换芯片中,其中两个交换芯片内分别包括1个节点而另一个交换芯片内包括2个节点;又一种情况下,节点301、节点302、节点303和节点304也可以被封装在网络设备300内的四个交换芯片中,每个交换芯片内分别只包括1个节点。
作为另一个示例,本申请实施例还提供了一种包括6个节点的网络设备,该网络设备内各节点的网络结构具体可以为八面体,也可以为三棱柱,还可以是全连接结构的体网结构。
参见图4,示出了网络设备内各节点的网络结构为八面体时,该网络设备400的结构示意图,该网络设备400具体包括:节点401、节点402、节点403、节点404、节点405和节点406,每个节点与其他五个节点中的四个节点都相连。其中,节点401、节点402、节点403、节点404、节点405和节点406均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点401、节点402、节点403、节点404、节点405和节点406也分别对应4组交换侧端口,用于与其他5个节点中的4个节点互连。
具体实现时,节点401通过其对应的4组交换侧端口分别与节点402、节点403、节点404和节点405连接;节点402通过其对应的4组交换侧端口分别与节点401、节点403、节点406和节点405连接;节点403通过其对应的4组交换侧端口分别与节点401、节点402、节点406和节点404连接;节点404通过其对应的4组交换侧端口分别与节点401、节点403、节点406和节点405连接;节点405通过其对应的4组交换侧端口分别与节点401、节点402、节点406和节点404连接;节点406通过其对应的4组交换侧端口分别与节点402、节点403、节点404和节点405连接。
参见图5,示出了网络设备内各节点的网络结构为三棱柱时,该网络设备500的结构示意图,该网络设备500具体包括:节点501、节点502、节点503、节点504、节点505和节点506,每个节点与其他五个节点中的三个节点都相连。其中,节点501、节点502、节点503、节点504、节点505和节点506均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点501、节点502、节点503、节点504、节点505和节点506也分别对应3组交换侧端口,用于与其他5个节点中的3个节点互连。
具体实现时,节点501通过其对应的3组交换侧端口分别与节点502、节点503和节点504连接;节点502通过其对应的3组交换侧端口分别与节点501、节点503和节点505连接;节点503通过其对应的3组交换侧端口分别与节点501、节点502和节点506连接;节点504通过其对应的3组交换侧端口分别与节点501、节点506和节点505连接;节点505通过其对应的3组交换侧端口分别与节点502、节点506和节点504连接;节点506通过其对应的3组交换侧端口分别与节点503、节点504和节点505连接。
参见图6,示出了网络设备内各节点的网络结构为全连接的体网结构时,该网络设备600的结构示意图,该网络设备600可以是将图4中对角节点相连,也可以将图5中的对角节点相连,总之,网络设备600中具体包括:节点601、节点602、节点603、节点604、节点605和节点606,每个节点与其他五个节点都相连。其中,节点601、节点602、节点603、节点604、节点605和节点606均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点601、节点602、节点603、节点604、节点605和节点606也分别对应5组交换侧端口,用于与其他5个节点互连。
具体实现时,节点601通过其对应的5组交换侧端口分别与节点602、节点603、节点604、节点605和节点606连接;节点602通过其对应的5组交换侧端口分别与节点601、节点603、节点604、节点605和节点606连接;节点603通过其对应的5组交换侧端口分别与节点601、节点602、节点604、节点605和节点606连接;节点604通过其对应的5组交换侧端口分别与节点601、节点602、节点603、节点605和节点606连接;节点605通过其对应的5组交换侧端口分别与节点601、节点602、节点603、节点604和节点606连接;节点606通过其对应的5组交换侧端口分别与节点601、节点602、节点603、节点604和节点605连接。
作为再一个示例,本申请实施例还提供了一种包括8个节点的网络设备,该网络设备内各节点的网络结构具体可以为六面体,也可以是全连接结构的体网结构。
参见图7,示出了网络设备内各节点的网络结构为正方体时,该网络设备700的结构示意图,该网络设备700具体包括:节点701、节点702、节点703、节点704、节点705、节点706、节点707和节点708,每个节点与其他七个节点中的三个节点都相连。其中,节点701、节点702、节点703、节点704、节点705、节点706、节点707和节点708均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点701、节点702、节点703、节点704、节点705、节点706、节点707和节点708也分别对应3组交换侧端口,用于与其他7个节点中的3个节点互连。
具体实现时,节点701通过其对应的3组交换侧端口分别与节点702、节点704和节点705连接;节点702通过其对应的3组交换侧端口分别与节点701、节点703和节点706连接;节点703通过其对应的3组交换侧端口分别与节点702、节点704和节点707连接;节点704通过其对应的3组交换侧端口分别与节点701、节点703和节点708连接;节点705通过其对应的3组交换侧端口分别与节点701、节点706和节点708连接;节点706通过其对应的3组交换侧端口分别与节点702、节点705和节点707连接;节点707通过其对应的3组交换侧端口分别与节点703、节点706和节点708连接;节点708通过其对应的3组交换侧端口分别与节点704、节点705和节点707连接。
参见图8,网络设备内各节点的网络结构为全连接的体网结构时,该网络设备800的结构示意图,该网络设备800可以是将图7中对角节点相连,该网络设备800具体包括:节点801、节点802、节点803、节点804、节点805、节点806、节点807和节点808,每个节点与其他七个节点都相连。其中,节点801、节点802、节点803、节点804、节点805、节点806、节点807和节点808均对应1组网络侧端口,用于连接到外部其他网络设备的网络侧端口上;节点801、节点802、节点803、节点804、节点805、节点806、节点807和节点808也分别对应7组交换侧端口,用于与其他7个节点互连。
具体实现时,节点801通过其对应的7组交换侧端口分别与节点802、节点803、节点804、节点805、节点806、节点807和节点808连接;节点802通过其对应的7组交换侧端口分别与节点801、节点803、节点804、节点805、节点806、节点807和节点808连接;节点803通过其对应的7组交换侧端口分别与节点801、节点802、节点804、节点805、节点806、节点807和节点808连接;节点804通过其对应的7组交换侧端口分别与节点801、节点802、节点803、节点805、节点806、节点807和节点808连接;节点805通过其对应的7组交换侧端口分别与节点801、节点802、节点803、节点804、节点806、节点807和节点808连接;节点806通过其对应的7组交换侧端口分别与节点801、节点802、节点803、节点804、节点805、节点807和节点808连接;节点807通过其对应的7组交换侧端口分别与节点801、节点802、节点803、节点804、节点805、节点806和节点808连接;节点808通过其对应的7组交换侧端口分别与节点801、节点802、节点803、节点804、节点805、节点806和节点807连接。
需要说明的是,上述实施例提供的体网结构的网络设备,仅仅是示例性的网络设备,本申请实施例提供的网络设备也可以包括5个节点、7个节点、9个节点、10个节点、……的组成的任何形式的体网结构,该体网结构可以是对称的,也可以是非对称,在本申请实施例中不作具体限定。
可以理解的是,本申请实施例提供的体网结构的网络设备,相比包括多个节点的环网结构,通过增加包括相同数量节点的网络设备中各节点与其他节点的链路,丰富了网络设备内各节点之间的路径,在增多网络设备内部节点数量以提高该网络设备的交换能力的基础上,不仅可以降低对网络设备内部各节点之间的链路上带宽的设计需求,而且可以通过多条可选路径上进行负载分担降低报文在网络设备内转发的时延。
在介绍完本申请实施例提供几种内部节点呈体网结构的网络设备后,下面结合附图,对本申请实施例提供的将等效电阻法运用于网络设备内的负载分担进行具体介绍。
为了克服采用最短路径优先算法进行负载分担时,报文在网络设备内部各节点转发只选择最短路径,从而一些路径上流量过大,而其他路径上流量很小甚至可能出现长期空闲,导致流量在网络设备中无法实现均衡转发;而且,如果设计包括较多节点的网络设备时,该最短路径优先算法无法充分将流量分配到多条路径上,可能需要将多节点之间的链路带宽设计的较大,不利于包括多节点的网络设备的链路带宽的设计实现。基于此,本申请实施例提出利用等效电阻法进行网络设备内部各节点之间的负载分担。
可以理解的是,在介绍将等效电阻法运用于网络设备内的负载分担之前,先对物理学/基础电路技术中的基尔霍夫电压定律/电流定律等电路知识进行简要说明。
参见图9,示出了一个电阻网络的结构示意图,该电阻网络中包括电路节点901、电路节点902和电路节点903,每个电路节点采用圆圈表示,是为了便于将电路节点和网络设备中的节点进行对应,这些圆圈并不表示任何的电流模块。其中,任意两个电路节点之间包括一个阻值相等的等效电阻R。假设电路节点902接高电压,电路节点901接低电压,那么,一个大小为1.0的电流就可以从电路节点902流向电路节点901。需要说明的是,本申请实施例只是将物理学中电流在电阻网络中选择路径并按照基于每条路径上的电阻分流的原理应用到负载分担中,并不关心具体的电流大小,该1.0的电流仅用于后续电流分配比例的表示,具体可以是10安培或者100安培或者其他任何电流值。
参见图9所示的电阻网络,可以基于物理学/基础电路的知识,分析计算流经每个等效电阻的电流。具体实现时,可以根据基尔霍夫电流定律:电路中任何一个电路节点的输入电流之和等于该电路节点的输出电流之和,针对电路节点902列出下述等式(1),针对电路节点903列出下述等式(2):
I23+I21=Iin=1.0……(1)
I23=I31 ……(2)
还可以根据基尔霍夫电压定律:电路中任何两个电路节点之间多条路径的上的电压下降相等,针对电路节点902到电路节点901的两条路径可以列出下述等式(3):
R*I23+R*I31=R*I21 (3)
基于上述等式(1)、(2)和(3),可以计算出经过3个电阻R的电流的大小:I23=1/3,I31=1/3,I21=2/3。可以理解的是,该电路大小1/3、2/3也可以视作电流流过各个等效电阻的比例,例如,有3份电流从电路节点902流入该电阻网络,那么,有2份从电路节点902直接流向电路节点901,有1份从电路节点902经过电路节点903流向电路节点901。
需要说明的是,无论该电阻网络变得如何复杂,均可以根据物理学/基础电路技术中的基尔霍夫电压、电流定律,列出等式组,计算出电流在该电阻网络中流经每个等效电阻的电流(或者比例)。
将上述物理学/基础电路技术中的基尔霍夫电压定律/电流定律等电路知识应用于网络设备内进行负载分担,实质上可以视作:将网络设备内节点之间的带宽体现在电阻网络中等效电阻,利用计算出的流过每个等效电阻的电流大小的比例关系体现网络设备内各节点之间进行负载分担时的流量分配比例。
具体实现时,可以参见图10所示的流程示意图。运用等效电阻法进行负载分担具体可以包括下述步骤1001~步骤1003:
步骤1001,将该网络设备等效为一个电阻网络。
具体实现时,将网络设备等效为一个电阻网络,具体可以包括:S11,确定网络设备内的源节点和目的节点,将该网络设备内的源节点作为输入电路节点,将目的节点作为输出电路节点;S12,将网络设备内的各节点均等效为一个电路节点;S13,根据网络设备内各节点之间链路的带宽,确定电阻网络中对应路径上的等效电阻,并在电阻网络中各电路节点之间设置对应的等效电阻。
可以理解的是,等效电阻的大小反比于链路的带宽,即,当两个节点之间链路的带宽较大时,在这两个节点对应的电路节点之间需要设置阻值较小的等效电阻,反之,当两个节点之间链路的带宽较小时,在这两个节点对应的电路节点之间需要设置阻值较大的等效电阻。一种情况下,若网络设备内各节点之间链路的带宽均相同,则S13中确定并设置的等效电阻的阻值都相同;另一种情况下,若存在两个节点之间链路的带宽不相等的情况,可以根据各节点之间链路的带宽比例,在电阻网络中对应路径上设置阻值不同的等效电阻,相应的等效电阻的阻值比例与带宽比例成反比。
例如:以图4所示的网络设备400为例,假设各节点之间链路的带宽均相等,那么,将该网络设备400等效为如图11所示的电阻网络1100的过程具体可以包括:第一步,确定网络设备400内的源节点402和目的节点401,将该网络设备内的源节点402作为输入电路节点1102,将目的节点401作为输出电路节点1101;第二步,将网络设备400内的各节点403~406均等效为一个电路节点1103~1106;第三步,由于网络设备400内各节点之间链路的带宽相等,故,并在电阻网络1100中各电路节点之间设置阻值相等的等效电阻R。
步骤1002,将预设电流从电阻网络中的输入电路节点输入,从输出电路节点输出,计算流过各个等效电阻的电流。
例如:以图4所示的网络设备400为例,可以将1.0的电流从电阻网络1100的输入电阻节点1102输入,并从输出电阻节点1101输出,根据基尔霍夫电压、电流定律,计算流经每个等效电阻R的电流,具体可以参见如图11中示出的12个电流值。
步骤1003,基于流过各个等效电阻的电流,确定从源节点到目的节点的各条路径上对应的流量分配比例。
可以理解的是,由于在将网络设备等效为电阻网络时,根据网络设备内各节点之间链路的带宽设置对应的电阻网络的电路节点之间的等效电阻的阻值大小,而且等效电阻的阻值大小反比于链路的带宽,那么,当两个节点之间链路的带宽较大时,在这两个节点对应的电路节点之间需要设置阻值较小的等效电阻,那么,该阻值较小的等效电阻上流过的电路反而较大,即,可以确定带宽较大的该两节点之间链路的流量分配比例较大,反之,当两个节点之间链路的带宽较小时,在这两个节点对应的电路节点之间需要设置阻值较大的等效电阻,那么,该阻值较大的等效电阻上流过的电路反而较小,即,可以确定带宽较小的该两节点之间链路的流量分配比例较小。也就是说,两个节点之间链路的带宽和计算出的该链路的流量分配比例实质上可以存在正比关系。
其中,所确定的从源节点到目的节点的各条路径上对应的流量分配比例,一种情况下,具体可以是从源节点到目的节点的各条完整路径选项对应的流量分配比例,若完整路径选项中包括中间节点,那么,该条完整路径选项对应的流量分配比例为该条完整路径选项中每相邻两个节点之间链路对应的流量分配比例中的最小值;另一种情况下,也可以是从源节点到目的节点的经过当前节点时可能的下一跳节点对应的流量分配比例,即,当前节点到下一跳节点的链路对应的流量分配比例。
例如:仍然以图4所示的网络设备400为例,可以将图11所示的电阻网络中经过各等效电阻R的电流值,作为该等效电阻R两端的电路节点对应于网络设备的节点,作为网络设备相应两个节点之间链路的流量分配比例。
作为一个示例,可以得到下述表5示出的一种节点402->节点401的路径选项及流量分配比例的对应关系表:
表5节点402->节点401的路径选项及流量分配比例的对应关系表
其中,对于路径选项402->406->404->401,该路径选项对应的流量分配比例的确定过程具体可以是:从节点402到节点406链路的流量分配比例4/24、从节点406到节点404链路的流量分配比例2/24、从节点404到节点401链路的流量分配比例5/24中,选择最小值2/24,作为该路径选项对应的流量分配比例。
需要说明的是,通过计算可以得到节点402->节点401的若干路径,可以以其中部分路径选项的组合,作为指导报文从节点402到节点401的报文转发的依据。即,上述表5的路径选项仅仅是从节点402到节点401的部分可选路径的组合及对应的流量分配比例。可以理解的是,保存到节点上的路径选项和流量分配比例的对应关系应该满足如下条件:条件1、相同源节点和目的节点对应部分,所有路径选项对应的流量分配比例之和不大于1;条件2、包括相同的节点对的所有路径选项对应的流量分配比例之和应该小于等于该节点对之间链路对应的流量分配比例。例如:对于条件2,表5中包括节点404直接到节点401的路径,那么,(404,401)可以视作一个节点对,表5中后3条路径都包括该节点对,后3条路径对应的流量分配比例之前为:1/24+1/24+2/24=4/24,而参见图11,可知,经过等效电阻法计算节点404到节点401对应的流量分配比例为4/24,故,该后3条路径可以被同时保存在表5中,且表5中不能再有经过节点对(404,401)的路径。
需要说明的是,对于网络设备400中每个节点,以节点402为例,该节点402中除了需要存储上述表5或者与表5内容相同的信息外,还需要存储以节点402为源节点,其他5个节点分别作为目的节点时对应的路径选项和流量分配比例的对应关系。而以节点402为源节点、其他5个节点分别作为目的节点的路径选项和流量分配比例的对应关系,也可以参照上述步骤1001~步骤1003的方式计算得到。
作为另一个示例,也可以得到下述表6示出的另一种节点402->节点401的路径选项及流量分配比例的对应关系表:
表6节点402->节点401的路径选项及流量分配比例的对应关系表
表6为源节点为节点402,目的节点为节点401时,报文在节点402时,下一跳节点的可能情况和对应的流量分配比例。其中,对于下一跳节点为节点401的情况,该路径选项对应的流量分配比例具体可以是:从节点402到节点401链路的流量分配比例10/24;对于下一跳节点为节点403的情况,该路径选项对应的流量分配比例具体可以是:从节点402到节点403链路的流量分配比例5/24。
需要说明的是,对于网络设备400中每个节点,以节点402为例,该节点402中除了需要存储上述表6或者与表6内容相同的信息外,还需要存储以任意两个节点作为源节点和目的节点时,经过当前节点402时可能的下一跳节点和流量分配比例的对应关系。而节点403上,也需要分别存储源节点为节点402、目的节点为节点401时,报文经过节点403时可能的下一跳节点和流量分配比例的对应关系;同理,节点405上,也需要分别存储源节点为节点402、目的节点为节点401时,报文经过节点405时可能的下一跳节点和流量分配比例的对应关系;节点406上,也需要分别存储源节点为节点402、目的节点为节点401时,报文经过节点406时可能的下一跳节点和流量分配比例的对应关系。
需要说明的是,上述将物理学/基础电路技术中的基尔霍夫电压定律/电流定律等电路知识应用于网络设备内进行负载分担,除了适用于本申请实施例提供的体网结构的网络设备(例如:图3a、图4~图8所示的各种网络结构的网络设备),也适用于多个节点组成的环网结构的网络设备,计算路径和流量分配比例的对应关系的过程可以参见上述步骤1001~步骤1003。以图2b所示的由8节点组成环网结构的网络设备250为例,若源节点为节点252,目的节点为节点251,那么,在节点252上可以得到下述表7示出的一种节点252->节点251的路径选项及流量分配比例的对应关系表,也可以在节点252上可以得到下述表8示出的一种节点252->节点251的路径选项及流量分配比例的对应关系表:
表7节点252->节点251的路径选项及流量分配比例的对应关系表
表8节点252->节点251的路径选项及流量分配比例的对应关系表
需要说明的是,本申请实施例的上述举例是按照网络设备内各节点之间的链路带宽相同的情况下的计算过程及结果,如果有相邻节点之间的链路带宽不相等的情况时,可以通过在步骤1001中设置与带宽对应的阻值的等效电阻,实现基于带宽计算流量分配比例的相关计算,具体实现可以参见上述实施例的相关描述。
需要说明的是,步骤1001~步骤1003可以由网络设备内具有运算功能的节点执行,具体可以是网络设备内转发报文的节点中的任意节点,也可以是网络设备内不具有转发报文功能的其他节点;或者,步骤1001~步骤1003可以由网络设备外的其他单元(例如:控制器)基于该网络设备内节点的网络架构执行,并将计算结果下发至该网络设备内。
可以理解的是,对于流量分配比例,上述示例只是在1.0带宽的流量输入到网络设备的某个源节点后,到达目的节点的各条路径的具体分担的流量数值,但是,更重要的是通过各条路径之间的该流量数值的比例关系,确定在各条路径上如何进行负载均衡,也可以认为通过各条路径之间的该流量数值的比例关系作为分配实际流量。
接着,结合附图,对本申请实施例提供的负载分担方法进行具体介绍。
图12为本申请实施例中一种负载分担方法的流程示意图。参见图12,该方法例如可以包括下述步骤1201~步骤1203:
步骤1201,网络设备内的节点1接收到报文1和报文2,该报文1和报文2在该网络设备内具有相同的源节点和目的节点。
可以理解的是,报文从外部设备经过网络侧端口进入网络设备时,到达该网络设备内的第一个节点即可视作该报文的源节点;报文从网络设备的另一网络侧端口进入到另一外部设备时,在该网络设备内经过的最后一个节点即可视作该报文的目的节点。报文1和报文2可以是指从外部设备经过相同的源节点传输至网络设备的两个报文,这两个报文在该网络设备内,经过相关的路径或者不同的路径,从相同的目的节点从该网络设备到达另一外部设备。
可以理解的是,对于网络设备内的节点,均具备对应的节点标识,可以唯一标识每个节点,该节点标识具体可以是该节点出厂时具有的可以唯一标识该节点的出厂标识,例如:硬件编号、批次号;也可以是该在集成到该网络设备内部时,为每个节点配置的内部标识,例如:名称、编号等。
网络设备内的节点可以识别到节点标识,确定节点标识对应的节点。而且,网络设备内的节点也可以识别到报文的目的节点,具体可以是:根据报文中携带的目的互联网协议(英文:Internet Protocol,简称:IP)地址或者目的IP地址对应的信息,确定出与该目的IP地址对应的目的节点。
需要说明的是,步骤1201中的节点1可以是报文1和报文2的源节点,也可以是报文1和报文2在该网络设备内共同经过的其他节点。
需要说明的是,在执行该实施例之前,网络设备已经根据上述图10对应的实施例计算得到路径选项对应的流量分配比例,并在节点1以及该网络设备内的其他节点上,保存有对应的路径选项和流量分配比例的对应关系,其中包括各种可能的源节点和目的节点组合下,路径选项和流量分配比例的对应关系。其中,路径选项可以是完整的从源节点到目的节点的路径;也可以是从源节点到目的节点时经过当前节点可能的下一跳节点。
需要说明的是,上述通过图10的方式计算得到路径选项和流量分配比例的对应关系,仅为示例性的一种计算路径选项和流量分配比例的对应关系的方式,本申请实施例包括但不限于上述方式,也可以通过其他合理的方式得到该路径选项和流量分配比例的对应关系。
步骤1202,节点1根据预设的流量分配比例X,沿路径1向目的节点转发报文1。
步骤1203,节点1根据预设的流量分配比例Y,沿路径2向目的节点发送报文2。
可以理解的是,步骤1202和步骤1203可以基于节点1中保存的路径选项和流量分配比例的对应关系执行。其中,基于节点1中保存的路径选项和流量分配比例的对应关系中,可以包括与报文1和报文2的源节点、目的节点对应的路径选项和流量分配比例的对应关系1,该对应关系1中至少包括路径1和流量分配比例X之间的对应关系、以及路径2和流量分配比例Y之间的对应关系。
一种情况下,路径1和路径2可以表示从源节点到目的节点的一条完整路径,那么,流量分配比例X和流量分配比例Y即为完整路径上每两个相邻节点之间链路对应的流量分配比例的最小值;另一种情况下,路径1和路径2也可以表示从源节点到目的节点经过节点1的下一跳节点;那么,流量分配比例X和流量分配比例Y即为节点1和下一跳节点之间链路对应的流量分配比例。其中,流量分配比例X和流量分配比例Y可以基于等效电阻法确定,具体参见图10对应的实施例。
需要说明的是,可以按照从源节点到目的节点的各条路径当前的实际流量状况,为等待转发的报文分配传输路径,以确保该待转发报文按照所分配的传输路径在该网络设备中转发后,从源节点到目的节点的各条路径当前的实际流量状况符合从源节点到目的节点的各条路径预设的流量分配比例。
可以理解的是,节点1具体可以根据报文数量、报文长度中的任意一种参数确定流量分配比例的粒度。其中,报文长度包括报文的字节长度和报文的单元数量。假设从源节点到目的节点由路径1和路径2,且对应的流量分配比例为10:1。若以报文数量确定流量分配比例的粒度,那么,源节点接收到的11个报文中,10个报文沿路径1转发,1个报文沿路径2转发即可。若以报文的字节长度确定流量分配比例的粒度,源节点接收到的5个报文依次包括的字节长度为:100字节、100字节、200字节、300字节和400字节,那么,1个100字节长度的报文沿路径2转发,字节长度为100字节、200字节、300字节和400字节的4个报文沿路径1转发即可。若以报文的单元数量确定流量分配比例的粒度,源节点接收到的4个报文依次包括的单元数量为:2、5、7和8,那么,包括2个报文单元的1个报文沿路径2转发,包括单元个数为5、7和8的3个报文沿路径1转发即可。需要说明的是,本申请实施例中的描述均以报文数量作为确定流量分配比例粒度的依据为例进行说明,其他的流量分配比例粒度可以参见以报文数量划分流量的实现方式及相关描述。
需要说明的是,上述步骤1202和步骤1203执行不分先后,可以先执行步骤1202再执行步骤1203,也可以先执行步骤1203再执行步骤1202,还可以同时执行步骤1202和步骤1203。
针对图12所示的负载分担方式,在一些具体的实现方式中,若路径1和路径2表示源节点到目的节点的完整路径,那么,当节点1为源节点时,该负载分担方法的具体过程可以参见图13,具体可以包括:
步骤1301,源节点确定报文1和报文2共同的目的节点。
步骤1302,源节点判断该目的节点是否和源节点一致,若是,则,执行步骤1303;否则,执行步骤1304。
步骤1303,源节点将报文1和报文2从其网络侧端口发出。
步骤1304,源节点查询对应的多条路径选项和流量分配比例的对应关系,根据各条路径上实际的流量比例和查询到的流量分配比例,确定报文1传输采用的路径1、以及报文2传输采用的路径2。
例如:以上述网络设备400为例,假设报文1和报文2的源节点为节点402,目的节点为节点401。节点402上至少保存有表5或者与表5内容相同的信息,在该网络设备400中源节点402到目的节点401的6条可能的路径上,假设当前已经有22条报文按照前3条路径和第6条路径(以表5中的顺序排列)对应的流量分配比例,分别在前4条路径和第6条路径上转发了10条、5条、5条、1条和1条。此时,当节点402接收到报文1和报文2后,根据6条路径上实际的流量比例(即,10:5:5:1:0:1)和表5对应的流量分配比例(即,10:5:5:1:1:2),确定报文1可以按照第5条路径(即,402->406->405->404->401)向目的节点401转发,报文2可以按照第6条路径(即,402->406->404->401)向目的节点401转发。
步骤1305,源节点在报文1中封装路径1的指示信息,在报文2中封装路径2的指示信息。
可以理解的是,路径1的指示信息,可以用于指示从源节点到目的节点的路径1上的各跳节点,具体可以按照报文在该路径1中转发的顺序,依次包括各个中间节点的节点标识;同理,路径2的指示信息,可以用于指示从源节点到目的节点的路径2上的各跳节点,具体可以按照报文在该路径2中转发的顺序,依次包括各个中间节点的节点标识。
该实现方式中,步骤1305中源节点可以将路径1的指示信息封装在报文1的报文头上,例如:节点1可以将路径1上各个中间节点的节点标识以标签栈的形式封装在报文1的报文头中。
例如:以上述网络设备400为例,接上述步骤1304中的举例,源节点402可以将包括406、405和404的标签栈封装在报文1的报文头中,标签栈中节点标识的顺序可以是颠倒,只要路径1上各节点可以识别并有序转发该报文1即可;同理,源节点402可以将包括406和404的标签栈封装在报文2的报文头中。
步骤1306,源节点根据报文1中路径1的指示信息,将报文1向源节点对应路径1的下一跳节点发送,根据报文2中路径2的指示信息,将报文2向源节点对应路径2的下一跳节点发送。
例如:以上述网络设备400为例,接上述步骤1305中的举例,节点402根据标签栈中的标签406,将报文1从该节点402的交换侧端口向标签406对应的节点406发送;同理,节点402根据标签栈中的标签406,将报文2从该节点402的交换侧端口向标签406对应的节点406发送。
需要说明的是,若步骤1304所确定的路径1和路径2中存在没有中间节点(即,从源节点直接转发到目的节点)的情况,那么,可以不执行步骤1305,直接将对应的报文发送到目的节点即可。
而对于步骤1304所确定的路径中包括中间节点时,在执行完1306后,本申请实施例还可以包括各中间节点按照所接收到报文的报文头中的标签栈转发该报文到目的节点的部分,即,本申请实施例在步骤1306之后,如图14所示,还可以包括:
步骤1307,源节点对应路径1的下一跳节点判断本节点是否为目的节点,若是,则,执行步骤1308;否则,执行步骤1309;同理,源节点对应路径2的下一跳节点判断本节点是否为目的节点,若是,则,执行步骤1308;否则,执行步骤1309。
步骤1308,源节点对应路径1的下一跳节点将报文1从其网络侧端口发出,或者,源节点对应路径2的下一跳节点将报文2从其网络侧端口发出。
步骤1309,源节点对应路径1的下一跳节点从报文1的报文头的标签栈中剔除其对应的标签,源节点对应路径2的下一跳节点从报文2的报文头的标签栈中剔除其对应的标签。
例如:以上述网络设备400为例,接上述步骤1306中的举例,节点406接收到报文1后,将报文1的报文头的标签栈中的标签406剔除,此时,报文1的报文头的标签栈中包括中间节点405和404的标签;同理,节点406接收到报文2后,将报文2的报文头的标签栈中的标签406剔除,此时,报文2的报文头的标签栈中只包括中间节点404的标签。
步骤1310,源节点对应路径1的下一跳节点根据报文1中路径1当前的指示信息,将报文1向当前节点的下一跳节点发送,根据报文2中路径2当前的指示信息,将报文2向当前节点的下一跳节点发送。
例如:以上述网络设备400为例,接上述步骤1309中的举例,节点406根据标签栈中的标签404,将报文1从该节点406的交换侧端口向标签405对应的节点405发送;同理,节点406根据标签栈中的标签404,将报文2从该节点406的交换侧端口向标签404对应的节点404发送。
需要说明的是,后续的中间节点均可以按照步骤1307~步骤1310转发报文1和报文2,直到报文1和报文2被转发到目的节点,目的节点将报文1和报文2从目的节点的网络侧端口从该网络设备中发出。例如:报文1和报文2到达节点404后,从报文1和报文2的报文头的标签栈中分别剔除其对应的标签404,节点404根据报文1和报文2当前标签栈中的指示信息,向目的节点401发送报文1和报文2。
这样,通过源节点进行一次负载分担,即可将源节点接收到的流量按照预设的流量分配比例,分配到各条路径上,提高了负载分担效率;而且,这无论对于环网结构还是本申请实施例提供的体网结构,由于预设的流量分配比例是基于各条路径的带宽、采用等效电阻法的原理计算得到的,所以,相较于最短路径优先算法进行负载分担,本实施例可以实现较优的负载均衡效果,并且,对网络设备内各节点之间带宽的设计需求较低。
针对图12所示的负载分担方式,在另一些具体的实现方式中,若路径1和路径2表示源节点到目的节点经过节点1的下一跳节点;那么,无论节点1是源节点、中间节点或者目的节点,该负载分担方法的具体过程可以参见图15,具体可以包括:
步骤1501,节点1确定报文1和报文2共同的源节点和目的节点。
步骤1502,节点1判断该目的节点是否和节点1一致,若是,则,执行步骤1503;否则,执行步骤1504。
步骤1503,节点1将报文1和报文2从其网络侧端口发出。
步骤1504,节点1查询对应的可能下一跳和流量分配比例的对应关系,根据各个下一跳上实际的流量比例和查询到的流量分配比例,确定报文1传输采用的节点2、以及报文2传输采用的节点3。
可以理解的是,每个节点上均保存有各种可能的源节点和目的节点组合下,经过该节点时可能的下一跳节点和流量分配比例的对应关系,以便每个节点可以按照图15实施例中的负载分担方式进行一次有效的负载均衡。
例如:以上述网络设备400为例,假设报文1和报文2的源节点为节点402,目的节点为节点401。节点402上至少保存有表6或者与表6内容相同的信息,在该网络设备400中源节点402到目的节点401的4个可能的下一跳上,一种情况下,假设当前已经有20条报文按照前3个下一跳(以表6中的顺序排列)对应的流量分配比例,分别按照前3个下一跳转发了10条、5条、5条;此时,当节点402接收到报文1和报文2后,根据4个可能的下一跳上实际的流量比例(即,10:5:5:0)和表6对应的流量分配比例(即,10:5:5:4),确定报文1和报文2均可以按照第4个下一跳(即节点406)向目的节点401转发。另一种情况下,假设当前已经有22条报文按照4个下一跳(以表6中的顺序排列)对应的流量分配比例,分别按照每个下一跳转发了10条、5条、4条和3条;此时,当节点402接收到报文1和报文2后,根据4个可能的下一跳上实际的流量比例(即,10:5:4:3)和表6对应的流量分配比例(即,10:5:5:4),确定报文1和报文2分别可以按照第3个下一跳(即节点405)和第4个下一跳(即节点406)向目的节点401转发。再一种情况下,假设当前已经有20条报文按照4个下一跳(以表6中的顺序排列)对应的流量分配比例,分别按照每个下一跳转发了10条、5条、3条和2条;此时,当节点402接收到报文1和报文2后,根据4个可能的下一跳上实际的流量比例(即,10:5:4:3)和表6对应的流量分配比例(即,10:5:5:4),可以确定报文1和报文2分别按照第3个下一跳(即节点405)和第4个下一跳(即节点406)向目的节点401转发;也可以确定报文1和报文2均按照第3个下一跳(即节点405)向目的节点401转发;还可以确定报文1和报文2均按照第4个下一跳(即节点406)向目的节点401转发。
步骤1505,节点1将报文1向节点2发送,将报文2向节点3发送。
可以理解的是,报文从进入网络设备内开始,从源节点开始报文所经过的每个节点均可以执行一次上述步骤1501~步骤1505,直到将该报文转发至目的节点。
例如:以上述网络设备400为例,假设报文1的源节点为节点402,目的节点为节点401。节点402上至少保存有表6,该网络设备400中源节点402到目的节点401在源节点402处有4个可能的下一跳,分别为节点401、节点403、节点405和节点406。
一种情况下,假设源节点402根据流量分配比例为报文1确定下一跳为节点401,那么,源节点402将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。
另一种情况下,假设源节点402根据流量分配比例为报文1确定下一跳为节点403,那么,源节点402将报文1发送至节点403;节点403上保存有下述表9,根据表9,节点403处有2个可能的下一跳节点,分别为节点401和节点404,节点403根据流量分配比例为报文1确定下一跳为节点401,那么,节点403将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出;或者,节点403根据流量分配比例为报文1确定下一跳为节点404,那么,节点403将报文1发送至节点404;节点404上保存有下述表10,根据表10,节点404处有且仅有下一跳节点401,节点404将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。
表9节点403上保存的节点402->节点401的路径选项及流量分配比例的对应关系表
表10节点404上保存的节点402->节点401的路径选项及流量分配比例的对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(402,401) | 401 | 1 |
再一种情况下,假设源节点402根据流量分配比例为报文1确定下一跳为节点405,那么,源节点402将报文1发送至节点405;节点405上保存有下述表11,根据表11,节点405处有2个可能的下一跳节点,分别为节点401和节点404,节点405根据流量分配比例为报文1确定下一跳为节点401,那么,节点405将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出;或者,节点405根据流量分配比例为报文1确定下一跳为节点404,那么,节点405将报文1发送至节点404;节点404上保存有上述表10,根据表10,节点404处有且仅有下一跳节点401,节点404将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。
表11节点405上保存的节点402->节点401的路径选项及流量分配比例的对应关系表
又一种情况下,假设源节点402根据流量分配比例为报文1确定下一跳为节点406,那么,源节点402将报文1发送至节点406;节点406上保存有下述表12,根据表12,节点406处有3个可能的下一跳节点,分别为节点403、节点404和节点405,节点406根据流量分配比例为报文1确定下一跳为节点403,那么,节点406将报文1发送至节点403;节点403根据其上保存的表9确定有2个可能的下一跳节点,分别为节点401和节点404,节点403根据流量分配比例为报文1确定下一跳为节点401,那么,节点403将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出;或者,节点403根据流量分配比例为报文1确定下一跳为节点404,那么,节点403将报文1发送至节点404;节点404根据其上保存的表10确定节点404处有且仅有下一跳节点401,节点404将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。同理,若节点406根据流量分配比例为报文1确定下一跳为节点404,那么,节点406将报文1发送至节点404;节点404根据其上保存的表10确定节点404处有且仅有下一跳节点401,节点404将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。若节点406根据流量分配比例为报文1确定下一跳为节点405,那么,节点406将报文1发送至节点405;节点405根据其上保存的表11确定有2个可能的下一跳节点,分别为节点401和节点404,节点405根据流量分配比例为报文1确定下一跳为节点401,那么,节点405将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出;或者,节点405根据流量分配比例为报文1确定下一跳为节点404,那么,节点403将报文1发送至节点404;节点404根据其上保存的表10确定节点404处有且仅有下一跳节点401,节点404将报文1发送至节点401,节点401确定其为目的节点,即可将该报文1从网络侧端口转出。
表12节点406上保存的节点402->节点401的路径选项及流量分配比例的对应关系表
需要说明的是,本申请实施例均以图4所示的网络设备400中源节点402到目的节点401为例进行说明,该源节点和目的节点是直接相邻的节点对;但是,对于源节点和目的节点为没有直接连接的节点对时,例如:源节点可以是节点406,目的节点可以是节点401,其负载分担方法可以完全参见本申请实施例提供的任意一种实现方式。
例如:对于源节点是节点406,目的节点是节点401的情况,在节点406上保存的下一跳节点和流量分配比例的对应关系表参见下表13所示,存在节点402、节点403、节点404和节点405共4个可能的下一跳节点,每个下一跳节点对应的流量分配比例一致,均为1/4;若节点406将报文发送至节点402,该节点402上保存的下一跳节点和流量分配比例的对应关系表参见下表14所示,仅存在节点401这1个可能的下一跳节点,即,节点402将该报文发送至目的节点401;若节点406将报文发送至节点403,该节点403上保存的下一跳节点和流量分配比例的对应关系表参见下表15所示,仅存在节点401这1个可能的下一跳节点,即,节点403将该报文发送至目的节点401;若节点406将报文发送至节点404,该节点404上保存的下一跳节点和流量分配比例的对应关系表参见下表16所示,仅存在节点401这1个可能的下一跳节点,即,节点404将该报文发送至目的节点401;若节点406将报文发送至节点405,该节点405上保存的下一跳节点和流量分配比例的对应关系表参见下表17所示,仅存在节点401这1个可能的下一跳节点,即,节点405将该报文发送至目的节点401。
表13节点406上保存的节点406->节点401的路径选项及流量分配比例的对应关系表
表14节点402上保存的节点406->节点401的路径选项及流量分配比例的对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(406,401) | 401 | 1 |
表15节点403上保存的节点406->节点401的路径选项及流量分配比例的对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(406,401) | 401 | 1 |
表16节点404上保存的节点406->节点401的路径选项及流量分配比例的对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(406,401) | 401 | 1 |
表17节点405上保存的节点406->节点401的路径选项及流量分配比例的对应关系表
(源节点、目的节点序号) | 下一跳节点 | 流量分配比例 |
(406,401) | 401 | 1 |
这样,通过各节点依次进行负载均衡,将各个节点接收到的流量按照预设的流量分配比例,分配到各个下一跳上,更加细化了负载分担过程;而且,这无论对于环网结构还是本申请实施例提供的体网结构,由于预设的流量分配比例是基于各条路径的带宽、采用等效电阻法的原理计算得到的,所以,相较于最短路径优先算法进行负载分担,本实施例可以实现较优的负载均衡效果,并且,对网络设备内各节点之间带宽的设计需求较低。
需要说明的是,将等效电阻法应用于网络设备内各节点的负载分担的具体实现方式,可以包括上述:采用步骤1301~步骤1310对应的由源节点进行一次负载分担,严格指定流量的后续转发路径的实现方式;以及采用步骤1501~步骤1505对应的由各跳节点逐跳对流量进行多次负载分担,各跳节点均参与流量分配的实现方式。本申请实施例还可以采用下述方式实现:部分节点指定一段严格的转发路径,该段严格的转发路径之外的其他节点采各跳节点均参与流量分配的实现方式,该实现方式中按照严格的转发路径转发的节点,其具体实现可以参见步骤1301~步骤1310对应的描述;每跳均参与流量分配的节点,其具体实现可以参见步骤1501~步骤1505对应的描述,不再赘述。
在介绍完上述本申请实施例后,下面就本申请实施例提出的体网结构的网络设备、可以应用于体网结构和环网结构的负载分担方法,对于平衡网络设备的交换能力和链路带宽的效果,通过计算交换侧加速比进行量化。
可以理解的是,网络设备内各节点的交换侧加速比,对于例如图3a、图4~图8示出的严格对称的网络设备,其每个节点的交换侧加速比都相等,在节点满足非阻塞交换条件时,每个节点的交换侧加速比等于该节点和相邻节点的链路带宽之和的最大值与该节点网络侧带宽的比值。交换侧加速比越小,说明该网络设备设计较小的链路带宽就可以实现多节点的非阻塞交换。
具体实现时,在最短路径优先算法和等效电阻法进行负载分担时,可以计算严格对称的各种网络结构下的网络设备,满足非阻塞交换需要设计的最小交换侧加速比,如下表18所示:
表18不同负载分担方法在网络设备非阻塞交换所需的交换侧加速比
由表18可知,对于本申请实施例提供的体网结构的网络设备,不论采用最短路径优先算法还是等效电阻法进行负载分担,体网结构的网络设备的交换侧加速比基本小于包括相同节点数量的环网结构的网络设备,而且优势随着节点数量增多逐渐增大;对于4节点和6节点的情况,虽然体网结构的网络设备和环网结构的网络设备的交换侧加速比相差不多,但是,由于体网结构的网络设备内节点之间可选的路径增多,故,报文在该体网结构的网络设备内传输的时延会较低,也可以提高该网络设备的交换效率。即,采用本申请实施例提供的体网结构的网络设备,在节点数量相同的情况下满足非阻塞交换,可以在设计该网络设备时设置较小的链路带宽,如此,在需求较高的交换能力时,即使将网络设备内的节点数量增加到很多,也可以设置较小的链路带宽就可以确保非阻塞交换。
对于本申请实施例提供的基于等效电阻法计算流量分配比例,并按照预设的该流量分配比例在网络设备内进行负载分担的方法,无论对于体网结构的网络设备还是环网结构的网络设备,采用本申请实施例提供的负载分担方法的交换侧加速均小于采用最小路径优先算法进行负载分担的交换侧加速比,即,采用本申请实施例提供的负载分担方法,在节点数量相同的情况下满足非阻塞交换,可以在设计该网络设备时设置较小的链路带宽,如此,在需求较高的交换能力时,即使将网络设备内的节点数量增加到很多,对链路带宽的设计也不会有特别大的压力。
可见,本申请实施例提供了一种内部多个节点呈现体网结构的网络设备,体网结构相比相同节点的环网结构,由于其节点连接的相邻节点数量增多,即每个节点到其他节点的路径选择增多了,可以在网络设备设计时适当地平衡交换能力和链路带宽。而且,本申请实施例还提供了一种网络设备内的负载分担方法,将物理学中的基尔霍夫电压定律/电流定律等电路知识运用到本申请实施例提及的各种网络设备中内节点之间的负载分担,利用等效电阻法为各种可能的路径计算对应的流量分配比例,并将流量分配比例和对应的路径预设到相应的节点,确保在该网络设备中各条路径上转发的流量符合预设的流量分配比例,这样,相比采用最短路径优先算法在网络设备内进行负载分担,可以将流量按照预设的比例分配到各条路径上,而不对最短路径造成过大的带宽压力,实现了较优的负载均衡,无论对环网结构还是体网结构的网络设备,可以降低对其内各节点之间链路带宽的需求,即,可以设计较小的链路带宽即可实现非阻塞交换,从而实现了对交换能力和链路带宽的设计的适当平衡。
为了更加清楚的说明本申请实施例提及的网络设备内的负载分担,下面以步骤1301~步骤1310对应的实现方式为例,对几种网络结构的网络设备内部分节点上保存的路径选项及流量分配比例的对应关系进行介绍。
作为一个示例,以网络设备300中节点302为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表19所示:
表19节点302上保存的路径选项及流量分配比例的对应关系表
作为另一个示例,以网络设备400中节点402为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表20所示:
表20节点402上保存的路径选项及流量分配比例的对应关系表
其上保存的路径选项及流量分配比例的对应关系也可以参见下表21所示,如此,可以以步骤1501~步骤1505对应的实现方式进行负载分担:
表21节点402上保存的一种下一跳节点及流量分配比例的对应关系表
作为再一个示例,以网络设备500中节点502为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表22所示:
表22节点502上保存的路径选项及流量分配比例的对应关系表
作为又一个示例,以网络设备700中节点702为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表23所示:
表23节点702上保存的路径选项及流量分配比例的对应关系表
作为再一个示例,以环网结构的网络设备250中节点252为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表24所示:
表24节点252上保存的路径选项及流量分配比例的对应关系表
作为再一个示例,以图16示出的六节点环网结构的网络设备1600中节点1602为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表25所示:
表25节点1602上保存的路径选项及流量分配比例的对应关系表
作为又一个示例,以图17示出的四节点环网结构的网络设备1700中节点1702为例,其上保存的路径选项及流量分配比例的对应关系可以参见下表26所示:
表26节点1702上保存的路径选项及流量分配比例的对应关系表
可见,利用本申请实施例提供的将物理学中的基尔霍夫电压定律/电流定律等电路知识运用到各种网络设备中内节点的负载分担方法,为各种可能的路径计算对应的流量分配比例,并在网络设备内的各个节点上预设例如上述实例所示的路径选项和流量分配比例的对应关系表,这样,到达网络设备内的流量按照预设的流量分配比例选择对应的路径,而不对最短路径造成过大的带宽压力,较优的实现负载均衡,无论对环网结构还是体网结构的网络设备,可以降低对其内各节点之间链路带宽的需求,即,可以设计较小的链路带宽即可实现非阻塞交换,从而实现了对交换能力和链路带宽的设计的适当平衡。
图18为本申请实施例提供的一种负载分担方法的流程示意图。该方法由网络设备内的第一节点执行,该方法具体可以包括:
步骤1801,网络设备内的第一节点接收第一报文和第二报文,该第一报文和第二报文在网络设备内具有相同的源节点和目的节点。
步骤1802,该第一节点根据预设的第一流量分配比例,沿第一路径向目的节点转发第一报文。
步骤1803,第一节点根据预设的第二流量分配比例,沿第二路径向目的节点发送所述第二报文。
需要说明的是,一种情况下,该负载分担方法可以应用于至少包括4个节点且该4个节点呈现体网结构的网络设备中,该体网结构是指该网络设备内至少有一个节点与多于2个节点直连。另一种情况下,该负载分担方法也可以应用于至少包括3个节点且该3个节点呈现环网结构的网络设备中,该环网结构是指该网络设备内的每个节点均与两个节点直连,而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
其中,第一流量分配比例和第二流量分配比例为基于本申请实施例提出的负载分担算法:等效电阻法确定的。
需要说明的是,步骤1802和步骤1803的执行没有先后顺序,可以先执行步骤1802再执行步骤1803,也可以先执行步骤1803再执行步骤1802,还可以同时执行步骤1802和步骤1803。
其中,第一节点对应图12实施例中的节点1,第一报文和第二报文分别对应图12实施例中的报文1和报文2,第一流量分配比例和第二流量分配比例分别对应图12实施例中的流量分配比例X和流量分配比例Y,第一路径和第二路径分别对应图12实施例中的路径1和路径2。
需要说明的是,上述步骤1801~步骤1803的具体描述以及实现方式,可以参见图12对应实施例中步骤1201~步骤1203的相关描述。
在一种具体实现方式中,如果第一节点是源节点,且第一节点内保存的第一路径的指示信息是:用于指示第一路径从源节点到目的节点所经过的各跳节点,第二路径的指示信息是:用于指示第二路径从源节点到目的节点所经过的各跳节点;那么,在网络设备内的第一节点接收第一报文和第二报文之后,该方法还包括:第一节点将该第一路径的指示信息封装到第一报文中,而且第一节点将第二路径的指示信息封装到第二报文中。
这样,目的节点相同的流量从第一节点进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
需要说明的是,该实现方式的具体实现以及相关描述,可以参见图13和图14对应实施例中的相关描述。
在另一种具体实现方式中,无论第一节点时源节点还是中间节点,如果第一节点内保存的第一路径的指示信息是:用于指示第一路径从源节点到目的节点的第一节点的第一下一跳节点,第一节点内保存的第二路径的指示信息是:用于指示第二路径从源节点到目的节点的第一节点的第二下一跳节点;那么,步骤1802可以包括:第一节点根据第一路径的指示信息,将第一报文发送至第一下一跳节点;步骤1803可以包括:第一节点根据第二路径的指示信息,将第二报文发送至第二下一跳节点。
这样,目的节点相同的流量从第一节点进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
需要说明的是,该实现方式的具体实现以及相关描述,可以参见图15对应实施例中的相关描述。
在其他的实现方式中,网络设备内的第一节点上保存有各种路径的指示信息可以相同,也可以不同,可以灵活配置。例如:该指示信息可以包括:用于指示该路径从源节点到目的节点所经过的各跳节点的信息,和/或,用于指示该路径从源节点到目的节点的第一节点的下一跳节点的信息。又例如:该指示信息还可以是用于指示该路径从源节点到第二节点所经过的各跳节点的信息,那么,从第二节点到目的节点上,则需要保存用于指示该路径从第二节点到目的节点中该跳节点的下一跳节点的指示信息。再例如:该指示信息还可以是从第一节点到第三节点上,保存用于指示该路径从第一节点到第三节点中该跳节点的下一跳节点的指示信息,那么,从第三节点到目的节点上,则需要保存用于指示该路径从第三节点到目的节点所经过的各跳节点的信息。
可以理解的是,第一节点可以根据以下任意一种参数确定第一流量分配比例和第二流量分配比例的粒度:报文数量、报文长度。其中,报文长度可以是指报文包括的字节长度或者报文包括的单元数量。
在再一种具体实现方式中,本申请实施例中的网络设备内的包括多个节点若形成体网结构,作为一个示例,该体网结构具体可以为四面体、六面体、八面体或三棱柱。
可以理解的是,该负载分担方法与图12对应的负载分担方法对应,故,该负载分担方法的各种可能的实现方式及效果的相关描述,可以参照图12对应的负载分担方法的相关描述。
本发明实施例还提供了一种网络设备,该网络设备内至少四个节点,该至少四个节点包括:第一节点、第二节点、第三节点和第四节点;其中,第一节点和第二节点、第三节点以及第四节点直连;而且,该第一节点,用于接收报文,并将报文发送到第二节点、第三节点或第四节点。
在具体实现方式中,该至少四个节点形成体网结构,体网结构为四面体、六面体、八面体或三棱柱。
需要说明的是,该实施例中的网络设备具体可以参见上述图3a、图4~图8所示的网络设备以及对应的描述,在此不再赘述。
此外,本申请实施例还提供了一种网络设备1900,该网络设备1900具体可以是指网络设备内的交换网板,该交换网板中包括交换芯片,交换芯片上包括多个die,即为该网络设备内的节点。该网络设备1900包括:第一节点1901和第二节点1902。
其中,第一节点1901,用于接收第一报文和第二报文,第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点,该目的节点为第二节点1902;该第一节点1901,还用于根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;该第一节点1901,还用于根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文。
需要说明的是,一种情况下,该网络设备1900可以是至少包括4个节点且该4个节点呈现体网结构的网络设备,该体网结构是指该网络设备1900内至少有一个节点与多于2个节点直连。另一种情况下,该网络设备1900也可以是至少包括3个节点且该3个节点呈现环网结构的网络设备,该环网结构是指该网络设备1900内的每个节点均与两个节点直连,而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
在一种具体实现方式中,若该第一节点1901为源节点,则,该第一节点1901,还用于:在接收第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。这样,目的节点相同的流量从第一节点1901进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
在另一种具体实现方式中,所述第一节点1901还可以具体用于:根据第二路径的指示信息,将所述第二报文发送至所述第一节点1901的下一跳节点。这样,目的节点相同的流量从第一节点1901进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
可以理解的是,第一流量分配比例和第二流量分配比例为基于等效电阻法确定的。
可以理解的是,第一节点1901可以根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:报文数量、报文长度。
在再一种具体实现方式,若网络设备1900内包括的多个节点形成体网结构,则该体网结构可以为四面体、六面体、八面体或三棱柱。
需要说明的是,该网络设备1900对应于本申请实施例提供的负载分担方法,故该网络设备的各种可能的实现方式以及达到的技术效果,可以参照前述负载分担方法的介绍。
另外,图20为本申请实施例提供的一种网络设备2000的结构示意图,该网络设备2000具体可以是指交换芯片,该交换芯片上包括的多个die,即为该网络设备内的节点。该网络设备2000包括第一节点,包括:接收单元2001和发送单元2002。
其中,接收单元2001,用于在第一节点处接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;发送单元2002,用于根据预设的第一流量分配比例,沿第一路径,由所述第一节点向所述目的节点转发所述第一报文;且根据预设的第二流量分配比例,沿第二路径,由所述第一节点向所述目的节点发送所述第二报文。
需要说明的是,一种情况下,该网络设备2000可以是至少包括4个节点且该4个节点呈现体网结构的网络设备,该体网结构是指该网络设备2000内至少有一个节点与多于2个节点直连。另一种情况下,该网络设备2000也可以是至少包括3个节点且该3个节点呈现环网结构的网络设备,该环网结构是指该网络设备2000内的每个节点均与两个节点直连。而且,若源节点和目的节点为环网结构中完全对称的两节点,则第一流量分配比例和第二流量分配比例相等;若源节点和目的节点为环网结构中不对称的两节点,则第一流量分配比例和第二流量分配比例不相等。
在一种具体的实现方式中,第一节点为所述源节点,所述网络设备2000还包括:
处理单元,用于在第一节点接收第一报文之后,将第一路径的指示信息封装到第一报文中,其中,该第一路径的指示信息用于指示第一路径从源节点到目的节点所经过的各跳节点。
这样,目的节点相同的流量从第一节点进入网络设备后,仅在源节点进行一次负载分担,具体将按照流量分配比例确定的包括各跳节点的路径分别封装到对应的报文中,封装后的报文分别按照封装的包括各跳节点的路径的指示信息转发即可。
在另一个具体的实现方式中,发送单元2002,具体用于:根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
这样,目的节点相同的流量从第一节点进入网络设备后,在源节点以及各跳中间节点均进行负载分担,即,在网络设备的各跳节点中均进行一次按照预设的流量分配比例进行负载分担的过程,确定该跳节点的下一跳节点,如此,实现更加灵活的负载均衡,提高了网络的负载分担能力。
可以理解的是,第一流量分配比例和第二流量分配比例为基于等效电阻法确定的。
可以理解的是,第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:报文数量、报文长度。
在再一种具体实现方式中,该网络设备2000为由多个节点形成的体网结构,则,该体网结构具体可以为四面体、六面体、八面体或三棱柱。
可以理解的是,该网络设备2000与图12及图18对应的负载分担方法实施例对应,故,该网络设备2000的各种可能的实现方式及效果的相关描述,可以参照图12及图18对应的负载分担方法中的相关描述。
此外,本申请实施例还提供了一种网络设备2100,该网络设备2100包括存储器2101和处理器2102。其中,存储器2101,用于存储程序代码;处理器2102,用于运行该程序代码中的指令,使得该网络设备2100执行前述图12或图18中任意一种实现方式所述的负载分担方法。
在本申请中,网络设备可以是交换机、路由器等设备。上述网络设备也可以是路由器,交换机等设备中的交换网板或交换芯片。上述网络设备可以是指一个设备,也可以包括多个设备。例如,网络设备是由多个交换芯片构成。
其中,处理器2102可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器2102还可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。处理器2102可以是指一个处理器,也可以包括多个处理器。存储器2101可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器2101也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器2101还可以包括上述种类的存储器的组合,存储器2101可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器2101中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器2102执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器2102根据所述软件模块的指示而执行的操作。处理器2102执行存储器2101中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行网络设备2100可以执行的全部操作。
此外,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述图12或图18中任意一种实现方式所述的负载分担方法。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行前述图12或图18中任意一种实现方式所述的负载分担方法。
本申请实施例中提到的“第一报文”、“第一路径”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
需要说明的是,本申请中,负载分担和负载均衡经常交替使用,本领域技术人员可以理解,它们都表达相同的含义。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (29)
1.一种负载分担方法,其特征在于,包括:
网络设备内的第一节点接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;所述网络设备内包括至少4个节点,所述至少4个节点构成体网结构,所述至少4个节点包括所述源节点和所述目的节点;
所述第一节点根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;
所述第一节点根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文;
其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
2.根据权利要求1所述的方法,其特征在于,
所述第一节点为所述源节点,在所述网络设备内的第一节点接收第一报文之后,所述方法还包括:
所述第一节点将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
3.根据权利要求1所述的方法,其特征在于,所述第一节点根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文,包括:
所述第一节点根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
4.根据权利要求1至3任一项所述的方法,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
5.根据权利要求1至3任一项所述的方法,其特征在于,
所述体网结构为四面体、六面体、八面体或三棱柱。
6.一种负载分担方法,其特征在于,包括:
网络设备内的第一节点接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;所述网络设备内包括至少3个节点,所述至少3个节点构成环网结构,所述至少3个节点包括所述源节点和所述目的节点;
所述第一节点根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;
所述第一节点根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文;所述第一流量分配比例和所述第二流量分配比例不相等;
其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
7.根据权利要求6所述的方法,其特征在于,
所述第一节点为所述源节点,在所述网络设备内的第一节点接收第一报文之后,所述方法还包括:
所述第一节点将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
8.根据权利要求6所述的方法,其特征在于,所述第一节点根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文,包括:
所述第一节点根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
9.根据权利要求6至8任一项所述的方法,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
10.一种网络设备,其特征在于,所述网络设备内包括至少4个节点,所述至少4个节点构成体网结构,所述至少4个节点包括:第一节点和第二节点;
所述第一节点,用于接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点,所述目的节点为所述第二节点;
所述第一节点,还用于根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;
所述第一节点,还用于根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文;
其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
11.根据权利要求10所述的网络设备,其特征在于,
所述第一节点为所述源节点,所述第一节点,还用于:
在接收第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
12.根据权利要求10所述的网络设备,其特征在于,所述第一节点具体用于:
根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
13.根据权利要求10至12任一项所述的网络设备,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
14.根据权利要求10至12任一项所述的网络设备,其特征在于,
所述体网结构为四面体、六面体、八面体或三棱柱。
15.一种网络设备,其特征在于,所述网络设备内包括至少3个节点,所述至少3个节点构成环网结构,所述至少3个节点包括:第一节点和第二节点;
所述第一节点,用于接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点,所述目的节点为所述第二节点;
所述第一节点,还用于根据预设的第一流量分配比例,沿第一路径向所述目的节点转发所述第一报文;
所述第一节点,还用于根据预设的第二流量分配比例,沿第二路径向所述目的节点发送所述第二报文;所述第一流量分配比例和所述第二流量分配比例不相等;
其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
16.根据权利要求15所述的网络设备,其特征在于,
所述第一节点为所述源节点,所述第一节点,还用于:
在接收第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
17.根据权利要求15所述的网络设备,其特征在于,所述第一节点具体用于:
根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
18.根据权利要求15至17任一项所述的网络设备,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
19.一种网络设备,其特征在于,所述网络设备内包括至少4个节点,所述至少4个节点构成体网结构,所述至少4个节点包括第一节点和第二节点,所述网络设备包括:
接收单元,用于在所述第一节点处接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;
发送单元,用于根据预设的第一流量分配比例,沿第一路径,由所述第一节点向所述第二节点转发所述第一报文;而且,根据预设的第二流量分配比例,沿第二路径,由所述第一节点向所述第二节点发送所述第二报文;其中所述第二节点为所述目的节点;其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
20.根据权利要求19所述的网络设备,其特征在于,
所述第一节点为所述源节点,所述网络设备还包括:
处理单元,用于在所述第一节点接收所述第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
21.根据权利要求19所述的网络设备,其特征在于,所述发送单元,具体用于:
根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
22.根据权利要求19至21任一项所述的网络设备,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
23.根据权利要求19至21任一项所述的网络设备,其特征在于,
所述体网结构为四面体、六面体、八面体或三棱柱。
24.一种网络设备,其特征在于,所述网络设备内包括至少3个节点,所述至少3个节点构成环网结构,所述至少3个节点包括第一节点和第二节点,所述网络设备包括:
接收单元,用于在第一节点处接收第一报文和第二报文,所述第一报文和所述第二报文在所述网络设备内具有相同的源节点和目的节点;
发送单元,用于根据预设的第一流量分配比例,沿第一路径,由所述第一节点向所述第二节点转发所述第一报文;而且,根据预设的第二流量分配比例,沿第二路径,由所述第一节点向所述第二节点发送所述第二报文;所述第一流量分配比例和所述第二流量分配比例不相等,所述第二节点为所述目的节点;其中,所述第一流量分配比例和所述第二流量分配比例为基于负载分担算法确定的,所述负载分担算法为等效电阻法,所述等效电阻法具体指:将所述网络设备内各节点组成的结构对应到电阻网络,将节点对应为电路节点,将节点之间的带宽对应为电路节点之间的等效电阻,其中,带宽与等效电阻的大小成反比,将流量在网络设备中从源节点到目的节点的路径选择和流量分配比例问题,对应到电流在电阻网络中从输入电路节点到输出电路节点的路径选择和电流分配比例问题,利用物理学中的基尔霍夫电压定律和基尔霍夫电流定律求解出电流在电阻网络中的路径选择和电流分配比例结果,对应到网络设备内流量的路径选择和流量分配比例。
25.根据权利要求24所述的网络设备,其特征在于,
所述第一节点为所述源节点,所述网络设备还包括:
处理单元,用于在所述第一节点接收所述第一报文之后,将第一路径的指示信息封装到所述第一报文中,其中,所述第一路径的指示信息用于指示所述第一路径从所述源节点到所述目的节点所经过的各跳节点。
26.根据权利要求24所述的网络设备,其特征在于,所述发送单元,具体用于:
根据第二路径的指示信息,将所述第二报文发送至所述第一节点的下一跳节点。
27.根据权利要求24至26任一项所述的网络设备,其特征在于,
所述第一节点根据以下任意一种参数确定所述第一流量分配比例和所述第二流量分配比例的粒度:
报文数量、报文长度。
28.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述网络设备执行以上权利要求1~5任一项所述的负载分担方法或者权利要求6~9任一项所述的负载分担方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1~5任一项所述的负载分担方法或者权利要求6~9任一项所述的负载分担方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211005874.7A CN115567451A (zh) | 2019-06-04 | 2019-06-04 | 一种转发报文的方法、装置和网络设备 |
CN201910482206.5A CN112039795B (zh) | 2019-06-04 | 2019-06-04 | 一种负载分担方法、装置和网络设备 |
EP20817629.7A EP3972210A4 (en) | 2019-06-04 | 2020-06-01 | LOAD SHARING METHOD AND NETWORK DEVICE |
PCT/CN2020/093806 WO2020244486A1 (zh) | 2019-06-04 | 2020-06-01 | 一种负载分担方法和网络设备 |
US17/541,437 US20220094630A1 (en) | 2019-06-04 | 2021-12-03 | Load sharing method and network device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910482206.5A CN112039795B (zh) | 2019-06-04 | 2019-06-04 | 一种负载分担方法、装置和网络设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005874.7A Division CN115567451A (zh) | 2019-06-04 | 2019-06-04 | 一种转发报文的方法、装置和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039795A CN112039795A (zh) | 2020-12-04 |
CN112039795B true CN112039795B (zh) | 2022-08-26 |
Family
ID=73576356
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005874.7A Pending CN115567451A (zh) | 2019-06-04 | 2019-06-04 | 一种转发报文的方法、装置和网络设备 |
CN201910482206.5A Active CN112039795B (zh) | 2019-06-04 | 2019-06-04 | 一种负载分担方法、装置和网络设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005874.7A Pending CN115567451A (zh) | 2019-06-04 | 2019-06-04 | 一种转发报文的方法、装置和网络设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220094630A1 (zh) |
EP (1) | EP3972210A4 (zh) |
CN (2) | CN115567451A (zh) |
WO (1) | WO2020244486A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973585A (zh) * | 2014-05-14 | 2014-08-06 | 合肥工业大学 | 一种基于多路径路由的片上网络业务流拆分方法 |
CN109479214A (zh) * | 2016-08-19 | 2019-03-15 | 华为技术有限公司 | 一种负载均衡的方法及相关装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636309B2 (en) * | 2005-06-28 | 2009-12-22 | Alcatel-Lucent Usa Inc. | Multi-path routing using intra-flow splitting |
EP2685685B1 (en) * | 2012-07-09 | 2016-06-15 | Alcatel Lucent | Method and related apparatus for establishing link-diverse traffic paths in a telecommunications network |
US9065722B2 (en) * | 2012-12-23 | 2015-06-23 | Advanced Micro Devices, Inc. | Die-stacked device with partitioned multi-hop network |
US9379981B1 (en) * | 2013-09-27 | 2016-06-28 | Google Inc. | Flow level dynamic load balancing |
NO2776466T3 (zh) * | 2014-02-13 | 2018-01-20 | ||
US9654401B2 (en) * | 2014-03-30 | 2017-05-16 | Juniper Networks, Inc. | Systems and methods for multipath load balancing |
CN106998302B (zh) * | 2016-01-26 | 2020-04-14 | 华为技术有限公司 | 一种业务流量的分配方法及装置 |
US10686734B2 (en) * | 2017-09-26 | 2020-06-16 | Hewlett Packard Enterprise Development Lp | Network switch with interconnected member nodes |
CN111149329A (zh) * | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
US11403241B2 (en) * | 2017-10-02 | 2022-08-02 | Micron Technology, Inc. | Communicating data with stacked memory dies |
US10785157B2 (en) * | 2018-03-13 | 2020-09-22 | Juniper Networks, Inc. | Adaptive load-balancing over a multi-point logical interface |
-
2019
- 2019-06-04 CN CN202211005874.7A patent/CN115567451A/zh active Pending
- 2019-06-04 CN CN201910482206.5A patent/CN112039795B/zh active Active
-
2020
- 2020-06-01 WO PCT/CN2020/093806 patent/WO2020244486A1/zh unknown
- 2020-06-01 EP EP20817629.7A patent/EP3972210A4/en active Pending
-
2021
- 2021-12-03 US US17/541,437 patent/US20220094630A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973585A (zh) * | 2014-05-14 | 2014-08-06 | 合肥工业大学 | 一种基于多路径路由的片上网络业务流拆分方法 |
CN109479214A (zh) * | 2016-08-19 | 2019-03-15 | 华为技术有限公司 | 一种负载均衡的方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3972210A1 (en) | 2022-03-23 |
CN115567451A (zh) | 2023-01-03 |
EP3972210A4 (en) | 2022-04-27 |
CN112039795A (zh) | 2020-12-04 |
US20220094630A1 (en) | 2022-03-24 |
WO2020244486A1 (zh) | 2020-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735323B2 (en) | Service traffic allocation method and apparatus | |
CN107580769B (zh) | 用于网络交换机中的负载均衡的方法与装置 | |
US8885510B2 (en) | Heterogeneous channel capacities in an interconnect | |
US9148298B2 (en) | Asymmetric ring topology for reduced latency in on-chip ring networks | |
CN109981471B (zh) | 一种缓解拥塞的方法、设备和系统 | |
WO2016206620A1 (zh) | 报文转发 | |
US9906592B1 (en) | Resilient hash computation for load balancing in network switches | |
US11792106B2 (en) | Method, node, and system for traffic transmission | |
EP3713161A1 (en) | Data transmission method, relevant device and network | |
CN112311685A (zh) | 一种处理网络拥塞的方法以及相关装置 | |
US6999453B1 (en) | Distributed switch fabric arbitration | |
US20220200901A1 (en) | Communications Method and Related Device | |
CN112825512A (zh) | 负载均衡方法及装置 | |
CN109327400A (zh) | 一种数据通信方法及数据通信网络 | |
CN112039795B (zh) | 一种负载分担方法、装置和网络设备 | |
WO2024093778A1 (zh) | 一种报文处理方法以及相关装置 | |
US8625624B1 (en) | Self-adjusting load balancing among multiple fabric ports | |
US9124502B2 (en) | Method and apparatus of determining blocking in ring network | |
US10243838B1 (en) | Interleaving members for proportionate network traffic distribution | |
WO2021139286A1 (zh) | 一种负载分担方法、设备和网络系统 | |
CN113132252B (zh) | 用于内部交换结构中不等链路连接的喷射 | |
CN113162873A (zh) | 一种负载分担方法、设备和网络系统 | |
CN115297065A (zh) | 处理设备通信互连方法、装置、计算机设备和存储介质 | |
Kultan et al. | Congestion Aware Multipath Routing: Performance Improvements in Core Networks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |