CN107547423A - 一种流量转发控制方法和装置 - Google Patents
一种流量转发控制方法和装置 Download PDFInfo
- Publication number
- CN107547423A CN107547423A CN201710413994.3A CN201710413994A CN107547423A CN 107547423 A CN107547423 A CN 107547423A CN 201710413994 A CN201710413994 A CN 201710413994A CN 107547423 A CN107547423 A CN 107547423A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- flow
- chip
- rate
- adjusted value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种流量转发控制方法和装置,方法包括:将接收到的流量分发到聚合组的各成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;获取一个调整周期内,各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片的一次流量转发速率调整值;通知各转发芯片按照一次流量转发速率调整值设置承诺访问速率CAR上限值。本申请的技术方案实现了按照预设的聚合组的CAR上限值调整各转发芯片的流量转发速率,使聚合组的实际流量转发速率更接近聚合组的CAR上限值的效果,满足了实际需求。
Description
技术领域
本申请涉及网络通信技术领域,具体涉及一种流量转发控制方法和装置。
背景技术
目前,网络设备例如路由器设备在实现服务质量(Quality of Service,简称QoS)中常用一种承诺访问速率(Committed Access Rate,简称CAR)的技术,以对路由器转发的流量进行限速。例如,在一个网络中,上游设备A和下游设备B互连,下游设备B因为转发能力有限,无法承载更多流量高速转发,为了减少对下游设备B的冲击和影响,可以在A设备连接B设备的出口配置CAR功能,让A设备出口的流量限定在CAR的范围内,这样能够保证B设备在自己处理能力范围内进行流量转发。
发明内容
本申请提供了一种流量转发控制方法和装置,以满足上述需求。
根据本申请的一个方面,提供了一种流量转发控制方法,包括:
将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
通知各转发芯片按照所述对应的一次流量转发速率调整值设置承诺访问速率CAR上限值,以控制所述转发芯片的流量转发。
根据本申请的另一个方面,提供了一种流量转发控制装置,包括:
分担模块,适于将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
调整值计算模块,适于获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
控制模块,适于通知各转发芯片按照所述对应的一次流量转发速率调整值设置承诺访问速率CAR上限值,以控制所述转发芯片的流量转发。
本申请的有益效果是:本申请实施例提供的流量转发控制方法和装置,通过将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,为各转发芯片计算流量转发速率基础值;获取一个调整周期内,各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;通知各转发芯片按照对应的一次流量转发速率调整值设置对应的承诺访问速率CAR上限值,从而方便了对聚合组中各成员端口所在的转发芯片的CAR上限值进行调整,使得转发芯片实际转发流量速率总体上更接近聚合CAR设定的上限值,优化了各转发芯片的流量转发,满足了实际需求。
附图说明
图1是本申请一个实施例的流量转发控制方法的流程示意图;
图2是本申请一个实施例的流量转发控制方法的应用场景示意图;
图3是本申请一个实施例的网络设备硬件结构图;
图4是图3所示的流量转发控制装置的功能框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
对于聚合端口的承诺访问速率(Committed Access Rate,简称CAR),如果该聚合端口的各成员端口不在同一个转发芯片上,就容易出现聚合端口CAR限速值和转发芯片总体的实际转发速率之间误差较大的问题。举例而言,一台分布式路由器设备有三个槽位,分别为第一槽位,第二槽位和第三槽位。在路由器设备领域,每个槽位即是一个转发芯片。其中,入流量从第三槽位的端口入,流量大小为200M,出口是一个聚合端口,例如将第二槽位的一个端口和第一槽位的一个端口捆绑形成一个聚合端口,因网络部署需要,该聚合端口的CAR的限速设定为100M。按常规理解和实现,既然聚合端口的CAR设定为100M,而且两个成员端口各自在不同的槽位(即分布在不同的转发芯片上),那每个转发芯片设定为100M/2=50M,即第二槽位的成员端口的CAR值设定为50M,第一槽位的成员端口的CAR值设定为50M,应该就满足需求了。
但实际情况没有这么简单,入流量从第三槽位进来以后,因为出方向走了聚合,而且分布到两个转发芯片上,所以第三槽位进来的流量,要进行负载分担,即,分担到第一槽位和第二槽位上。各路由器设备的负载分担算法(例如哈希算法)的实现都不同,同一个路由器同一个版本,也可以使用不同的哈希算法进行分发,并且即便使用了复杂度很高的哈希算法,尽量确保对不同的流量哈希均匀,也无法避免流量本身动态变化的特征,即,流量自身都是动态改变的,所以难免会出现哈希分担不均匀的情况。
继续上面的例子,如果第一槽位和第二槽位的CAR限速值都设定为50M,实际应用中可能出现极端的情况,例如入流量的200M是来自一个网络会话,即,该条流量的五元组(五元组是哈希算法最常用的计算因子)不变,那将会出现经过哈希负载分担以后,这一条流量都被安排到了第二槽位或者第一槽位去转发,即只有一个槽位有出流量,那么根据前面的说明由于此时第二槽位或者第一槽位配置的CAR限速值为50M,以此来满足聚合端口CAR总体为100M的效果,可以知道,因为流量都只走了一个槽位,该聚合端口实际的流量限速只有50M,实际出流的效果和希望出流的效果相差了50M。导致聚合端口CAR限速值和转发芯片总体上的实际转发速率误差较大。
有一种通过路由器设备的中央处理器CPU进行转发来解决上述问题的方案。具体的,继续上面的例子,该方案的实现是:入流量从第三槽位的端口进来以后,需要从聚合端口转发出去,通过CPU软转发将流量都先发往第二槽位(或者第一槽位),到了第二槽位(或者第一槽位)以后,由第二槽位(或者第一槽位)先按照聚合端口的CAR限速100M进行分配,总体出口流量控制在100M以内,然后这100M流量再由第二槽位(或者第一槽位)按照负载分担算法分担到第二槽位(或者第一槽位)自己和第一槽位(或者第二槽位)上。这种方案通过CPU软转发处理,由于将负载分担集中在一个转发芯片上进行处理,一定程度上能够实现流量转发速率的控制,但是该方案依赖CPU的处理能力,性能大大降低,不能满足以硬件转发芯片进行流量转发的各种高性能路由器的需求。
对此,本申请提供了一种流量转发控制方案,本申请技术方案的设计构思在于:结合对聚合端口的成员端口所在的转发芯片中实际流量速率的统计,动态调整跨转发芯片的聚合CAR在各成员端口所在的转发芯片上的CAR速率,以缩小在流量硬件转发上涉及跨芯片聚合CAR的误差,达到流量转发优化的目的。
参见图1,为本申请一个实施例的流量转发控制方法的流程示意图,本实施例的流量转发控制方法包括如下的步骤:
步骤S101,将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
步骤S102,获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
步骤S103,通知各转发芯片按照所述对应的一次流量转发速率调整值设置承诺访问速率CAR上限值,以控制所述转发芯片的流量转发。
由图1所示可知,本实施例的流量转发控制方法,根据一个调整周期内,各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值,然后通知转发芯片按照一次流量转发速率调整值配置该转发芯片的CAR上限值,从而能够实现聚合CAR中转发芯片实际转发速率总体上与聚合CAR设定的上限值更接近的效果,满足实际应用需求。
本实施例的流量控制方法的整体思路是:将T时间内(即,一个调整周期)统计的各转发芯片对应的实际流量转发平均速率,与各转发芯片的流量转发速率基础值(简称基础值)比较,如果小于基础值,说明有更多的流量走了其它转发芯片的端口,所以需要将这部分差值分担到其它转发芯片的成员端口上,即,把差值调整到其它转发芯片的端口去,以提高其他转发芯片的实际流量转发速率。
具体的,本申请一个实施例的流量控制方法包括如下的步骤:
步骤201,根据聚合组中成员端口的数量以及预设的聚合CAR的上限值,计算出成员端口所在的每个转发芯片出方向的流量转发速率大小,作为该转发芯片对应的流量转发速率基础值。
步骤202,获取各转发芯片统计的一段时间内要从该转发芯片的加入了聚合组的成员端口输出的实际流量速率的大小;根据流量速率大小以及流量转发速率基础值,动态调整该转发芯片的CAR的上限值,即,在该转发芯片对应的流量转发速率基础值上进行增减,从而控制该转发芯片向下游设备转发流量的速率大小,实现路由器设备的服务质量。这里的动态调整的过程如下:
假设一个聚合组有三个成员端口,分布在三个不同的转发芯片1,2,3,上,这三个转发芯片对应的流量转发速率基础值分别为X1/X2/X3,T时间内统计到的实际流量转发平均速率分别为Y1/Y2/Y3,一般情况下,实际流量转发平均速率中会有值低于流量转发速率基础值。
本实施例中,判断各转发芯片对应的实际流量转发平均速率是否小于流量转发速率基础值,是则,计算该转发芯片对应的实际流量转发平均速率与流量转发速率基础值的差值,将差值按照其它转发芯片对应的流量转发速率基础值的比例补充到其它转发芯片上,得到其它转发芯片对应的流量转发速率预备调整值。
例如,经过判断后确定出Y1<X1,即,转发芯片1的实际流量转发平均速率小于流量转发速率基础值,则根据如下公式计算实际流量转发平均速率小于流量转发速率基础值的差值,将差值分别补充到转发芯片2和转发芯片3上,得到转发芯片2和3对应的流量转发速率预备调整值(简称为预备调整值)。
计算[(X1-Y1)*X2]/(X2+X3)作为转发芯片2的第一个补充值,在转发芯片2的实际流量转发平均速率Y2的基础上进行补充;计算[(X1-Y1)*X3]/(X2+X3)作为转发芯片3的第一个补充值,在转发芯片3的实际流量转发平均速率Y3的基础上进行补充。依次类推,当确定出转发芯片2的实际流量转发平均速率小于流量转发速率基础值时,即Y2小于X2时,也需要将Y2相比X2的差值,按照前述计算方式计算得到补充值后分别补充到转发芯片1和转发芯片3上。以及,当确定出转发芯片3的实际流量转发平均速率小于流量转发速率基础值时,即Y3小于X3时,也需要将Y3相比X3的差值,按照前述计算方式计算得到补充值后分别补充到转发芯片1和转发芯片2上。
接着,根据每个转发芯片对应的实际流量转发平均速率以及前述补充值计算得到预备调整值。具体的,转发芯片1的预备调整值等于:Y1+[(X2-Y2)*X1/(X1+X3)]+[(X3-Y3)*X1/(X1+X2)]。
转发芯片2的预备调整值等于:Y2+[(X1-Y1)*X2/(X2+X3)]+[(X3-Y3)*X2/(X1+X2)]。
转发芯片3的预备调整值等于:Y3+[(X1-Y1)*X3/(X2+X3)]+[(X2-Y2)*X3/(X1+X3)]。
一次优化过程中,可以直接将流量转发速率预备调整值作为一次流量转发速率调整值,通知各转发芯片按照一次流量转发调整值设定CAR上限值,从而对各转发芯片进行流量转发控制。
在另一个实施例中,可以比较每个转发芯片对应的流量转发速率预备调整值和流量转发速率基础值的大小,将两者中较大者作为该转发芯片对应的第一流量转发速率调整值,并将第一流量转发速率调整值作为一次流量转发速率调整值,待时间周期T结束后通知各转发芯片按照一次流量转发速率调整值设定转发芯片的CAR上限值,控制转发芯片在下一个周期内的流量转发并继续采集获取下一个周期内各转发芯片对应的实际流量转发平均速率。
表1是各转发芯片的基础值,实际值和第一流量转发速率调整值对比表。如表1所示,其中,基础值,即根据聚合组中各成员端口的数量以及设定的聚合CAR的上限值为该转发芯片计算的流量转发速率基础值。实际值,是获取的一个调整周期内该转发芯片的实际流量转发平均速率。在其中一个实施方式中,将第一流量转发速率调整值作为每个转发芯片对应的一次转发速率调整值,第一流量转发速率调整值是在计算出对应的预备调整值,并将预备调整值与对应的流量转发速率基础值比较后取两者中的较大者得到。
在得到每个转发芯片对应的第一流量转发速率调整值之后,通知每个转发芯片按照第一流量转发速率调整值配置该转发芯片的CAR上限值。
各转发芯片通过配置CAR控制该转发芯片转发出的所有流量,则转发芯片发送到下游设备的流量以配置的CAR的速度(如5000bit/s)进行传输,超过的则被丢弃,从而保证下游设备根据自己的处理能力接收和处理流量,避免了对下游设备的冲击,保证了业务的正常运行。
实际应用中,考虑到经过上述动态调整后,聚合CAR的端口所在的各芯片的流量转发速率实际值有可能超过设定的聚合CAR上限值,进而导致对下游设备造成流量冲击,或者聚合CAR的端口所在的各芯片的流量转发速率实际值有可能还是低于设定的聚合CAR上限值,不满足实际应用需求,在其中一个实施方式中,进一步对上述第一流量转发速率调整值进行优化,以保证聚合CAR实际上限值与设定的聚合CAR上限值差距更小,满足实际应用需求。具体的,执行下列步骤:
步骤203,得到每个转发芯片对应的第一流量转发速率调整值Z1、Z2和Z3以后,将第一流量转发速率调整值之和与设定的聚合CAR上限值比较,根据比较结果的不同进行不同处理。
具体的,如果Z1+Z2+Z3的值的和等于设定的聚合CAR上限值,那就通知成员端口所在的各转发芯片分别按Z1、Z2和Z3的值设定该转发芯片的CAR上限值。如果Z1+Z2+Z3的值的和不等于设定的聚合CAR上限值,则继续进行第二轮调整。下面以Z1+Z2+Z3的值大于设定的聚合CAR上限值为例对算法的第二轮调整过程进行说明。
本实施例中,当对应各转发芯片的第一流量转发速率调整值的和不等于(如大于或小于)预设的聚合组的CAR上限值时,进行第二轮调整:即,根据各转发芯片对应的第一流量转发速率调整值,预设的聚合组的CAR上限值,计算得到各转发芯片对应的第二流量转发速率调整值;将第二流量转发速率调整值,作为一次流量转发速率调整值。这里进行第二轮调整的目的是使得聚合端口总体的出流值更接近设定的聚合CAR上限值。如果各转发芯片的第一流量转发速率调整值的总和等于聚合CAR上限值,可以省略第二轮调整。如果各转发芯片的第一流量转发速率调整值的和大于预设的聚合组的CAR上限值,可以进行第二轮调整;在其中一种实施方式中,如果各转发芯片的第一流量转发速率调整值的和小于预设的聚合组的CAR上限值,可以进行第二轮调整。
第二轮调整的过程是:按Z1:Z2:Z3的当前比例,进行成员端口所在的各转发芯片的CAR限速调整。需要说明的是,按照Z1:Z2:Z3的当前比例进行限速调整仅仅是一种实施方式,但本发明不限于此,还可以根据引入动态因子,根据动态因子的值在成员端口所在的各转发芯片间动态调整CAR限速值。
例如,假定M1为一个成员端口所在的转发芯片配置的CAR上限值,则M1的计算公式为:M1=(Z1)*[(聚合CAR的上限值)/(Z1+Z2+Z3)]。其中,Z为一个成员端口所在的转发芯片的第一转发速率调整值。
依此类推,分别计算出其它成员端口所在的各转发芯片的M2和M3的值。
调整1轮后的值 | 调整2轮后的值 |
Z1 | M1=(Z1)*[(聚合CAR的上限值)/(Z1+Z2+Z3)] |
Z2 | M2=(Z2)*[(聚合CAR的上限值)/(Z1+Z2+Z3)] |
Z3 | M3=(Z3)*[(聚合CAR的上限值)/(Z1+Z2+Z3)] |
表2是调整一轮后CAR的值和调整2轮后CAR的值的对比表,表2中,调整1轮后,各转发芯片的CAR上限值根据第一流量转发速率调整值,即Z1,Z2和Z3分别去设定的。调整2轮后,各转发芯片的CAR上限值根据第二流量转发速率调整值,即M1,M2和M3的值设定。
本实施例中,重复步骤202和步骤203,每隔一段时间进行统计并对各成员端口所在的转发芯片的CAR上限值进行调整,直到该路由器设备的聚合CAR功能被取消。
另外,需要说明的是,当聚合CAR上限值被重新设定或者聚合组的成员端口的个数发生变化,如增加或减少,则需要重新按步骤201计算成员端口所在的各转发芯片的流量转发速率基础值。并继续后续的步骤,对各转发芯片的CAR上限值调整。
下面以一个具体的示例说明本实施例的流量控制方法的实现步骤。参见图2,为本申请一个实施例的流量转发控制方法的应用场景示意图,图2中示意了一个路由器设备,包括四个槽位分别为:SLOT2、SLOT3、SLOT4和SLOT5。其中,入流量从SLOT3入,出流量从一个聚合端口出,聚合端口下有四个成员端口,这四个成员端口分布在三个槽位上(一个槽位即是一个转发芯片),分别是SLOT2、SLOT4、SLOT5,如图2所示,SLOT2有两个个成员端口,SLOT4和SLOT5分别有一个成员端口。在本实施例中,每个转发芯片都有端口加入聚合组(或称聚合端口),作为聚合端口的成员端口。
假设聚合CAR出方向流量为100M,首先,按前述步骤201计算出各转发芯片的基础值,本实施例中一共四个成员端口,100M/4=25M,即每个成员端口理论上输出的基础值(即,流量转发速率基础值)应该是25M,由于SLOT2上有两个成员端口,则SLOT2的基础值就是25M*2=50M。
即SLOT2,SLOT4和SLOT5的基础值分别为50M,25M和25M。
接着,进入步骤202。
当聚合CAR部署以后,各转发芯片启动一个时间T(即,一个调整周期)内成员端口流量转发平均速率的统计。按转发芯片计算,假定时间T内,SLOT2计算出时间T内走两个成员端口的流量转发平均速率为40M,SLOT4走一个成员端口的流量转发平均速率为25M,SLOT5走一个成员端口的流量转发平均速率为20M。
则按照前述步骤202中的计算方法进行动态调整如下:
对于SLOT2,基础值是50M,但计算的T时间内实际流量转发平均速率才40M,则说明少的10M应该通过其他成员端口去补充和转发出去。根据SLOT4和SLOT5基础值都是25M,两者的比例为1:1,则SLOT2少的10M分担到SLOT4和SLOT5,即SLOT4+5M,SLOT5+5M。
对于SLOT4,基础值是25M,实际流量转发平均速率是25M,暂时不做动态调整。
对于SLOT5,基础值是25M,但计算的T时间内实际流量转发平均速率才20M,则少的5M应该通过其他成员端口去补充和转发出去,根据SLOT2和SLOT4基础值分别是50M和25M,比例为2:1,则少的5M,按2:1分担到SLOT2和SLOT4上,即SLOT2+3.33M,SLOT4+1.67M。需要说明的是,实际应用中也可不按照SLOT2和SLOT4基础值的比例进行补充。
按照这里的计算方式可以得到每个转发芯片对应的预备调整值,在其中一个实施例中,根据表1,预备调整值还可以和基础值比较,取较大值作为第一流量转发速率调整值。SLOT2的预备调整值43.33M和基础值50M比较取50M,SLOT4的预备调整值31.67M和基础值25M比较取31.67M,SLOT5的预备调整值30M和基础值25M比较取30M。
至此,进行第一轮调整后的结果:SLOT2为50M,SLOT4为31.67M,SLOT5为30M。
对各转发芯片按上面计算出的一次流量转发速率调整值进行预备调整,时间T结束后,通知SLOT2设定CAR上限值为50M,通知SLOT4设定CAR上限值为31.67M,通知SLOT5设定CAR上限值为30M。
按上述结果看,调整一轮后的各转发芯片的CAR限速总和为111.67M,大于了聚合CAR设定的限速100M,可以进行第二轮调整。
第二轮调整过程中通过如下公式分别计算SLOT2,SLOT4和SLOT5的第二转发速率调整值:
M1=50*(100/111.67)=44.78M;
M2=31.67*(100/111.67)=28.36M;
M3=30*(100/111.67)=26.86M。
再计算第二转发速率调整值的和,可知44.78+28.36+26.86等于100,则通知各转发芯片分别配置CAR上限值为44.78M、28.36M和26.86M。
T时间结束,聚合组的各成员端口所在转发芯片按照前述第二转发速率调整值重新调整CAR上限值后,进入下一个T时间,下一个T时间结束时基于新的T时间内的各转发芯片的实际流量转发平均速率再重复上述算法步骤对转发芯片的CAR上限值进行优化。
由此可知,按照本实施例的动态调整算法,从第一个调整周期的对比来看,在没有优化之前,聚合组的实际CAR限速效果是40+25+20=85M,和设定的聚合CAR的目标限速效果100M差15M。在第一个时间T内优化各转发芯片的CAR上限值参数后,如果流量维持不变,即哈希负载不变,那么按第一轮调整后的情况,SLOT2的CAR上限值为50M,SLOT4的CAR上限值为31.67M,SLOT5的CAR上限值为25M;则聚合组出流为106.67M,和设定的聚合CAR上限值100M差6.67M(与15M的差距相比,这里的差距明显缩小了);接着进行第二轮调整后,各成员端口所在的转发芯片按照第一转发速率调整值的比例缩减,可知总体出流速率和设定的聚合CAR速率相一致,即,实现了聚合组在时间T内最终实际出流100M的效果。
实际应用中可根据需求,进行一次调整优化或两次或多次调整优化,本申请实施例对此不作限制,只要能够保证聚合组中各成员端口调整后的CAR限速值加起来不大于聚合组CAR设定值,避免对下游网络设备造成冲击的目标,同时保证聚合组中各成员端口被充分利用即可。
由上述可知,本实施例的流量转发控制方法,基于聚合组成员端口所在的转发芯片一段时间内的实际流量转发平均速率以及流量转发速率基础值,动态的调整各转发芯片的CAR上限值,最终实现了优化聚合CAR的出流效果,降低了性能开销,满足了高性能网络设备的需求。
与前述流量转发控制方法相对应,本申请还提供了一种流量转发控制装置,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使实现前述流量转发控制方法的步骤。
另外,本发明实施例中还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使所述处理器:实现前述流量转发控制方法的步骤。
本申请的流量转发控制装置可应用于网络设备,例如路由器设备。本申请提供的流量转发控制装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,
可通过处理器10将非易失性存储器50中与流量转发控制装置60对应的机器可执行指令读取到易失性存储器40中运行。
从硬件层面而言,如图3所示,为本申请的网络设备的一种硬件结构图,除了图3所示的处理器10、内部总线20、网络接口30、易失性存储器40、以及非易失性存储器50之外,根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
在不同的实施例中,所述非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。所述易失性存储器40可以是:RAM(Radom Access Memory,随机存取存储器)。
进一步,非易失性存储器50和易失性存储器40作为机器可读存储介质,其上可存储由处理器10执行的流量转发控制装置60对应的机器可执行指令。
请参考图4,从功能上划分,本实施例的流量转发控制装置60包括:
分担模块601,用于将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
调整值计算模块602,用于获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
控制模块603,用于通知各转发芯片按照所述对应的一次流量转发速率调整值设置承诺访问速率CAR上限值,以控制所述转发芯片的流量转发。
在其中一个实施例中,调整值计算模块,用于判断各转发芯片的实际流量转发平均速率是否小于流量转发速率基础值,是则,计算该转发芯片的实际流量转发平均速率与所述流量转发速率基础值的差值,将所述差值补充到其它转发芯片上,得到其它转发芯片对应的流量转发速率预备调整值,将所述流量转发速率预备调整值,作为一次流量转发速率调整值。
在其中一个实施例中,调整值计算模块,还用于根据各转发芯片对应的流量转发速率预备调整值以及流量转发速率基础值,确定出转发芯片对应的第一流量转发速率调整值,将所述第一流量转发速率调整值,作为一次流量转发速率调整值。
在其中一个实施例中,调整值计算模块,用于比较每个转发芯片对应的流量转发速率预备调整值和流量转发速率基础值的大小,将两者中较大者作为该转发芯片对应的第一流量转发速率调整值。
在其中一个实施例中,调整值计算模块,用于判断各转发芯片对应的第一流量转发速率调整值的和是否不等于预设的所述聚合组的CAR上限值,是则,根据各转发芯片对应的所述第一流量转发速率调整值,预设的所述聚合组的CAR上限值,计算得到各转发芯片对应的第二流量转发速率调整值;将所述第二流量转发速率调整值,作为一次流量转发速率调整值。
在其中一个实施例中,流量转发控制装置还包括:基础值计算模块,用于根据各转发芯片的加入所述聚合组的成员端口的数量以及预设的所述聚合组的CAR上限值计算得到所述流量转发速率基础值。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (14)
1.一种流量转发控制方法,其特征在于,包括:
将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
通知各转发芯片按照所述对应的一次流量转发速率调整值设置承诺访问速率CAR上限值,以控制所述转发芯片的流量转发。
2.根据权利要求1所述的方法,其特征在于,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值包括:
判断各转发芯片的实际流量转发平均速率是否小于流量转发速率基础值,
是则,计算该转发芯片的实际流量转发平均速率与所述流量转发速率基础值的差值,将所述差值补充到其它转发芯片上,得到其它转发芯片对应的流量转发速率预备调整值,
将所述流量转发速率预备调整值,作为一次流量转发速率调整值。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:
根据各转发芯片对应的流量转发速率预备调整值以及流量转发速率基础值,确定出转发芯片对应的第一流量转发速率调整值;
将所述第一流量转发速率调整值,作为一次流量转发速率调整值。
4.根据权利要求3所述的方法,其特征在于,根据各转发芯片对应的流量转发速率预备调整值以及流量转发速率基础值,确定出转发芯片对应的第一流量转发速率调整值包括:
比较每个转发芯片对应的流量转发速率预备调整值和流量转发速率基础值的大小,将两者中较大者作为该转发芯片对应的第一流量转发速率调整值。
5.根据权利要求3所述的方法,其特征在于,在确定出转发芯片对应的第一流量转发速率调整值后,还包括:
判断各转发芯片对应的第一流量转发速率调整值的和是否不等于预设的所述聚合组的CAR上限值,
是则,根据各转发芯片对应的所述第一流量转发速率调整值,预设的所述聚合组的CAR上限值,计算得到各转发芯片对应的第二流量转发速率调整值;
将所述第二流量转发速率调整值,作为一次流量转发速率调整值。
6.根据权利要求1-5任一所述的方法,其特征在于,所述流量转发速率基础值是根据各转发芯片的加入所述聚合组的成员端口的数量以及预设的所述聚合组的CAR上限值计算得到。
7.一种流量转发控制装置,其特征在于,包括:
分担模块,用于将接收到的流量分发到聚合组的成员端口所在的各转发芯片上,使所述各转发芯片将收到的流量转发出去;
调整值计算模块,用于获取一个调整周期内,所述各转发芯片的实际流量转发平均速率,根据各转发芯片的实际流量转发平均速率以及流量转发速率基础值,计算各转发芯片对应的一次流量转发速率调整值;
控制模块,用于通知各转发芯片按照所述对应的一次流量转发速率调整值设置CAR上限值,以控制所述转发芯片的流量转发。
8.根据权利要求7所述的装置,其特征在于,所述调整值计算模块,用于判断各转发芯片的实际流量转发平均速率是否小于流量转发速率基础值,是则,计算该转发芯片的实际流量转发平均速率与所述流量转发速率基础值的差值,将所述差值补充到其它转发芯片上,得到其它转发芯片对应的流量转发速率预备调整值,将所述流量转发速率预备调整值,作为一次流量转发速率调整值。
9.根据权利要求8所述的装置,其特征在于,所述调整值计算模块,还用于根据各转发芯片对应的流量转发速率预备调整值以及流量转发速率基础值,确定出转发芯片对应的第一流量转发速率调整值,将所述第一流量转发速率调整值,作为一次流量转发速率调整值。
10.根据权利要求9所述的装置,其特征在于,
所述调整值计算模块,用于比较每个转发芯片对应的流量转发速率预备调整值和流量转发速率基础值的大小,将两者中较大者作为该转发芯片对应的第一流量转发速率调整值。
11.根据权利要求9所述的装置,其特征在于,所述调整值计算模块,用于判断各转发芯片对应的第一流量转发速率调整值的和是否不等于预设的所述聚合组的CAR上限值,是则,根据各转发芯片对应的所述第一流量转发速率调整值,预设的所述聚合组的CAR上限值,计算得到各转发芯片对应的第二流量转发速率调整值;将所述第二流量转发速率调整值,作为一次流量转发速率调整值。
12.根据权利要求7-11任一所述的装置,其特征在于,所述装置还包括:基础值计算模块,用于根据各转发芯片的加入所述聚合组的成员端口的数量以及预设的所述聚合组的CAR上限值计算得到所述流量转发速率基础值。
13.一种流量转发控制装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-6任一所述的方法步骤。
14.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710413994.3A CN107547423B (zh) | 2017-06-05 | 2017-06-05 | 一种流量转发控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710413994.3A CN107547423B (zh) | 2017-06-05 | 2017-06-05 | 一种流量转发控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547423A true CN107547423A (zh) | 2018-01-05 |
CN107547423B CN107547423B (zh) | 2020-04-28 |
Family
ID=60965854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710413994.3A Active CN107547423B (zh) | 2017-06-05 | 2017-06-05 | 一种流量转发控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547423B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014504A (zh) * | 2021-03-16 | 2021-06-22 | 杭州迪普信息技术有限公司 | 流量控制方法、装置与电子设备 |
CN113242156A (zh) * | 2021-04-30 | 2021-08-10 | 新华三半导体技术有限公司 | 一种芯片验证方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123587A (zh) * | 2007-09-13 | 2008-02-13 | 杭州华三通信技术有限公司 | 交换机业务流的流量控制方法和装置 |
CN101272338A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 在非线速接口板进行端口带宽配置的方法和非线速接口板 |
US7474650B2 (en) * | 2001-06-26 | 2009-01-06 | Qualcomm Incorporated | Methods and apparatus for controlling resource allocation where tunneling and access link packet aggregation are used in combination |
CN102594671A (zh) * | 2012-02-08 | 2012-07-18 | 中兴通讯股份有限公司 | 一种对用户进行限速的方法和装置 |
CN103763213A (zh) * | 2014-01-23 | 2014-04-30 | 中国联合网络通信集团有限公司 | 报文发送方法及装置 |
CN106453111A (zh) * | 2015-08-11 | 2017-02-22 | 中兴通讯股份有限公司 | 基于聚合链路的流量管理方法及装置 |
-
2017
- 2017-06-05 CN CN201710413994.3A patent/CN107547423B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7474650B2 (en) * | 2001-06-26 | 2009-01-06 | Qualcomm Incorporated | Methods and apparatus for controlling resource allocation where tunneling and access link packet aggregation are used in combination |
CN101123587A (zh) * | 2007-09-13 | 2008-02-13 | 杭州华三通信技术有限公司 | 交换机业务流的流量控制方法和装置 |
CN101272338A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 在非线速接口板进行端口带宽配置的方法和非线速接口板 |
CN102594671A (zh) * | 2012-02-08 | 2012-07-18 | 中兴通讯股份有限公司 | 一种对用户进行限速的方法和装置 |
CN103763213A (zh) * | 2014-01-23 | 2014-04-30 | 中国联合网络通信集团有限公司 | 报文发送方法及装置 |
CN106453111A (zh) * | 2015-08-11 | 2017-02-22 | 中兴通讯股份有限公司 | 基于聚合链路的流量管理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014504A (zh) * | 2021-03-16 | 2021-06-22 | 杭州迪普信息技术有限公司 | 流量控制方法、装置与电子设备 |
CN113242156A (zh) * | 2021-04-30 | 2021-08-10 | 新华三半导体技术有限公司 | 一种芯片验证方法、装置及系统 |
CN113242156B (zh) * | 2021-04-30 | 2022-05-27 | 新华三半导体技术有限公司 | 一种芯片验证方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107547423B (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105610820B (zh) | 一种基于mptcp的拥塞控制方法及装置 | |
CN103442076B (zh) | 一种云存储系统的可用性保障方法 | |
US7898953B2 (en) | Deficit and group round robin scheduling for efficient network traffic management | |
US8730931B1 (en) | Airtime-based packet scheduling for wireless networks | |
EP2858325B1 (en) | Multi-stream service concurrent transmission method, sub-system, system and multi-interface terminal | |
US20160241484A1 (en) | Method and system for queue management in a packet-switched network | |
US20110199899A1 (en) | Rate-Adaptive Bundling of Data in a Packetized Communication System | |
CA2451764A1 (en) | Method and apparatus for allocating link bandwidth | |
CN107844376A (zh) | 计算系统的资源调配方法、计算系统、介质和服务器 | |
CN107547423A (zh) | 一种流量转发控制方法和装置 | |
JP5497541B2 (ja) | 通信制御装置およびシェイピング装置 | |
CN107204933A (zh) | 分布式流量调节方法及装置 | |
Gao et al. | DemePro: DEcouple packet Marking from Enqueuing for multiple services with PROactive congestion control | |
CN112751776B (zh) | 拥塞控制方法和相关装置 | |
CN107786469A (zh) | 一种基于前向任务估计的物联网响应式带宽调节方法 | |
US8953450B2 (en) | Method and system for ingress multicast load balancing | |
CN111010348A (zh) | 一种链路资源负载均衡方法、装置、设备及存储介质 | |
CN103023819A (zh) | 一种粗粒度动态带宽分配方法 | |
CN115174480A (zh) | 一种负载均衡方法、装置、设备及可读存储介质 | |
US20220337525A1 (en) | Methods and system for adaptively managing the distribution of network traffic | |
Ling et al. | Blocking time-based mptcp scheduler for heterogeneous networks | |
CN105578602A (zh) | 基于图论的卫星异构网络资源分配方法 | |
JP4724004B2 (ja) | Drr帯域分配方法及び装置 | |
Kadhum et al. | The impact of the average packet arrival rate on the drop/mark probability of the Fast Congestion Notification (FN) mechanism | |
CN116170517B (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 |