一种流量控制的方法和设备的制作方法

文档序号:7866634阅读:202来源:国知局
专利名称:一种流量控制的方法和设备的制作方法
技术领域
本发明涉及通信领域,特别涉及一种流量控制的方法和设备。
背景技术
随着通信技术的快速发展,基于IP(Internet Protocol,网络之间互连的协议)的业务越来越多,由于网络资源的限制, 当大量的报文需要传输时,可能会造成网络的拥塞,所以,为了能够使有限的网络资源更好的发挥,需要对网络中的流量进行控制。目前,通过现有技术实现流量控制的具体过程为当需要发送的报文到达时,网络处理器芯片比较令牌桶中当前的令牌与该报文的长度之间的大小,如果该报文的长度小于或等于令牌桶中的令牌数,或者说,令牌桶中的令牌所代表的可发送的报文的长度大于或等于该报文的长度,则从令牌桶中取出个数与该报文的长度相等的令牌,并将该报文标记为绿色,如果该报文的长度大于令牌桶中当前的令牌数,或者说,令牌桶中的令牌所代表的可发送的报文的长度小于该报文的长度,则将该报文标记为红色;在发送报文时发送标记为绿色的报文,如此实现流量控制。其中,需要说明的是网络处理器芯片以预设的令牌填充速率实时向令牌桶中填充令牌,当令牌桶被令牌填满时新填充的令牌将溢出令牌桶而被丢弃。另外,在网络处理器芯片中预设的令牌填充速度是以二进制编码的形式存在。在实现本发明的过程中,发明人发现现有技术至少存在以下问题目前需要传输的报文越来越多,导致预设的令牌填充速率越来越大,预设的令牌填充速度对应的二进制编码的位宽越来越宽,使得存储预设的令牌填充速率需要消耗越来越多的高速存储器资源。

发明内容
为了减少消耗巨大的高速存储器资源,本发明提供了一种流量控制的方法和设备。所述技术方案如下第一方面,一种流量控制的方法,所述方法包括接收第一报文,获取所述第一报文所属数据流的令牌填充速率的指数和底数;根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,所述第一时间是接收所述第一报文的时间,所述第二时间是接收第二报文的时间,所述第二报文是所述第一报文之前最近一次接收的报文;根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。在上述第一方面的第一种可能的实现方式中,所述获取所述第一报文所属数据流的令牌填充速率的指数和底数,包括根据所述第一报文所属数据流的标识,从已存储的数据流的标识、令牌填充速率的指数和令牌填充速率的底数三者之间的对应关系中,获取所述第一报文所属数据流的令牌填充速率的指数和底数。在上述第一方面的第二种可能的实现方式中,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,包括根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的新增令牌数 ;根据第一令牌桶的容量、已存储的第一令牌数和所述新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数;根据第二令牌桶的容量、已存储的第二令牌数和所述新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。在上述第一方面的第三种可能的实现方式中,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的新增令牌数,包括分别将第一时间和第二时间向右移所述令牌填充速率的指数位;将所述右移的第一时间与所述右移的第二时间做减法运算,得到第一差值;根据所述第一差值和所述令牌填充速率的底数,计算所述第一时间与所述第二时间之间的新增令牌数。在上述第一方面的第四种可能的实现方式中,所述获取所述第一报文所属数据流的令牌填充速率的指数和底数,包括根据所述第一报文所属数据流的标识,从已存储的数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中,获取所述第一报文所属数据流的第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数。在上述第一方面的第五种可能的实现方式中,所述根据第一时间、第二时间和所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,包括根据第一时间、第二时间以及所述第一令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第一新增令牌数;根据所述第一时间、所述第二时间以及所述第二令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第二新增令牌数;根据第一令牌桶的容量、已存储的第一令牌数和所述第一新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数;根据第二令牌桶的容量、已存储的第二令牌数和所述第二新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。在上述第一方面的第六种可能的实现方式中,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第一新增令牌数,包括分别将第一时间和第二时间向右移所述第一令牌填充速率的指数位;
将所述右移的第一时间与所述右移的第二时间做减法运算,得到第二差值;根据所述第二差值和所述第一令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第一新增令牌数。在上述第一方面的第七种可能的实现方式中,所述根据所述第一时间、所述第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第二新增令牌数,包括分别将所述第一时间和所述第二时间向右移所述第二令牌填充速率的指数位; 将所述右移的第一时间与所述右移的第二时间做减法运算,得到第三差值;根据所述第三差值和所述第二令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第二新增令牌数。在上述第一方面的第八种可能的实现方式中,所述根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色,包括根据所述第一令牌填充速率的指数和底数计算所述第一令牌填充速率,根据所述第二令牌填充速率的指数和底数计算所述第二令牌填充速率;根据所述第一报文的长度、所述第一报文的传输速率、所述第一令牌填充速率、所述第二令牌填充速率、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。在上述第一方面的第九种可能的实现方式中,所述根据所述第一令牌填充速率的指数和底数计算所述第一令牌填充速率,根据所述第二令牌填充速率的指数和底数计算所述第二令牌填充速率,包括根据所述第一令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照如下的公式(I)计算所述第一令牌填充速率;Rate=Rate_B/(Sy stemTi ck*2Rate-s) (I);其中,在公式(I)中,Rate为令牌填充速率,Rate_B为令牌填充速率的底数,Rate_S为令牌填充速率的指数,SystemTick为时间戳计数器的计时单位;根据所述第二令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照上述公式(I)计算所述第二令牌填充速率。在上述第一方面的第十种可能的实现方式中,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数之前,还包括根据第一令牌桶容量的指数和底数计算所述第一令牌桶的容量,根据第二令牌桶容量的指数和底数计算所述第二令牌桶的容量。在上述第一方面的第十一种可能的实现方式中,所述根据第一令牌桶容量的指数和底数计算所述第一令牌桶的容量,根据第二令牌桶容量的指数和底数计算所述第二令牌桶的容量,包括根据所述第一令牌桶容量的指数和底数,按照如下的公式(2)计算所述第一令牌桶的容量,BS=BS_B*2bs-s (2);
其中,在公式(2)中,BS为所述第一令牌桶的容量,BS_B为所述第一令牌桶容量的底数,BS_S为所述第一令牌桶容量的指数;根据所述第二令牌桶容量的指数和底数,按照上述公式(2)计算所述第二令牌桶
的容量。在上述第一方面的第十二种可能的实现方式中,所述接收第一报文之前,还包括根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,计算令牌系数;根据所述令牌系数、预设的令牌填充速率范围内的最大令牌填充速率和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位;根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述网络处理器芯片对应的数据流的令牌填充速率的指数和底数。在上述第一方面的第十三种可能的实现方式中,根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,计算令牌系数,包括根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精 度误差,按照如下公式(3)计算令牌系数范围;2Byte>T*Emax ≥ IByte,且 T ≥Lmin (3)其中,在公式(3)中,Lmin为所述网络处理器芯片支持的最小报文长度,Efflax为所述网络处理器芯片要求的最大精度误差,T为所述令牌系数;从所述令牌系数范围中,选择2的幂次方最小的令牌系数。在上述第一方面的第十四种可能的实现方式中,所述根据所述令牌系数、预设的令牌填充速率范围内的最大令牌填充速率和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位,包括根据所述令牌系数和预设的令牌填充速率范围内的最大令牌填充速率,计算所述时间戳计数器的计时门限;将所述网络处理器芯片的时钟频率和所述计时门限做乘积运算,得到所述网络处理器芯片的时钟分频比;根据所述时钟分频比和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位。在上述第一方面的第十五种可能的实现方式中,所述根据所述时钟分频比和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位,包括判断所述计算的时钟分频比是否是整数,如果是,则将所述计时门限确定为所述时间戳计数器的计时单位;如果所述计算的时钟分频比不是整数,则对所述计算的时钟分频比向上取整得到第一整数,以及对所述计算的时钟分频比向下取整得到第二整数,将所述第一整数与所述网络处理器芯片的时钟频率做除法运算得到第一计时时间,将所述第二整数与所述网络处理器芯片的时钟频率做除法运算得到第二计时时间;计算所述第一计时时间与所述计时门限之间的差值,以及计算所述第二计时时间与所述计时门限之间的差值,选择与所述计时门限之间的差值最小的计时时间,将所述选择的计时时间确定为所述时间戳计数器的计时单位。在上述第一方面的第十六种可能的实现方式中,所述根据所述令牌系数、所述时间戳计数器的计时单位和所述令牌填充速率,计算并存储所述网络处理器芯片对应的数据流令牌填充速率的指数和底数,包括根据所述令牌系数、网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(4)计算所述令牌 填充速率的指数,Rate_S=Floor {log2 [ (Tmin-I)/Rate/SystemTick]} (4);其中,在公式(4)中,Rate_S为所述令牌填充速率的指数,Rate为所述令牌填充速率,SystemTick为所述时间戳计数器的计时单位,Floor为向下取整运算;根据所述令牌填充速率的指数、所述网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(5)计算所述令牌填充速率的底数,
Raie B = Round\lkoii' 's x Ratex SysleniJ'i.ck\ ( 5 ):其中,在公式(5)中,Rate_B为所述令牌填充速率的底数,Round为4舍5入到最接近的整数运算;将所述网络处理器芯片对应的数据流的标识、令牌填充速率的指数和令牌填充速率的底数存储在所述数据流的标识、令牌填充速率的指数和令牌填充速率的底数三者之间的对应关系中。在上述第一方面的第十七种可能的实现方式中,所述根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述令牌填充速率的指数和底数,包括根据所述令牌系数、网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的指数;根据所述第一令牌填充速率的指数、所述网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的底数;根据所述令牌系数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的指数;根据所述第二令牌填充速率的指数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的底数;将所述网络处理器芯片对应的数据流的标识、第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数存储在所述数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中。在上述第一方面的第十八种可能的实现方式中,所述接收第一报文之前,还包括根据所述第一令牌桶的容量计算并存储所述第一令牌桶容量的指数和底数,根据所述第二令牌桶的容量计算并存储所述第二令牌桶容量的指数和底数。在上述第一方面的第十九种可能的实现方式中,所述根据第一令牌桶的容量计算并存储所述第一令牌桶容量的指数和底数,根据所述第二令牌桶的容量计算并存储所述第二令牌桶容量的指数和底数,包括根据所述第一令牌桶的容量和预设宽度,按照如下的公式(6)计算所述第一令牌桶容量的指数,BS_S=Ceiling[Iog2BS-N] (6);其中,在公式(6)中,BS_S为所述第一令牌桶容量的指数,BS为所述第一令牌桶的容量,Ceiling为向上取整运算,N为所述预设宽度;根据所述第一令牌桶容量的指数和所述第一令牌桶的容量,按照如下的公式(7)计算所述第一令牌桶容量的底数,并存储所述第一令牌桶容量的指数和底数;
权利要求
1.一种流量控制的方法,其特征在于,所述方法包括 接收第一报文,获取所述第一报文所属数据流的令牌填充速率的指数和底数; 根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,所述第一时间是接收所述第一报文的时间,所述第二时间是接收第二报文的时间,所述第二报文是所述第一报文之前最近一次接收的报文; 根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。
2.如权利要求I所述的方法,其特征在于,所述获取所述第一报文所属数据流的令牌填充速率的指数和底数,包括 根据所述第一报文所属数据流的标识,从已存储的数据流的标识、令牌填充速率的指数和令牌填充速率的底数三者之间的对应关系中,获取所述第一报文所属数据流的令牌填充速率的指数和底数。
3.如权利要求I所述的方法,其特征在于,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,包括 根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的新增令牌数; 根据第一令牌桶的容量、已存储的第一令牌数和所述新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数; 根据第二令牌桶的容量、已存储的第二令牌数和所述新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。
4.如权利要求3所述的方法,其特征在于,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的新增令牌数,包括 分别将第一时间和第二时间向右移所述令牌填充速率的指数位; 将所述右移的第一时间与所述右移的第二时间做减法运算,得到第一差值; 根据所述第一差值和所述令牌填充速率的底数,计算所述第一时间与所述第二时间之间的新增令牌数。
5.如权利要求I所述的方法,其特征在于,所述获取所述第一报文所属数据流的令牌填充速率的指数和底数,包括 根据所述第一报文所属数据流的标识,从已存储的数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中,获取所述第一报文所属数据流的第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数。
6.如权利要求5所述的方法,其特征在于,所述根据第一时间、第二时间和所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,包括 根据第一时间、第二时间以及所述第一令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第一新增令牌数;根据所述第一时间、所述第二时间以及所述第二令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第二新增令牌数; 根据第一令牌桶的容量、已存储的第一令牌数和所述第一新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数; 根据第二令牌桶的容量、已存储的第二令牌数和所述第二新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。
7.如权利要求6所述的方法,其特征在于,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第一新增令牌数,包括 分别将第一时间和第二时间向右移所述第一令牌填充速率的指数位; 将所述右移的第一时间与所述右移的第二时间做减法运算,得到第二差值; 根据所述第二差值和所述第一令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第一新增令牌数。
8.如权利要求6所述的方法,其特征在于,所述根据所述第一时间、所述第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第二新增令牌数,包括 分别将所述第一时间和所述第二时间向右移所述第二令牌填充速率的指数位; 将所述右移的第一时间与所述右移的第二时间做减法运算,得到第三差值; 根据所述第三差值和所述第二令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第二新增令牌数。
9.如权利要求5至8任一项权利要求所述的方法,其特征在于,所述根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色,包括 根据所述第一令牌填充速率的指数和底数计算所述第一令牌填充速率,根据所述第二令牌填充速率的指数和底数计算所述第二令牌填充速率; 根据所述第一报文的长度、所述第一报文的传输速率、所述第一令牌填充速率、所述第二令牌填充速率、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。
10.如权利要求9所述的方法,其特征在于,所述根据所述第一令牌填充速率的指数和底数计算所述第一令牌填充速率,根据所述第二令牌填充速率的指数和底数计算所述第二令牌填充速率,包括 根据所述第一令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照如下的公式(I)计算所述第一令牌填充速率;Rate=Rate_B/(SystemTick*2Rate-s) (I); 其中,在公式(I)中,Rate为令牌填充速率,Rate_B为令牌填充速率的底数,Rate_S为令牌填充速率的指数,SystemTick为所述时间戳计数器的计时单位; 根据所述第二令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照上述公式(I)计算所述第二令牌填充速率。
11.如权利要求I至10任一项权利要求所述的方法,其特征在于,所述根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数之前,还包括 根据第一令牌桶容量的指数和底数计算所述第一令牌桶的容量,根据第二令牌桶容量的指数和底数计算所述第二令牌桶的容量。
12.如权利要求11所述的方法,其特征在于,所述根据第一令牌桶容量的指数和底数计算所述第一令牌桶的容量,根据第二令牌桶容量的指数和底数计算所述第二令牌桶的容量,包括 根据所述第一令牌桶容量的指数和底数,按照如下的公式(2)计算所述第一令牌桶的容量,BS=BS_B*2bs-s (2); 其中,在公式(2)中,BS为所述第一令牌桶的容量,BS_B为所述第一令牌桶容量的底数,BS_S为所述第一令牌桶容量的指数; 根据所述第二令牌桶容量的指数和底数,按照上述公式(2)计算所述第二令牌桶的容量。
13.如权利要求I至12任一项权利要求所述的方法,其特征在于,所述接收第一报文之前,还包括 根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,计算令牌系数; 根据所述令牌系数、预设的令牌填充速率范围内的最大令牌填充速率和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位; 根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述网络处理器芯片对应的数据流的令牌填充速率的指数和底数。
14.如权利要求13所述的方法,其特征在于,所述根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,计算令牌系数,包括 根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,按照如下公式(3)计算令牌系数范围;2Byte>T*Emax ≥ IByte,且 T ≥ Lmin (3) 其中,在公式(3)中,Lmin为所述网络处理器芯片支持的最小报文长度,Emax为所述网络处理器芯片要求的最大精度误差,T为所述令牌系数; 从所述令牌系数范围中选择2的幂次方最小的令牌系数。
15.如权利要求13或14所述的方法,其特征在于,所述根据所述令牌系数、预设的令牌填充速率范围内的最大令牌填充速率和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位,包括 根据所述令牌系数和预设的令牌填充速率范围内的最大令牌填充速率,计算所述时间戳计数器的计时门限; 将所述网络处理器芯片的时钟频率和所述计时门限做乘积运算,得到所述网络处理器芯片的时钟分频比; 根据所述时钟分频比和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位。
16.如权利要求15所述的方法,其特征在于,所述根据所述时钟分频比和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位,包括 判断所述计算的时钟分频比是否是整数,如果是,则将所述计时门限确定为所述时间戳计数器的计时单位; 如果所述计算的时钟分频比不是整数,则对所述计算的时钟分频比向上取整得到第一整数,以及对所述计算的时钟分频比向下取整得到第二整数,将所述第一整数与所述网络处理器芯片的时钟频率做除法运算得到第一计时时间,将所述第二整数与所述网络处理器芯片的时钟频率做除法运算得到第二计时时间;计算所述第一计时时间与所述计时门限之间的差值,以及计算所述第二计时时间与所述计时门限之间的差值,选择与所述计时门限之间的差值最小的计时时间,将所述选择的计时时间确定为所述时间戳计数器的计时单位。
17.如权利要求13所述的方法,其特征在于,所述根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述网络处理器芯片对应的数据流的令牌填充速率的指数和底数,包括 根据所述令牌系数、网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(4)计算所述令牌填充速率的指数,Rate_S=Floor {log2 [ (Tmin-I)/Rate/SystemTick]} (4); 其中,在公式(4)中,Rate_S为所述令牌填充速率的指数,Rate为所述令牌填充速率,SystemTick为所述时间戳计数器的计时单位,Floor为向下取整运算; 根据所述令牌填充速率的指数、所述网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(5)计算所述令牌填充速率的底数,Rate_B=Round[2Rate-sXRateXSystemTick] (5); 其中,在公式(5)中,Rate_B为所述令牌填充速率的底数,Round为4舍5入到最接近的整数运算; 将所述网络处理器芯片对应的数据流的标识、令牌填充速率的指数和令牌填充速率的底数存储在所述数据流的标识、令牌填充速率的指数和令牌填充速率的底数三者之间的对应关系中。
18.如权利要求13所述的方法,其特征在于,所述根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述令牌填充速率的指数和底数,包括 根据所述令牌系数、网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的指数; 根据所述第一令牌填充速率的指数、所述网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的底数; 根据所述令牌系数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的指数; 根据所述第二令牌填充速率的指数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的底数;将所述网络处理器芯片对应的数据流的标识、第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数存储在所述数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中。
19.如权利要求I至12任一项权利要求所述的方法,其特征在于,所述接收第一报文之前,还包括 根据所述第一令牌桶的容量计算并存储所述第一令牌桶容量的指数和底数,根据所述第二令牌桶的容量计算并存储所述第二令牌桶容量的指数和底数。
20.如权利要求19所述的方法,其特征在于,所述根据第一令牌桶的容量计算并存储所述第一令牌桶容量的指数和底数,根据所述第二令牌桶的容量计算并存储所述第二令牌桶容量的指数和底数,包括 根据所述第一令牌桶的容量和预设宽度,按照如下的公式(6)计算所述第一令牌桶容量的指数, BS_S=Ceiling[Iog2BS-N] (6); 其中,在公式(6)中,BS_S为所述第一令牌桶容量的指数,BS为所述第一令牌桶的容量,Ceiling为向上取整运算,N为所述预设宽度; 根据所述第一令牌桶容量的指数和所述第一令牌桶的容量,按照如下的公式(7)计算所述第一令牌桶容量的底数,并存储所述第一令牌桶容量的指数和底数;!A B = Rormcj[BS/2BS vJ (7 ); 其中,在公式(7)中,BS_B为所述第一令牌桶容量的底数,Round为4舍5入到最接近的整数运算; 根据所述第二令牌桶的容量和所述预设宽度,按照上述公式(6)计算所述第二令牌桶容量的指数; 根据所述第二令牌桶容量的指数和所述第二令牌桶的容量,按照上述公式(7)计算所述第二令牌桶容量的底数,存储所述第二令牌桶容量的指数和底数。
21.一种流量控制的设备,其特征在于,所述设备包括 接收模块,用于接收第一报文,获取所述第一报文所属数据流的令牌填充速率的指数和底数; 获取模块,用于根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,所述第一时间是接收所述第一报文的时间,所述第二时间是接收第二报文的时间,所述第二报文是所述第一报文之前最近一次接收的报文; 标记模块,用于根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。
22.如权利要求21所述的设备,其特征在于,所述接收模块包括 第一获取单元,用于接收第一报文,根据所述第一报文所属数据流的标识,从已存储的数据流的标识、令牌填充速率的指数和令牌填充速率的底数三者之间的对应关系中,获取所述第一报文所属数据流的令牌填充速率的指数和底数。
23.如权利要求21所述的设备,其特征在于,所述获取模块包括第一计算单元,用于根据第一时间、第二时间以及所述令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的新增令牌数; 第二获取单元,用于根据第一令牌桶的容量、已存储的第一令牌数和所述新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数; 第三获取单元,用于根据第二令牌桶的容量、已存储的第二令牌数和所述新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。
24.如权利要求23所述的设备,其特征在于,所述第一计算单元包括 第一右移子单元,用于分别将第一时间和第二时间向右移所述令牌填充速率的指数位; 第一运算子单元,用于将所述右移的第一时间与所述右移的第二时间做减法运算,得到第一差值; 第一计算子单元,用于根据所述第一差值和所述令牌填充速率的底数,计算所述第一时间与所述第二时间之间的新增令牌数。
25.如权利要求21所述的设备,其特征在于,所述获取模块包括 第四获取单元,用于根据所述第一报文所属数据流的标识,从已存储的数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中,获取所述第一报文所属数据流的第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数。
26.如权利要求25所述的设备,其特征在于,所述获取模块包括 第二计算单元,用于根据第一时间、第二时间以及所述第一令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第一新增令牌数; 第三计算单元,用于根据所述第一时间、所述第二时间以及所述第二令牌填充速率的指数和底数,计算所述第一时间与所述第二时间之间的第二新增令牌数; 第五获取单元,用于根据第一令牌桶的容量、已存储的第一令牌数和所述第一新增令牌数获取所述第一令牌桶中的当前令牌数,所述第一令牌数为所述第二时间第一令牌桶中的令牌数; 第六获取单元,用于根据第二令牌桶的容量、已存储的第二令牌数和所述第二新增令牌数获取所述第二令牌桶中的当前令牌数,所述第二令牌数为所述第二时间第二令牌桶中的令牌数。
27.如权利要求26所述的设备,其特征在于,所述第二计算单元包括 第二右移子单元,用于分别将第一时间和第二时间向右移所述第一令牌填充速率的指数位; 第二运算子单元,用于将所述右移的第一时间与所述右移的第二时间做减法运算,得到第二差值; 第二计算子单元,用于根据所述第二差值和所述第一令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第一新增令牌数。
28.如权利要求26所述的设备,其特征在于,所述第三计算单元包括第三右移子单元,用于分别将所述第一时间和所述第二时间向右移所述第二令牌填充速率的指数位; 第三运算子单元,用于将所述右移的第一时间与所述右移的第二时间做减法运算,得到第二差值; 第三计算子单元,用于根据所述第三差值和所述第二令牌填充速率的底数,计算所述第一时间与所述第二时间之间的第二新增令牌数。
29.如权利要求25至28任一项权利要求所述的方法,其特征在于,所述标记模块包括 第四计算单元,用于根据所述第一令牌填充速率的指数和底数计算所述第一令牌填充速率,根据所述第二令牌填充速率的指数和底数计算所述第二令牌填充速率; 标记单元,用于根据所述第一报文的长度、所述第一报文的传输速率、所述第一令牌填充速率、所述第二令牌填充速率、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。
30.如权利要求29所述的设备,其特征在于,所述第四计算单元包括 第四计算子单元,用于根据所述第一令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照如下的公式(I)计算所述第一令牌填充速率;Rate=Rate_B/(SystemTick*2Rate-s) (I); 其中,在公式(I)中,Rate为令牌填充速率,Rate_B为令牌填充速率的底数,Rate_S为令牌填充速率的指数,SystemTick为所述时间戳计数器的计时单位; 第五计算子单元,用于根据所述第二令牌填充速率的指数和底数以及所述时间戳计数器的计时单位,按照上述公式(I)计算所述第二令牌填充速率。
31.如权利要求21至30任一项权利要求所述的设备,其特征在于,所述设备还包括 第一计算模块,用于根据第一令牌桶容量的指数和底数计算所述第一令牌桶的容量,根据第二令牌桶容量的指数和底数计算所述第二令牌桶的容量。
32.如权利要求31所述的设备,其特征在于,所述第一计算模块包括 第五计算单元,用于根据所述第一令牌桶容量的指数和底数,按照如下的公式(2)计算所述第一令牌桶的容量,BS=BS_B*2bs-s (2); 其中,在公式(2)中,BS为所述第一令牌桶的容量,BS_B为所述第一令牌桶容量的底数,BS_S为所述第一令牌桶容量的指数; 第六计算单元,用于根据所述第二令牌桶容量的指数和底数,按照上述公式(2)计算所述第二令牌桶的容量。
33.如权利要求21至32任一项权利要求所述的设备,其特征在于,所述设备包括 第二计算模块,用于根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,计算令牌系数; 第三计算模块,用于根据所述令牌系数、预设的令牌填充速率范围内的最大令牌填充速率和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位; 第四计算模块,用于根据所述令牌系数、所述时间戳计数器的计时单位和网络处理器芯片对应的数据流的令牌填充速率,计算并存储所述网络处理器芯片对应的数据流的令牌填充速率的指数和底数。
34.如权利要求33所述的方法,其特征在于,所述第二计算模块包括 第七计算单元,用于根据网络处理器芯片支持的最小报文长度和所述网络处理器芯片要求的最大精度误差,按照如下的公式(3)计算令牌系数范围;2Byte>T*Emax 彡 IByte,且 T 彡 Lmin (3) 其中,在公式(3)中,Lmin为所述网络处理器芯片支持的最小报文长度,Emax为所述网络处理器芯片要求的最大精度误差,T为所述令牌系数; 选择单元,用于从所述令牌系数范围中选择2的幂次方最小的令牌系数。
35.如权利要求33或34所述的设备,其特征在于,所述第三计算模块包括 第八计算单元,用于根据所述令牌系数和预设的令牌填充速率范围内的最大令牌填充速率,计算所述时间戳计数器的计时门限; 运算单元,用于将所述网络处理器芯片的时钟频率和所述计时门限做乘积运算,得到所述网络处理器芯片的时钟分频比; 第九计算单元,用于根据所述时钟分频比和所述网络处理器芯片的时钟频率,计算所述时间戳计数器的计时单位。
36.如权利要求35所述的设备,其特征在于,所述第九计算单元包括 判断子单元,用于判断所述计算的时钟分频比是否是整数,如果是,则将所述计时门限确定为所述时间戳计数器的计时单位; 第八计算子单元,用于如果所述计算的时钟分频比不是整数,则对所述计算的时钟分频比向上取整得到第一整数,以及对所述计算的时钟分频比向下取整得到第二整数,将所述第一整数与所述网络处理器芯片的时钟频率做除法运算得到第一计时时间,将所述第二整数与所述网络处理器芯片的时钟频率做除法运算得到第二计时时间;计算所述第一计时时间与所述计时门限之间的差值,以及计算所述第二计时时间与所述计时门限之间的差值,选择与所述计时门限之间的差值最小的计时时间,将所述选择的计时时间确定为所述时间戳计数器的计时单位。
37.如权利要求33所述的设备,其特征在于,所述第四计算模块包括 第十计算单元,用于根据所述令牌系数、所述网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(4)计算所述令牌填充速率的指数,Rate_S=Floor {log2 [ (Tmin-I)/Rate/SystemTick]} (4); 其中,在公式(4)中,Rate_S为所述令牌填充速率的指数,Rate为所述令牌填充速率,SystemTick为所述时间戳计数器的计时单位,Floor为向下取整运算; 第十一计算单元,用于根据所述令牌填充速率的指数、所述网络处理器芯片对应的数据流的令牌填充速率和所述时间戳计数器的计时单位,按照如下的公式(5)计算所述令牌填充速率的底数,
38.如权利要求33所述的设备,其特征在于,所述第四计算模块包括 第十二计算单元,用于根据所述令牌系数、网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的指数; 第十三计算单元,用于根据所述第一令牌填充速率的指数、所述网络处理器芯片对应的数据流的第一令牌填充速率和所述时间戳计数器的计时单位,计算所述第一令牌填充速率的底数; 第十四计算单元,用于根据所述令牌系数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的指数; 第十五计算单元,用于根据所述第二令牌填充速率的指数、所述网络处理器芯片对应的数据流的第二令牌填充速率和所述时间戳计数器的计时单位,计算所述第二令牌填充速率的底数; 第二存储单元,用于将所述网络处理器芯片对应的数据流的标识、第一令牌填充速率的指数和底数以及第二令牌填充速率的指数和底数存储在所述数据流的标识、第一令牌填充速率的指数、第一令牌填充速率的底数、第二令牌填充速率的指数和第二令牌填充速率的底数之间的对应关系中。
39.如权利要求21至32任一项权利要求所述的设备,其特征在于,所述设备还包括 第五计算模块,用于根据所述第一令牌桶的容量计算并存储所述第一令牌桶容量的指数和底数,根据所述第二令牌桶的容量计算并存储所述第二令牌桶容量的指数和底数。
40.如权利要求39所述的设备,其特征在于,所述第五计算模块包括 第十六计算单元,用于根据所述第一令牌桶的容量和预设宽度,按照如下的公式(6)计算所述第一令牌桶容量的指数, BS_S=Ceiling[Iog2BS-N] (6); 其中,在公式(6)中,BS_S为所述第一令牌桶容量的指数,BS为所述第一令牌桶的容量,Ceiling为向上取整运算,N为所述预设宽度; 第十七计算单元,用于根据所述第一令牌桶容量的指数和所述第一令牌桶的容量,按照如下的公式(7)计算所述第一令牌桶容量的底数,并存储所述第一令牌桶容量的指数和底数;BS_E = Round[BSj2ns s J v 7 ) 其中,在公式(7)中,BS_B为所述第一令牌桶容量的底数,Round为4舍5入到最接近的整数运算; 第十八计算单元,用于根据所述第二令牌桶的容量和所述预设宽度,按照上述公式(6)计算所述第二令牌桶容量的指数; 第十九计算单元,用于根据所述第二令牌桶容量的指数和所述第二令牌桶的容量,按照上述公式(7)计算所述第二令牌桶容量的底数,存储所述第二令牌桶容量的指数和底数。
41.一种流量控制的设备,其特征在于,所述设备包括存储器和处理器,用于执行如权利要求I至20任一项权利要求所述的一种流量控制的方法。
全文摘要
本发明公开了一种流量控制的方法和设备,属于通信领域。所述方法包括接收第一报文,获取所述第一报文所属数据流的令牌填充速率的指数和底数;根据第一时间、第二时间以及所述令牌填充速率的指数和底数,获取第一令牌桶中的当前令牌数和第二令牌桶中的当前令牌数,所述第一时间是接收所述第一报文的时间,所述第二时间是接收第二报文的时间,所述第二报文是所述第一报文之前最近一次接收的报文;根据所述第一报文的长度、所述第一令牌桶中的当前令牌数和所述第二令牌桶中的当前令牌数,标记所述第一报文的颜色。所述装置包括接收模块、获取模块和标记模块。本发明能够减少消耗高速存储器资源。
文档编号H04L12/801GK102970238SQ201210479348
公开日2013年3月13日 申请日期2012年11月22日 优先权日2012年11月22日
发明者王长宏, 陈略 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1