CN106330748B - 一种流量控制方法及装置 - Google Patents
一种流量控制方法及装置 Download PDFInfo
- Publication number
- CN106330748B CN106330748B CN201510374615.5A CN201510374615A CN106330748B CN 106330748 B CN106330748 B CN 106330748B CN 201510374615 A CN201510374615 A CN 201510374615A CN 106330748 B CN106330748 B CN 106330748B
- Authority
- CN
- China
- Prior art keywords
- flow
- route
- assigned
- equative
- equative route
- 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
Classifications
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种流量控制方法和装置,该方法包括如下步骤:确定将要划分的流量份数n,n大于等于2;将所有可用的流量分成n份,每份的流量相同或相差一个单位;将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序;当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份。上述技术方案使得流量切换时对正常路径的影响最小。
Description
技术领域
本发明涉及流量控制技术领域,尤其涉及一种流量控制方法及装置。
背景技术
传统的路由技术中,如果存在多条不同路径到达同一目的地址的应用场景,发往该目的地址的数据包只能利用其中的一条路径,其它路径处于备份状态或无效状态,路径资源空闲浪费,即使动态路由环境下,相互的切换也需要一定的时间。
通过路由等价多路径(ECMP,Equal-Cost Multipath)技术,将发往同一目的IP或者同一目的网段的三层转发流量通过不同的路径进行分担,实现了网络的负载均衡,如图1所示,对于R1到R2路径来说,存在三条等价路径,分别为路径1(R1,A,R2),路径2(R1,B,R2),路径3(R1,C,R2)。
流量在等价多路径中一般是基于流的方式分类,通常采用hash方法进行具体路径选择。在相关技术的ECMP技术中,当某一路径出现故障后,需要重新hash,从而使得流量在所有正常的路径上正常分配。这种处理方法会使得所有路径的流量彻底打乱,然后重新进行分配,从而影响流量分配的效率,并会影响后续的流量恢复过程。
发明内容
本发明要解决的技术问题是提供一种流量控制方法及装置,能够使得流量切换时对正常路径的影响最小。
为了解决上述问题,本发明提供了一种流量控制方法,包括如下步骤:
确定将要划分的流量份数n,n≥2;
将所有可用的流量分成n份,每份的流量相同或相差一个单位;
将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序;
当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份。
可选地,所述当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份包括:
当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
正常路径的原有流量保持不变,同时每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序。
可选地,所述当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份的步骤还包括:
当故障路径恢复正常后,分配到故障路径的流量的正常路径根据所记录的自身从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径。
可选地,所述当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份的步骤还包括:
当添加等价路径时,原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
可选地,所述确定将要划分的流量份数n的步骤包括:
取等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n;
其中,等价路径数变化范围是指可以工作的等价路径数目的所有可能值的集合。
可选地,所述将所有可用的流量分成n份,每份的流量相同或相差一个单位的步骤包括:
按照预定的规则将所有可用的流量分成n份,该预定的规则是任何能够使得每份的流量相同或相差一个单位的规则。
可选地,所述预定的规则是所有待转发报文的地址对应的值;
所述按照预定的规则将所有可用的流量分成n份的步骤包括:
将所有待转发报文的地址对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份。
可选地,该地址是源IP、目的IP,源MAC或者目的MAC地址。
可选地,该预定的规则是协议类型;
所述按照预定的规则将所有可用的流量分成n份的步骤包括:针对每一种协议类型的流量,都将其分成n份。
可选地,所述将多份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量的步骤包括:
采用依次循环的分配方式,每次为一条等价路径分配一份流量,当每次所有等价路径都分配有相同份数的流量时,重复循环相同的分配过程,直到使得每个等价路径都配置有n/m或者n/m+1份流量;或者,
采用一次性为每条等价路径分配应承担的流量份数的方法,一次性将每个等价路径应承担的n/m或者n/m+1份流量分配给相应的等价路径。
可选地,所述在流量分配过程中,每条等价路径均记录自身分配到的流量,并记录每份流量的分配顺序的步骤包括:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处;
相应地,当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤;
当故障路径恢复正常后,将恢复正常的路径对应的节点加入环中,之后才执行所述将从故障路径分配到的流量分配给恢复正常的路径的步骤;
当添加等价路径时,将该新增等价路径对应的节点加入环中,之后才执行所述原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤。
可选地,所述每条等价路径均记录自身分配到的流量和每份流量的分配顺序的步骤和所述每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序的步骤包括:
采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,即,每条等价路径或所述每个正常路径都按照自身分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶;
当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
当故障路径恢复正常后,分配到故障路径的流量的正常路径每次都将自身栈顶的流量分配给恢复正常的故障路径,将从故障路径分配到的流量分配给恢复正常的故障路径,直到将所有从故障路径分配到的流量都分配给恢复正常的路径;
当添加等价路径时,原有等价路径每次都将自身栈顶的流量分配给该新增等价路径,直到该新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
本发明实施例还提供了一种流量控制装置,该装置包括流量份数确定模块、流量划分模块、流量配置模块、流量信息记录模块及流量控制模块,其中:
所述流量份数确定模块设置成:确定将要划分的流量份数n,n≥2;
所述流量划分模块设置成:将所有可用的流量分成n份,每份流的量相同或相差一个单位;
所述流量配置模块设置成:将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
所述流量信息记录模块设置成:在流量分配过程中,记录每条等价路径分配到的流量和每份流量的分配顺序;
所述流量控制模块设置成:当需要进行流量切换的时候,根据所述流量信息记录模块所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份。
可选地,所述流量控制模块设置成按照如下方式当需要进行流量切换的时候,根据所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
保持正常路径的原有流量保持不变,同时通知所述流量信息记录模块记录每个正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序。
可选地,所述流量控制模块还设置成按照如下方式当需要进行流量切换的时候,根据所述流量信息记录模块所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当故障路径恢复正常后,根据所述流量信息记录模块所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径。
可选地,所述流量控制模块还设置成按照如下方式当需要进行流量切换的时候,根据所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当添加等价路径时,原有等价路径根据所述流量信息记录模块所记录的该原有等价路径分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
可选地,所述流量份数确定模块设置成按照如下方式确定将要划分的流量份数n:
确定将要划分的流量份数n的步骤包括:取等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n,
其中,等价路径数变化范围是指可以工作的等价路径数目的所有可能值的集合。
可选地,所述流量划分模块设置成按照如下方式将所有可用的流量分成n份,每份的流量相同或相差一个单位:按照预定的规则将所有可用的流量分成n份,该预定的规则是任何能够使得每份的流量相同或相差一个单位的规则。
可选地,所述流量配置模块设置成按照如下方式将多份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量:
采用依次循环的分配方式,每次为一条等价路径分配一份流量,当每次所有等价路径都分配有相同份数的流量时,重复循环相同的分配过程,直到使得每个等价路径都配置有n/m或者n/m+1份流量;或者,
采用一次性为每条等价路径分配应承担的流量份数的方法,一次性将每个等价路径应承担的n/m或者n/m+1份流量分配给相应的等价路径。
可选地,所述流量信息记录模块设置成按照如下方式在流量分配过程中,记录每条等价路径分配到的流量,并记录每份流量的分配顺序:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处;
相应地,所述流量控制模块还设置成:当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除;当故障路径恢复正常后,将恢复正常的路径对应的节点加入环中;当添加等价路径时,将该新增等价路径对应的节点加入环中。
可选地,所述流量信息记录模块设置成按照如下方式在流量分配过程中,记录每条等价路径分配到的流量和每份流量的分配顺序:采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,即针对每条等价路径,按照分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶;
所述流量控制模块设置成按照如下方式当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上:当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
所述流量控制模块设置成按照如下方式当故障路径恢复正常后,根据所述流量信息记录模块所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径;当故障路径恢复正常后,根据所述流量信息记录模块1104所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,每次都将正常路径栈顶的流量分配给恢复正常的故障路径,直到将所有从原故障路径分到流量的正常路径中,所有从故障路径分配到的流量都分配给恢复正常的路径。
所述流量控制模块设置成按照如下方式当添加等价路径时,使得原有等价路径根据所述流量信息记录模块所记录的该原有等价路径分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径:当添加等价路径时,根据所述流量信息记录模块所记录的该原有等价路径分配到的流量及每份流量的分配顺序,使得原有等价路径每次都将自身栈顶的流量分配给该新增等价路径,直到该新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
采用上述技术方案后,能够使得流量切换时对正常路径的影响最小。
附图说明
图1为本发明实施例的流量控制方法流程示意图;
图2为本发明实施例的环处理方式和栈结构处理方式示意图之一;
图3为本发明实施例的环处理方式和栈结构处理方式示意图之二;
图4为本发明实施例的环处理方式和栈结构处理方式示意图之三;
图5为本发明实施例的环处理方式和栈结构处理方式示意图之四;
图6为本发明实施例的环处理方式和栈结构处理方式示意图之五;
图7为本发明实施例的环处理方式和栈结构处理方式示意图之六;
图8为本发明实施例的环处理方式和栈结构处理方式示意图之七;
图9为本发明实施例的环处理方式和栈结构处理方式示意图之八;
图10为本发明实施例的环处理方式和栈结构处理方式示意图之九;
图11为本发明实施例的流量控制装置结构示意图;
图12为相关技术的流量控制方式示意图之一;
图13为相关技术的流量控制方式示意图之二。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明采用以下技术方案:
本发明实施例的流量分配方法,能够应用于ECMP系统中,也可以应用于其他类似系统中,如图1所示,该方法包括如下步骤:
101、确定将要划分的流量份数n,n≥2;
102、将所有可用的流量分成n份,每份的流量相同或相差一个单位;
103、将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
104、在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序;
105、当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份。
可选地,所述步骤105包括:
1051、当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
1052、正常路径的原有流量保持不变,同时每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序。
可选地,所述步骤105还包括:
1053、当故障路径恢复正常后,分配到故障路径的流量的正常路径根据所记录的自身从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径。
可选地,所述步骤105包括:
1051’、当添加等价路径时,原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
可选地,所述101,确定将要划分的流量份数n的步骤包括:根据实验值确定将要划分的流量份数n,该流量份数的大小使得流量能够尽量均匀地分配到多个所述等价路径。该实施例适用于等价路径数m不确定或者难确定的情况。
可选地,所述101,确定将要划分的流量份数n的步骤包括:取等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n。
其中,等价路径数变化范围是指可以工作的等价路径数目的所有可能值的集合或者称当前可用的等价路径数目的所有可能值的集合。例如,等价路径数变化范围(2,3,4,5)表示可以工作的路径数目可能是2,3,4或5。假设有10条等价路径,可以工作的等价路径数目应该是10,但是当路径故障的时候,可以工作的等价路径数目将可能减少,但是又因为系统可容忍的最多设备出故障数目是一定的,当等价路径数变的很少的时候,可能系统已经瘫痪,无需流量切换,所以可以工作的等价路径数目减少是有限度的,因此,等价路径数变化范围一般是可以确定的。也有些情况下,配置了多余的可以工作的等价路径。所以对于有10条等价路径,且最多容许有两条路径故障的情况,等价路径数变化范围可以是(8,9,10),即工作路径的数目可以是8,也可以是9或10,当可以工作的等价路径数目为8的时候表示有两条等价路径故障。等价路径变化范围也可以是(8,9,10,11,12),表示配置了多余的两条可以工作的等价路径。
假设等价路径数变化范围是(n,n+1,…n+m),则取n到n+m中所有可能值的最小公倍数为划分的份数,从而可以保证流量的绝对均分。举例而言,等价路径变化范围为(1,2,3,4),则取1,2,3和4这四个可能值的最小公倍数12作为将要划分的流量份数。采用等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n的方式适用于等价路径数固定或者可预测的情况,如对于大部分公司的网络来说,其等价路径数都是确定的,或者至少是有一定范围的。
可选地,所述102、将所有可用的流量分成n份,每份的流量相同或相差一个单位的步骤包括:
按照预定的规则将所有可用的流量分成n份,该预定的规则可以是任何可以使得每份的流量相同或相差一个单位的规则。
可选地,该预定的规则可以是所有待转发报文的地址对应的值。
可选地,所述按照预定的规则将所有可用的流量分成n份的步骤包括:将所有待转发报文的地址对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份。
可选地,该地址可以是源IP、目的IP,源MAC或者目的MAC地址。
可选地,该预定的规则也可以是协议类型。
可选地,所述按照预定的规则将所有可用的流量分成n份的步骤包括:针对每一种协议类型的流量,都将其分成n份。
上述预定的规则可以任意相互组合,比如在划分流量时,可以既考虑协议类型,又考虑源IP、目的IP,源MAC和目的MAC地址,只要能够使得每份的流量相同或相差一个单位就可以应用于本发明。
举例而言,将所有待转发报文的源IP对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份时,将所有待转发的报文的源IP对应的值包括12-47,其中12,24,36这些源IP对应的值与所确定的流量份数求余得0,被归入一份,13,25,37这些源IP对应的值与所确定的流量份数求余得1,被归入一份,…,23,35,47这些源IP对应的值与所确定的流量份数求余得11,被归入一份。
所述103、将多份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量的步骤包括:
采用依次循环的分配方式,每次为一条等价路径分配一份流量,当每次所有等价路径都分配有相同份数的流量时,重复循环相同的分配过程,直到使得每个等价路径都配置有n/m或者n/m+1份流量。举例而言,假如所有可用的流量被分成了12份,采用依次循环的分配方式进行流量分配时,将余数为0的流量分给第一条等价路径,将余数为1的流量分给第二条等价路径,将余数为2的流量分给第三条等价路径,将余数为3的流量分给第四条等价路径,此时,所有等价路径都分配有1份流量,重复循环相同的分配过程,将余数为4的流量分给第一条等价路径,以此类推,直到这四条等价路径都包含有12/4=3份流量,具体如下表一所示。
表一依次循环分配方式
或者,
采用一次性为每条等价路径分配应承担的流量份数的方法,一次性将每个等价路径应承担的n/m或者n/m+1份流量分配给相应的等价路径。举例而言,将余数为0,1,2的这三份流量一次性分配给第一条等价路径,将余数为3,4,5的这三份流量一次性分配给第二条等价路径,将余数为6,7,8的这三份流量一次性分配给第三条等价路径,将余数为9,10,11的这三份流量一次性分配给第四条等价路径。
表二一次性完成方式
所述104、在流量分配过程中,每条等价路径均记录自身分配到的流量,并记录每份流量的分配顺序的步骤包括:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处。
相应地,所述步骤1051中,当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤;
所述步骤1053中,当故障路径恢复正常后,将恢复正常的路径对应的节点加入环中,之后才执行所述将从故障路径分配到的流量分配给恢复正常的路径的步骤。
所述步骤1051’中,当添加等价路径时,将该新增等价路径对应的节点加入环中,之后才执行所述原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤。
所述步骤104和1052均包括:采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,也就是说,每条等价路径按照自身分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶。
所述步骤1051中所述当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上的步骤,所述步骤1053中当故障路径恢复正常后,分配到故障路径的流量的正常路径根据所记录的自身从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径的步骤,所述步骤1051’中,当添加等价路径时,原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤均包括:采用栈结构将流量分配到正常路径上、恢复正常的故障路径上或者新增等价路径上。
也就是说,当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
当故障路径恢复正常后,分配到故障路径的流量的正常路径每次都将自身栈顶的流量分配给恢复正常的故障路径,将从故障路径分配到的流量分配给恢复正常的故障路径,直到将所有从故障路径分配到的流量都分配给恢复正常的路径;
当添加等价路径时,原有等价路径每次都将自身栈顶的流量分配给该新增等价路径,直到该新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
以上所有实施方式可以随意组合。
下面将通过几个具体的应用实例对本发明的具体实施进行详细的说明。
应用实例一:
等价路径数m不确定或者难确定的情况下,根据平常的综合使用情况确定将要分成的流量份数n为10;
将所有可用的流量分成10份,每份流量所包括的IP数相同或相差一个,例如每份流量都包括5个IP地址;
将所述10份流量按照上述依次循环分配的方式分配给3条等价路径,等价路径数只有在网络使用的过程中才能确定。在网络的使用过程中,将第1份流量a分给第1条等价路径,将第2份流量b分给第2条等价路径,将第3份流量c分给第2条等价路径,依次类推,直到将第10份流量j分给第1条等价路径,具体流量分配表如下表三所示。
表三依次循环分配方式
将所述10份流量按照上述一次性分配的方式分配给3条等价路径,等价路径数只有在网络使用的过程中才能确定。在网络的使用过程中,将第1份流量a、第2份流量b、第3份流量c和第4份流量d一次性分给第1条等价路径,将第5份流量e、第6份流量f和第7份流量g一次性分给第2条等价路径,将第8份流量h、第9份流量i和第10份流量j一次性分给第3条等价路径,具体流量分配表如下表四所示。也可以是第2条等价路径分配有4份流量,而第1条和第3条等价路径分配有3份流量,或者第3条等价路径分配有4份流量,而第1条和第2条等价路径分配有3份流量,具体如下表四所示。
表四一次性完成方式
在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序,可以采用上述的环的处理方式,当采用上述依次循环分配的方式进行流量分配时,具体如图2所示,将等价路径1,2和3串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处。
当多个所述等价路径中的等价路径2发生故障时,将该故障路径2对应的节点从所述环中删除,如图3所示,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤,如图4所示,最终所有等价路径,即等价路径1和3所配置的流量份数相同,都是5份流量;当故障路径2恢复正常后,将恢复正常的路径2对应的节点加入环中,之后执行所述将从故障路径分配到的流量分配给恢复正常的路径的步骤,因为等价路径1通过记录知道自身之前从等价路径2获得了流量b,所以等价路径1将流量b还给恢复正常后的等价路径2,等价路径3通过记录知道自身之前从等价路径2获得了流量e和h,所以等价路径3将流量e和h还给恢复正常后的等价路径2,最终回复后的流量如图2所示。当添加等价路径4时,将该新增等价路径4对应的节点加入环中,之后才执行所述原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份,如图5所示。一般情况下,待分配流量的等价路径在准备为待接收流量的等价路径分配流量时,如果发现如果将自身的一份流量分给待接收流量的等价路径,则该待接收流量的等价路径所配置的流量份数将超过该待分配流量的等价路径所配置的流量份数,则停止分配该份流量,图5中,当等价路径3准备将自身的一份流量分给新增路径4时,发现如果将流量i如果分给新增路径4,新增路径4将会有3份流量,而等价路径3将剩余2份流量,因此不再将流量i分给新增路径4。当然,因为只要新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份即可,所以等价路径也可以将流量i如果分给新增路径4,如图6所示。在整个流量再分配过程中,哪个等价路径所配置的流量份数比其他等价路径所配置的流量份数多一份或少一份,这些等价路径之间可以通过协商来确定,只要最终环中所有等价路径所配置的流量份数彼此相同或相差一份即可。
当采用上述一次性完成分配的方式进行流量分配时,也可以采用上述的环的处理方式,具体实现与采用上述依次循环分配的方式进行流量分配时同理,在此不再赘述。
无论采用一次性完成分配的方式进行流量分配时不采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时不采用上述环的处理方式,或是采用一次性完成分配的方式进行流量分配时采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时采用上述环的处理方式,当需要进行流量切换的时候,都可以采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序。
采用上述依次循环分配的方式进行流量分配时采用上述环的处理方式,这种情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序时进行的处理如图2-6所示。具体地,如上述图2所示,等价路径1按照自身分配到的流量的先后排列,依次为a,d,g,j,其中,最先分到的流量a位于栈底,最后分配到的流量j位于栈顶。当多个所述等价路径中的任一路径2发生故障时,如图2、3和4所示,等价路径2首先将其栈顶的流量h分给等价路径3,此时流量e变为等价路径2的栈顶,再次将流量e分配给等价路径1,此时流量b变为等价路径2的栈顶,为了使得最终所有等价路径所配置的流量份数相同,都包括5份流量,最后将流量b分配给等价路径3。
如上述图2所示,当故障路径恢复正常后,分配到故障路径的流量的正常路径1和3每次都将自身栈顶的流量分配给恢复正常的故障路径2,即正常路径1将自己栈顶的流量e还给恢复正常的路径2后,已经将之前从路径2分到的所有流量还给恢复正常的路径2,正常路径3将自己栈顶的流量b还给恢复正常的路径2后,流量h变为栈顶,且是之前从路径2分到的流量,所以为了将从之前故障路径2分配到的流量分配给恢复正常的故障路径2,需要将此时栈顶的流量h还给恢复正常的路径2,此时,正常路径3已将从之前故障路径2分配到的流量b和h全都还给了恢复正常的故障路径2,停止流量分配。
如图5和6所示,当添加等价路径4时,原有等价路径1将其栈顶的流量j分配给新增等价路径4,原有等价路径2将其栈顶的流量h分配给新增等价路径4,原有等价路径3将其栈顶的流量i分配给新增等价路径4,此时实现了该新增等价路径4所配置的流量份数与原有等价路径1,2和3所配置的流量份数相同或相差一份,停止流量分配。
采用一次性完成分配的方式进行流量分配时不采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时不采用上述环的处理方式,或是采用一次性完成分配的方式进行流量分配时采用上述环的处理方式,这些情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序的具体处理与上述依次循环分配的方式进行流量分配时采用上述环的处理方式,这种情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序时进行的处理同理,在此不再赘述。
应用实例二:
等价路径固定或者可预测为1,2,3,4的情况下,取1,2,3和4这四个数的最小公倍数12作为将要划分的流量份数。
所有待转发的报文的源IP对应的值包括12-47,其中12,24,36这些源IP对应的值与所确定的流量份数求余得0,被归入一份,13,25,37这些源IP对应的值与所确定的流量份数求余得1,被归入一份,…,23,35,47这些源IP对应的值与所确定的流量份数求余得11,被归入一份。
采用依次循环的分配方式进行流量分配时,将余数为0的流量分给第一条等价路径,将余数为1的流量分给第二条等价路径,将余数为2的流量分给第三条等价路径,将余数为3的流量分给第四条等价路径,此时,所有等价路径都分配有1份流量,重复循环相同的分配过程,将余数为4的流量分给第一条等价路径,以此类推,直到这四条等价路径都包含有12/4=3份流量,具体如上表一所示。
采用一次性为每条等价路径分配应承担的流量份数的方法时,将余数为0,1,2的这三份流量一次性分配给第一条等价路径,将余数为3,4,5的这三份流量一次性分配给第二条等价路径,将余数为6,7,8的这三份流量一次性分配给第三条等价路径,将余数为9,10,11的这三份流量一次性分配给第四条等价路径,具体如上表二所示。
在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序,可以采用上述的环的处理方式,当采用上述依次循环分配的方式进行流量分配时,具体如图7所示,将等价路径1,2,3和4串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处。
当多个所述等价路径中的等价路径2发生故障时,将该故障路径2对应的节点从所述环中删除,如图8所示,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤,如图9所示,最终所有等价路径,即等价路径1、3和4所配置的流量份数相同,都是4份流量;当故障路径2恢复正常后,将恢复正常的路径2对应的节点加入环中,之后执行所述将从故障路径分配到的流量分配给恢复正常的路径的步骤,因为等价路径1通过记录知道自身之前从等价路径2获得了余数为9的流量,所以等价路径1将余数为9的流量还给恢复正常后的等价路径2,等价路径3通过记录知道自身之前从等价路径2获得了余数为5的流量,所以等价路径3将余数为5的流量还给恢复正常后的等价路径2,最终回复后的流量如图7所示。
当添加等价路径4时,将该新增等价路径4对应的节点加入环中,之后才执行所述原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份,如图10所示。一般情况下,待分配流量的等价路径在准备为待接收流量的等价路径分配流量时,如果发现如果将自身的一份流量分给待接收流量的等价路径,则该待接收流量的等价路径所配置的流量份数将超过该待分配流量的等价路径所配置的流量份数,则停止分配该份流量,图10中,首先从等价路径4栈顶取一份余数为11的流量分给新增路径5,再从等价路径3栈顶取一份余数为10的流量分给新增路径5,当等价路径2准备分配流量给路径5时,发现新增路径5所配置的流量数只比其少1,从而停止分配,等价路径1同理,具体如下表五所示。当然,因为只要新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份即可,所以等价路径2也可以将栈顶的流量9分给新增路径5。在整个流量再分配过程中,哪个等价路径所配置的流量份数比其他等价路径所配置的流量份数多一份或少一份,这些等价路径之间可以通过协商来确定,只要最终环中所有等价路径所配置的流量份数彼此相同或相差一份即可。
表五添加路径后状态
当采用上述一次性完成分配的方式进行流量分配时,也可以采用上述的环的处理方式,具体实现与采用上述依次循环分配的方式进行流量分配时同理,在此不再赘述。
无论采用一次性完成分配的方式进行流量分配时不采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时不采用上述环的处理方式,或是采用一次性完成分配的方式进行流量分配时采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时采用上述环的处理方式,当需要进行流量切换的时候,都可以采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序。
采用上述依次循环分配的方式进行流量分配时采用上述环的处理方式,这种情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序时进行的处理如图7-11所示。具体地,如上述图2所示,等价路径1按照自身分配到的流量的先后排列,依次为0,4,8,其中,最先分到的流量0位于栈底,最后分配到的流量8位于栈顶。当多个所述等价路径中的任一路径2发生故障时,如图2、3和4所示,等价路径2首先将其栈顶的余数为9的流量分给等价路径1,此时余数为5的流量变为等价路径2的栈顶,再次将余数为5的流量分配给等价路径3,此时余数为的1流量变为等价路径2的栈顶,为了使得最终所有等价路径所配置的流量份数相同,都包括4份流量,最后将余数为的1流量分配给等价路径4。
如上述图2所示,当故障路径恢复正常后,分配到故障路径的流量的正常路径1,3和4每次都将自身栈顶的流量分配给恢复正常的故障路径2,即正常路径1将自己栈顶的余数为9的流量还给恢复正常的路径2后,已经将之前从路径2分到的所有流量还给恢复正常的路径2,正常路径3将自己栈顶的余数为5的流量还给恢复正常的路径2后,已将从之前故障路径2分配到的所有流量全都还给了恢复正常的故障路径2,停止流量分配,正常路径4将自己栈顶的余数为1的流量还给恢复正常的路径2后,已将从之前故障路径2分配到的所有流量全都还给了恢复正常的故障路径2,停止流量分配。
如图5和6所示,当添加等价路径5时,原有等价路径4将其栈顶的余数为11的流量分配给新增等价路径5,原有等价路径3将其栈顶的余数为10的流量分配给新增等价路径5,此时实现了该新增等价路径5所配置的流量份数与原有等价路径1,2,3和4所配置的流量份数相同或相差一份,停止流量分配。
采用一次性完成分配的方式进行流量分配时不采用上述环的处理方式,还是采用上述依次循环分配的方式进行流量分配时不采用上述环的处理方式,或是采用一次性完成分配的方式进行流量分配时采用上述环的处理方式,这些情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序的具体处理与上述依次循环分配的方式进行流量分配时采用上述环的处理方式,这种情况下采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序时进行的处理同理,在此不再赘述。
本发明实施例还公开了一种流量控制装置,如图11所示,该装置包括流量份数确定模块1101、流量划分模块1102、流量配置模块1103、流量信息记录模块1104及流量控制模块1105,其中:
所述流量份数确定模块1101设置成:确定将要划分的流量份数n,n≥2;
所述流量划分模块1102设置成:将所有可用的流量分成n份,每份流的量相同或相差一个单位;
所述流量配置模块1103设置成:将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
所述流量信息记录模块1104设置成:在流量分配过程中,记录每条等价路径分配到的流量和每份流量的分配顺序;
所述流量控制模块1105设置成:当需要进行流量切换的时候,根据所述流量信息记录模块1104所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份。
可选地,所述流量控制模块1105设置成按照如下方式当需要进行流量切换的时候,根据所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
保持正常路径的原有流量保持不变,同时通知所述流量信息记录模块1104记录每个正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序。
所述流量控制模块1105还设置成按照如下方式当需要进行流量切换的时候,根据所述流量信息记录模块1104所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当故障路径恢复正常后,根据所述流量信息记录模块1104所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径。
所述流量控制模块1105还设置成按照如下方式当需要进行流量切换的时候,根据所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当添加等价路径时,原有等价路径根据所述流量信息记录模块1104所记录的该原有等价路径分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
可选地,所述流量份数确定模块1101设置成按照如下方式确定将要划分的流量份数n:根据实验值确定将要划分的流量份数n,该流量份数的大小使得流量能够尽量均匀地分配到多个所述等价路径。该实施例适用于等价路径数m不确定或者难确定的情况。
可选地,所述流量份数确定模块1101还可以设置成按照如下方式确定将要划分的流量份数n:确定将要划分的流量份数n的步骤包括:取等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n。
假设等价路径数变化范围是(n,n+1,…n+m),则取n到n+m的所有可能值的最小公倍数为划分的份数,从而可以保证流量的绝对均分。举例而言,等价路径变化范围是(1,2,3,4),则取1,2,3和4这四个可能值的最小公倍数12作为将要划分的流量份数。采用等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n的方式适用于等价路径数固定或者可预测的情况,如对于大部分公司的网络来说,其等价路径数都是确定的,或者至少是有一定范围的。
可选地,所述流量划分模块1102设置成按照如下方式将所有可用的流量分成n份,每份的流量相同或相差一个单位:按照预定的规则将所有可用的流量分成n份,该预定的规则可以是任何可以使得每份的流量相同或相差一个单位的规则。
可选地,该预定的规则可以是所有待转发报文的地址对应的值。
可选地,所述流量划分模块1102设置成按照如下方式按照预定的规则将所有可用的流量分成n份:将所有待转发报文的地址对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份。
可选地,该地址可以是源IP、目的IP,源MAC或者目的MAC地址。
可选地,该预定的规则也可以是协议类型。
可选地,所述流量划分模块1102设置成按照如下方式按照预定的规则将所有可用的流量分成n份:针对每一种协议类型的流量,都将其分成n份。
举例而言,将所有待转发报文的源IP对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份时,将所有待转发的报文的源IP对应的值包括12-47,其中12,24,36这些源IP对应的值与所确定的流量份数求余得0,被归入一份,13,25,37这些源IP对应的值与所确定的流量份数求余得1,被归入一份,…,23,35,47这些源IP对应的值与所确定的流量份数求余得11,被归入一份。
所述流量配置模块1103设置成按照如下方式将多份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量:
采用依次循环的分配方式,每次为一条等价路径分配一份流量,当每次所有等价路径都分配有相同份数的流量时,重复循环相同的分配过程,直到使得每个等价路径都配置有n/m或者n/m+1份流量。举例而言,假如所有可用的流量被分成了12份,采用依次循环的分配方式进行流量分配时,将余数为0的流量分给第一条等价路径,将余数为1的流量分给第二条等价路径,将余数为2的流量分给第三条等价路径,将余数为3的流量分给第四条等价路径,此时,所有等价路径都分配有1份流量,重复循环相同的分配过程,将余数为4的流量分给第一条等价路径,以此类推,直到这四条等价路径都包含有12/4=3份流量,具体如上表一所示。
或者,
采用一次性为每条等价路径分配应承担的流量份数的方法,一次性将每个等价路径应承担的n/m或者n/m+1份流量分配给相应的等价路径。举例而言,将余数为0,1,2的这三份流量一次性分配给第一条等价路径,将余数为3,4,5的这三份流量一次性分配给第二条等价路径,将余数为6,7,8的这三份流量一次性分配给第三条等价路径,将余数为9,10,11的这三份流量一次性分配给第四条等价路径,具体如上表二所示。
所述流量信息记录模块1104设置成按照如下方式在流量分配过程中,记录每条等价路径分配到的流量,并记录每份流量的分配顺序:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处。
相应地,所述流量控制模块1105还设置成:当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除;
所述流量控制模块1105还设置成:当故障路径恢复正常后,将恢复正常的路径对应的节点加入环中。
所述流量控制模块1105还设置成:当添加等价路径时,将该新增等价路径对应的节点加入环中。
所述流量信息记录模块1104设置成按照如下方式在流量分配过程中,记录每条等价路径分配到的流量和每份流量的分配顺序:采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,也就是说,针对每条等价路径,按照分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶。
所述流量控制模块1105设置成按照如下方式当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上:
当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
所述流量控制模块1105设置成按照如下方式当故障路径恢复正常后,根据所述流量信息记录模块1104所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径
当故障路径恢复正常后,根据所述流量信息记录模块1104所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,每次都将正常路径栈顶的流量分配给恢复正常的故障路径,直到将所有从原故障路径分到流量的正常路径中,所有从故障路径分配到的流量都分配给恢复正常的路径。
所述流量控制模块1105设置成按照如下方式当添加等价路径时,使得原有等价路径根据所述流量信息记录模块1104所记录的该原有等价路径分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径:
当添加等价路径时,根据所述流量信息记录模块1104所记录的该原有等价路径分配到的流量及每份流量的分配顺序,使得原有等价路径每次都将自身栈顶的流量分配给该新增等价路径,直到该新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
上述任意的流量分配装置都可以位于EMCP系统或其他类似系统中。
相关的ECMP技术中,当某一路径出现故障后,需要重新hash,使流量在剩余路径上仍均匀分配,以图12为例,假设C链路发生故障,路径3将从等价路径中移除,重新hash后会导致原有走路径1的流量,有一部分会走路径2,而原有走路径2的流量也会有一部分走路径1。可见,当等价多路径中的某一路径故障时,相关的处理方法会使得所有路径的流量彻底打乱,然后重新进行分配,从而影响流量再分配的效率,并会影响后续的流量恢复过程。而通过本发明技术方案,当路径3从链路中移除后,初始选择路径1和路径2的流量其路径保持不变,而只将原来走路径3的流量,均分为两份分别走路径1和路径2,当故障路径恢复时,则可以保证原有路径3的流量还走路径3,还保证了在该过程中,其余流量路径受到的影响最小。
相关的ECMP技术中,当等价路径数增加时,如增加一个路径4(R1,D,R2),如图13所示。重新hash会导致除了路径4应分担的流量的路径改变外,还会导致不由路径4分担的其他流量对应路径发生变化。可见,当增加一等价路径时,相关的处理方法也会使得所有路径的流量彻底打乱,然后重新进行分配,从而影响流量再分配的效率,并会影响后续的流量恢复过程。而通过本发明技术方案,只有路径4应分担的流量,从原有路径转移到路径4,而其余未被路径4分担的流量,保持了原有路径。
可见,本发明实施例的流量控制方法使得在发生流量切换时,对原有路径的影响最小,从而提高了流量再分配的效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改,等同替换和改进,均应包含在本发明的保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (15)
1.一种流量控制方法,其特征在于,包括如下步骤:
确定将要划分的流量份数n,n≥2;
将所有可用的流量分成n份,每份的流量相同或相差一个单位;
将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
在流量分配过程中,每条等价路径均记录自身分配到的流量和每份流量的分配顺序;
当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份包括:
当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
正常路径的原有流量保持不变,同时每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序。
2.如权利要求1所述的流量控制方法,其特征在于,所述当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份的步骤还包括:
当故障路径恢复正常后,分配到故障路径的流量的正常路径根据所记录的自身从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径。
3.如权利要求1所述的流量控制方法,其特征在于,所述当需要进行流量切换的时候,根据每条等价路径所记录的分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份的步骤还包括:
当添加等价路径时,原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
4.如权利要求1所述的流量控制方法,其特征在于,所述确定将要划分的流量份数n的步骤包括:
取等价路径数变化范围内所有可能值的最小公倍数作为将要划分的流量份数n;
其中,等价路径数变化范围是指可以工作的等价路径数目的所有可能值的集合。
5.如权利要求1所述的流量控制方法,其特征在于,所述将所有可用的流量分成n份,每份的流量相同或相差一个单位的步骤包括:
按照预定的规则将所有可用的流量分成n份,该预定的规则是任何能够使得每份的流量相同或相差一个单位的规则。
6.如权利要求5所述的流量控制方法,其特征在于,
所述预定的规则是所有待转发报文的地址对应的值;
所述按照预定的规则将所有可用的流量分成n份的步骤包括:
将所有待转发报文的地址对应的值与所确定的流量份数求余,所有余数相同的流量被归入一份。
7.如权利要求6所述的流量控制方法,其特征在于,该地址是源IP、目的IP,源MAC或者目的MAC地址。
8.如权利要求5所述的流量控制方法,其特征在于,
该预定的规则是协议类型;
所述按照预定的规则将所有可用的流量分成n份的步骤包括:针对每一种协议类型的流量,都将其分成n份。
9.如权利要求1所述的流量控制方法,其特征在于,所述将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量的步骤包括:
采用依次循环的分配方式,每次为一条等价路径分配一份流量,当每次所有等价路径都分配有相同份数的流量时,重复循环相同的分配过程,直到使得每个等价路径都配置有n/m或者n/m+1份流量;或者,
采用一次性为每条等价路径分配应承担的流量份数的方法,一次性将每个等价路径应承担的n/m或者n/m+1份流量分配给相应的等价路径。
10.如权利要求2所述的流量控制方法,其特征在于,所述在流量分配过程中,每条等价路径均记录自身分配到的流量,并记录每份流量的分配顺序的步骤包括:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处;
相应地,当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤;
当故障路径恢复正常后,将恢复正常的路径对应的节点加入环中,之后才执行将从故障路径分配到的流量分配给恢复正常的路径的步骤。
11.如权利要求3所述的流量控制方法,其特征在于,所述在流量分配过程中,每条等价路径均记录自身分配到的流量,并记录每份流量的分配顺序的步骤包括:
将所有的m条等价路径串成一个环,环中的每个节点代表一条等价路径,将每条等价路径分配到的流量和每份流量的分配顺序记录到相应的节点处;
相应地,当多个所述等价路径中的任一路径发生故障时,将该故障路径对应的节点从所述环中删除,之后再执行所述将该故障路径上的流量分配到正常路径上的步骤;
当添加等价路径时,将新增等价路径对应的节点加入环中,之后才执行所述原有等价路径根据所记录的自身分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给该新增等价路径的步骤。
12.如权利要求2所述的流量控制方法,其特征在于,所述每条等价路径均记录自身分配到的流量和每份流量的分配顺序的步骤和所述每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序的步骤包括:
采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,即,每条等价路径或所述每个正常路径都按照自身分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶;
当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
当故障路径恢复正常后,分配到故障路径的流量的正常路径每次都将自身栈顶的流量分配给恢复正常的故障路径,将从故障路径分配到的流量分配给恢复正常的故障路径,直到将所有从故障路径分配到的流量都分配给恢复正常的路径。
13.如权利要求3所述的流量控制方法,其特征在于,所述每条等价路径均记录自身分配到的流量和每份流量的分配顺序的步骤和所述每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序的步骤包括:
采用栈结构记录每条等价路径分配到的流量和每份流量的分配顺序,即,每条等价路径或所述每个正常路径都按照自身分配到的流量的先后排列,最先分到的流量位于栈底,最后分配到的流量位于栈顶;
当多个所述等价路径中的任一路径发生故障时,每次都将该故障路径上栈顶的流量分配到正常路径上,直到每个正常路径分配到的流量份数一样多或者相差一份流量;
当添加等价路径时,原有等价路径每次都将自身栈顶的流量分配给新增等价路径,直到该新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
14.一种流量控制装置,该装置包括至少一个处理器,该处理器被配置来执行如下流量份数确定模块、流量划分模块、流量配置模块、流量信息记录模块及流量控制模块,其中:
所述流量份数确定模块设置成:确定将要划分的流量份数n,n≥2;
所述流量划分模块设置成:将所有可用的流量分成n份,每份流的量相同或相差一个单位;
所述流量配置模块设置成:将n份所述流量分配给m个等价路径,使得每个等价路径都配置有n/m或者n/m+1份流量;
所述流量信息记录模块设置成:在流量分配过程中,记录每条等价路径分配到的流量和每份流量的分配顺序;
所述流量控制模块设置成:当需要进行流量切换的时候,根据所述流量信息记录模块所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份包括:
当多个所述等价路径中的任一路径发生故障时,将该故障路径上的流量分配到正常路径上,每个正常路径分配到的流量份数一样多或者相差一份流量;
正常路径的原有流量保持不变,同时每个正常路径都记录自身从故障路径分配到的流量及分配到的每份流量的分配顺序。
15.如权利要求14所述的流量控制装置,其特征在于,所述流量控制模块设置成按照如下方式当需要进行流量切换的时候,根据所记录的每条等价路径分配到的流量和每份流量的分配顺序,按照最后分配到的流量最先分配给需要的等价路径的方式进行分配,使得最终所有等价路径所配置的流量份数相同或相差一份:
当故障路径恢复正常后,根据所述流量信息记录模块所记录的正常路径从故障路径分配到的流量及分配到的每份流量的分配顺序,将从故障路径分配到的流量分配给恢复正常的故障路径;
当添加等价路径时,原有等价路径根据所述流量信息记录模块所记录的该原有等价路径分配到的流量及每份流量的分配顺序,将最后分配到的流量分配给新增等价路径,每个原有等价路径分配给新增等价路径的流量份数相同或相差一份流量,直到新增等价路径所配置的流量份数与原有等价路径所配置的流量份数相同或相差一份。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510374615.5A CN106330748B (zh) | 2015-06-30 | 2015-06-30 | 一种流量控制方法及装置 |
US15/738,255 US10374957B2 (en) | 2015-06-30 | 2016-06-24 | Traffic control method and apparatus |
PCT/CN2016/087107 WO2017000845A1 (zh) | 2015-06-30 | 2016-06-24 | 一种流量控制方法及装置 |
EP16817209.6A EP3301872B1 (en) | 2015-06-30 | 2016-06-24 | Traffic control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510374615.5A CN106330748B (zh) | 2015-06-30 | 2015-06-30 | 一种流量控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106330748A CN106330748A (zh) | 2017-01-11 |
CN106330748B true CN106330748B (zh) | 2019-04-09 |
Family
ID=57607709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510374615.5A Active CN106330748B (zh) | 2015-06-30 | 2015-06-30 | 一种流量控制方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10374957B2 (zh) |
EP (1) | EP3301872B1 (zh) |
CN (1) | CN106330748B (zh) |
WO (1) | WO2017000845A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018212360A1 (de) * | 2018-07-25 | 2020-01-30 | Robert Bosch Gmbh | Erste Netzwerkeinheit eines Kommunikationsnetzwerks |
CN109587068B (zh) * | 2018-12-03 | 2022-08-12 | 深圳前海微众银行股份有限公司 | 流量切换方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272290A (zh) * | 2008-05-12 | 2008-09-24 | 中国电信股份有限公司 | Ip网络中路径拥塞状态的测量方法、测量装置和转发装置 |
CN101499957A (zh) * | 2008-01-29 | 2009-08-05 | 中国电信股份有限公司 | 一种多径负载均衡的实现方法和数据转发装置 |
CN101674224A (zh) * | 2008-09-08 | 2010-03-17 | 华为技术有限公司 | 生成转发表项信息的方法、标签交换路由器及系统 |
US7945705B1 (en) * | 2004-05-25 | 2011-05-17 | Chelsio Communications, Inc. | Method for using a protocol language to avoid separate channels for control messages involving encapsulated payload data messages |
EP2690835A1 (en) * | 2011-03-24 | 2014-01-29 | Nec Corporation | Communication system and communication control method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275503B1 (en) | 1998-07-24 | 2001-08-14 | Honeywell International Inc. | Method for transmitting large information packets over networks |
DE102005057568B4 (de) * | 2005-12-02 | 2021-06-17 | Robert Bosch Gmbh | Sendeeinrichtung und Empfangseinrichtung |
US7929527B2 (en) * | 2008-04-18 | 2011-04-19 | At&T Intellectual Property Ii, Lp | Transport protocol for efficient aggregation of heterogeneous lossy paths |
CN101420384A (zh) | 2008-12-12 | 2009-04-29 | 北京邮电大学 | 一种实现ecmp域内自愈保护的方法 |
JP5392049B2 (ja) * | 2009-12-11 | 2014-01-22 | 富士通株式会社 | 経路制御方法、通信システム、及び通信装置 |
US8982689B2 (en) | 2012-04-20 | 2015-03-17 | Telefonaktiebolaget L M Ericsson (Publ) | Split tiebreakers for 802.1AQ |
CN103078804B (zh) | 2012-12-28 | 2015-07-22 | 福建星网锐捷网络有限公司 | 等价多路径表处理方法、装置及网络设备 |
CN104144120A (zh) | 2013-05-07 | 2014-11-12 | 杭州华三通信技术有限公司 | 转发信息配置方法及装置 |
JP2015012343A (ja) * | 2013-06-26 | 2015-01-19 | 日本電信電話株式会社 | 通信ネットワークおよび転送ノード |
CN104022952B (zh) * | 2014-06-03 | 2017-12-08 | 新华三技术有限公司 | 一种报文转发方法及装置 |
-
2015
- 2015-06-30 CN CN201510374615.5A patent/CN106330748B/zh active Active
-
2016
- 2016-06-24 EP EP16817209.6A patent/EP3301872B1/en active Active
- 2016-06-24 US US15/738,255 patent/US10374957B2/en active Active
- 2016-06-24 WO PCT/CN2016/087107 patent/WO2017000845A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945705B1 (en) * | 2004-05-25 | 2011-05-17 | Chelsio Communications, Inc. | Method for using a protocol language to avoid separate channels for control messages involving encapsulated payload data messages |
CN101499957A (zh) * | 2008-01-29 | 2009-08-05 | 中国电信股份有限公司 | 一种多径负载均衡的实现方法和数据转发装置 |
CN101272290A (zh) * | 2008-05-12 | 2008-09-24 | 中国电信股份有限公司 | Ip网络中路径拥塞状态的测量方法、测量装置和转发装置 |
CN101674224A (zh) * | 2008-09-08 | 2010-03-17 | 华为技术有限公司 | 生成转发表项信息的方法、标签交换路由器及系统 |
EP2690835A1 (en) * | 2011-03-24 | 2014-01-29 | Nec Corporation | Communication system and communication control method |
Also Published As
Publication number | Publication date |
---|---|
US20180183712A1 (en) | 2018-06-28 |
EP3301872A1 (en) | 2018-04-04 |
WO2017000845A1 (zh) | 2017-01-05 |
EP3301872B1 (en) | 2019-09-25 |
CN106330748A (zh) | 2017-01-11 |
US10374957B2 (en) | 2019-08-06 |
EP3301872A4 (en) | 2018-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671289B2 (en) | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system | |
US20160330281A1 (en) | Systems and methods to improve read/write performance in object storage applications | |
CN112153700B (zh) | 一种网络切片资源管理方法及设备 | |
CN110896355B (zh) | 一种网络切片的选择方法及装置 | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
CN102457571B (zh) | 一种云存储中数据均衡分布方法 | |
CN103797462A (zh) | 一种创建虚拟机的方法和装置 | |
US20150215394A1 (en) | Load distribution method taking into account each node in multi-level hierarchy | |
JP2018516022A (ja) | メッセージの転送処理方法、装置及びシステム | |
CN104469845B (zh) | 一种报文处理方法、系统及设备 | |
CN108924268A (zh) | 一种容器云服务系统及pod创建方法、装置 | |
CN106105162A (zh) | 基于交换机的负载均衡器 | |
CN101753455B (zh) | 转发方法及装置 | |
CN108964964A (zh) | 一种网络拓扑显示方法和装置 | |
Assi et al. | Towards scalable traffic management in cloud data centers | |
Jiang et al. | Efficient joint approaches for location-constrained survivable virtual network embedding | |
Rista et al. | Improving the network performance of a container-based cloud environment for hadoop systems | |
CN106330748B (zh) | 一种流量控制方法及装置 | |
CN115277429A (zh) | 基于灵活以太网的电力通信业务资源分配方法及装置 | |
JP5754504B2 (ja) | 管理装置、情報処理装置、情報処理システム及びデータ転送方法 | |
CN106104503A (zh) | 使用统一api对用于转发的服务器和架构编程以用于细粒度网络优化 | |
US20150229566A1 (en) | Least Disruptive AF Assignments in TRILL LAN Adjacencies | |
CN103795621B (zh) | 一种虚拟机的数据交换方法、装置及物理主机 | |
CN103259720A (zh) | 一种基于mtr的数据传输方法和设备 | |
CN117130723A (zh) | 分配信息的确定方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |