CN101873261B - 一种提高令牌桶流控效果的方法及设备 - Google Patents

一种提高令牌桶流控效果的方法及设备 Download PDF

Info

Publication number
CN101873261B
CN101873261B CN201010199376A CN201010199376A CN101873261B CN 101873261 B CN101873261 B CN 101873261B CN 201010199376 A CN201010199376 A CN 201010199376A CN 201010199376 A CN201010199376 A CN 201010199376A CN 101873261 B CN101873261 B CN 101873261B
Authority
CN
China
Prior art keywords
token
barrelage
flow control
long
token bucket
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
Application number
CN201010199376A
Other languages
English (en)
Other versions
CN101873261A (zh
Inventor
王庆官
梁志勇
刘怡臻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING NETENTSEC Inc
Original Assignee
BEIJING NETENTSEC Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING NETENTSEC Inc filed Critical BEIJING NETENTSEC Inc
Priority to CN201010199376A priority Critical patent/CN101873261B/zh
Publication of CN101873261A publication Critical patent/CN101873261A/zh
Application granted granted Critical
Publication of CN101873261B publication Critical patent/CN101873261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种提高令牌桶流控效果的方法及设备。本发明将令牌桶的计算单位减小,再根据该减小的令牌桶计算单位,计算不同数据包长所对应的网络消耗令牌桶数,然后对该计算得到的令牌桶数取整,从而得到实际消耗令牌桶数。本发明或者增大用于记录令牌桶数的表的表长,再根据该增大长度的表,得到不同数据包长所对应的网络消耗令牌桶数。本发明方法及设备大大地提高了网络消耗的令牌桶数的精度,优化了网络流控效果。

Description

一种提高令牌桶流控效果的方法及设备
技术领域
本发明涉及网络流量控制,尤其涉及令牌桶技术。
背景技术
令牌桶技术是一种常用的流量控制技术,令牌桶本身没有丢弃和优先级策略,其原理为:令牌以一定的速率放入桶中;每个令牌允许源发送一定数量的比特;每发送一个数据包,流量调节器就要从桶中删除与此数据包大小相等的令牌数;如果没有足够的令牌来发送数据包,这个数据包就会等待直到有足够的令牌,或者这个数据包被丢弃,也有可能被标记更低的DSCP(差分服务代码点);桶有特定的容量,如果桶已经满了,新加入的令牌就会被丢弃。也就是,每个数据包过来后,消耗一定的桶,每隔一定时间会增加一定的桶,桶不够时,数据包就会被丢弃。
目前,令牌桶计算单位为tick(一瞬间),tick是最小的时间计算单位。令牌桶计算公式为:
TOK = L RATE × 10 6 × tick us - - - ( 1 )
其中,L为数据包长,单位为Byte(字节);RATE为数据传输速率,单位为Byte/s,且RATE=流控目标/8;
Figure GSB00000679840200012
表示传输数据包所需要秒数,表示传输数据包所需微妙数,
Figure GSB00000679840200014
表示传输数据包所需tick数。
表1是现有技术的用户配置网络流量控制时所生成的不同包长所消耗的令牌桶数的表,且该表显示的是流控目标为700Mbit/s时所消耗的令牌桶数的表。
  下标   0   1 ...  87 ...  104 ...  108   109 ...  253   254   255
  TOK   0   0 ... ...  9.5 ...  9.8   9.9 ...  23.1   23.2   23.3
  VAL   0   0 ...  7 ...  9 ...  9   9 ...  23   23   23
如表1所示,现有技术中记录令牌桶数的表的表长为256(从0到255);其中,下标为数据包长的标志,其值通过数据包长L除以8得到;TOK为不同包长情况下的令牌桶数,其值通过公式(1)得到;VAL为对TOK取整。
表1中,流控目标为700Mbit/s,如果数据包长为832、833、834、835、836、837、838或者839,分别对其除以8后计算出的下标都为104,对应的TOK数都是9.5。数据包长度为832与数据包长度为838记录到的令牌桶数相等,而实际上它们的令牌桶数应该是不相同的。由此可见,传统技术记录消耗令牌桶数的表的精度较低,随着人们对数据流控精度需求的不断提高,能够记录更高精度的令牌桶数的表的方法及其设备具有重要应用价值。
发明内容
本发明提供了一种能解决以上问题的提高令牌桶流控效果的方法及设备。
在第一方面,本发明提供了一种令牌桶流控方法,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表。且该令牌桶流控方法包括将所述令牌桶计算单位减小,再根据该减小的令牌桶计算单位,计算不同数据包长所对应的网络消耗令牌桶数,然后对该计算得到的令牌桶数取整,从而得到实际消耗令牌桶数的步骤。
在第二方面,本发明提供了一种令牌桶流控方法,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表。且该令牌桶流控方法包括增大所述表的表长,再根据该增大长度的表,得到不同数据包长所对应的网络消耗令牌桶数的步骤。
在第三方面,本发明提供了一种采用令牌桶流控方法的网络流控设备,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表。且该网络流控设备包括将令牌桶的计算单位减小,并根据该减小的令牌桶计算单位,计算不同数据包长所对应的网络消耗令牌桶数,再对该计算得到的令牌桶数取整以得到实际消耗令牌桶数的模块。
在第四方面,本发明提供了一种采用令牌桶流控方法的网络流控设备,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表。且该网络流控设备包括增大所述用于记录令牌桶数的表的表长,并根据该增大长度的表,得到不同数据包长所对应的网络消耗令牌桶数的模块。
本发明通过减小令牌桶计算单位,以及通过增加现有技术中用于记录所消耗令牌桶数的表的表长,从而提高了消耗令牌桶数的精度,优化了网络流控效果。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中:
图1是网络流控设备框图。
具体实施方式
图1是网络流控设备框图。该设备包括流控配置模块110和令牌桶数计算模块120。
流控配置模块110是用户用于配置网络流控的模块,其配置数值是用户期望获取的流控目标,而不是实际得到的网络流量值。
令牌桶数计算模块120用于将现有技术中的令牌桶计算单位tick减倍,并基于来自流控配置模块110的流控目标,计算不同数据包长所对应的网络消耗令牌桶数TOK1,再对该计算得到的令牌桶数TOK1取整从而得到实际消耗的令牌桶数VAL。
下面以令牌桶计算单位是
Figure GSB00000679840200031
流控目标是700Mbit/s为例,阐述如何计算得到不同包长时的令牌桶数,以及如何得到实际消耗的令牌桶数。
表2是令牌桶计算单位为
Figure GSB00000679840200032
的令牌桶数的表,且该表显示的是流控目标为700Mbit/s时计算得到的令牌桶数的表。该表2中的下标从1到255变化,TOK1为计算得到的令牌桶数,VAL1为实际消耗的令牌桶数。
 下标1   0   1 ...  104   105   106   107   108   109 ...  253   254   255
 TOK1   0   0 ...  152.1   153.6   155.0   156.5   157.9   159.4 ...  370.0   371.5   373.0
 VAL1   0   0 ...  152   153   155   156   157   159 ...  370   371   373
表2中,下标=数据包长/8,在数据包长从0到2040时,下标从0到255。计算得到的令牌桶数TOK1为,
TOK 1 = L RATE × 1 0 6 ( tick ) = L RATE × 10 6 × 16 ( tick 1 )
其中,计算得到的令牌桶数TOK1单位为tick1,该单位tick1为令牌桶新记载单位,且该新单位
Figure GSB00000679840200042
L为数据包长,单位为Byte(字节),且该数据包长L=8*下标1;数据传输速率为RATE=流控目标/8=700/8(M Btye/s)=(700/8)×106Byte/s。
实际消耗的令牌桶数VAL1是通过对该计算得到的令牌桶数TOK1取整而得到的数值,表2中的VAL1是通过将计算得到的令牌桶数TOK1直接舍弃小数部分而得到的实际消耗令牌桶数VAL1。也可以通过将计算得到的令牌桶数TOK1四舍五入,得到实际消耗的令牌桶数VAL1。
表2中,在下标=104时,也即数据包长度为832Byte时,由于传输速率为RATE=(700/8)×106Byte/s,将该传输速率代入公式(2)得, TOK 1 = L RATE × 10 6 × 16 ( tick 1 ) = 832 ( 700 / 8 ) × 10 6 × 10 6 × 16 = 152.1 , 因此计算得到的令牌桶数TOK1为152.1,将152.1小数部分去掉得到实际消耗的令牌桶数VAL1为152,与表2中下标为104时,TOK1为152.1,VAL1为152相符。
较佳地,通过将计算得到的令牌桶数TOK1,与直接舍弃小数部分或四舍五入法得到的实际消耗令牌桶数之间的差值进行累加,从而得到最新的实际消耗令牌桶数,并将其更新为实际消耗令牌桶数VAL1。下面以直接将计算得到令牌桶数舍弃小数部分,并对该小数部分做累加,从而得到实际消耗令牌桶数为例,阐述如何得到最新的实际消耗令牌桶数。
假设此时计算得到的令牌桶数TOK1为152.1,对152.1取整得到实际消耗的令牌桶数152,并将该计算得到的令牌桶数152.1与实际消耗令牌桶数152之间的误差0.1记录下来以便累加;假设下一时刻计算得到的令牌桶数TOK1为159.4,则实际消耗的令牌桶数VAL1为159,此时TOK1与VAL1之间误差为0.4,则将上一时刻误差0.1与此时误差0.4累加起来得到累加误差值0.5;假设再下一时刻计算得到的令牌桶数TOK1为156.5,则实际消耗的令牌桶数为156,此时TOK1与VAL1之间误差为0.5,将各误差值0.1、0.4、0.5累加,从而得到累积误差1,则更新此时的实际消耗令牌桶数VAL1为157,并更新误差累积值。
在另一个实施例中,网络流控设备中的流控配置模块110与前文所述流控配置模块110功能相同,而令牌桶数计算模块120则采用以下所述令牌桶计算方法,或者同时采用前文所述及以下所述令牌桶计算方法来得到网络消耗令牌桶数。
令牌桶数计算模块120用于增加现有技术中用于记录所消耗令牌桶数的表的表长,并基于来自流控配置模块110的流控目标,得到用于记录具有该流控目标的不同数据包长所网络消耗令牌桶数的表。
具体地,现有技术是通过将数据包的包长除以8得到下标,而本实施例则通过将包长除以小于8的数(如除以4)得到表的下标。如令牌桶数计算模块120将用于记录所消耗令牌桶数的表的表长增大一倍,即在现有表长为256基础上增大至512。
表3是本发明另一个实施例的表长度为512的令牌桶数目表,且该表显示的是流控目标为700Mbit/s时所消耗的令牌桶数的表。
 下标2   0   1 ...  174   175 ...  509   510   511
 TOK2   0   0 ...  7.9   8.0 ...  23.2   23.3   23.3
VAL2 0 0 ... 7 8 ... 23 23 23
表3中,下标=数据包长/4,在数据包长从0到2040时,下标从0到511,进而下标
Figure GSB00000679840200051
而现有技术中的下标为
Figure GSB00000679840200052
由此可见,表3相对于表1来说,每4个连续不同包长的数据包具有相同下标,进而具有相同的TOK、VAL。举例如包长700、701、702、703具有相同下标175,包长为704、705、706、707具有相同下标176;而表1则是每8个连续不同包长的数据包具有相同下标,进而具有相同的TOK、VAL。如包长为700、701、702、703、704、705、706、707具有相同下标87。因此,本实施例相对于传统方法来说,令牌桶数的表的长度增大,且每连续4个不同数据包长具有相同令牌桶数,相对于现有技术中每连续8个不同数据包长具有相同令牌桶数来说,流控准确度显著提高。
较佳地,令牌桶数计算模块120得到的令牌桶数的表是一个动态表,令牌桶数计算模块120判断用户配置流控目标是否达到流控阈值,以及判断当前网络环境中数据包平均长度是否达到平均包长阈值,在流控目标及平均包长均达到一定阈值情况下,增加现有技术中用于记录网络消耗令牌桶数的表的表长;对于流控目标与平均包长均未达到阈值情况,则仍旧采用现有技术中的网络消耗令牌桶数的表,从而得到动态的令牌桶数的表。其中,数据包平均长度通过网络流控设备中的平均包长测量模块来获得。
通过仿真实验得到,无论是在大流控目标(大于500M)情况,还是在小平均数据包长(小于80Byte)情况下,流控精度都得到了显著提高。
在仿真实验中,流控目标为700M(大于500M),平均数据包长为512Byte,传统技术得到的流控效果为818M,而同时采用以上所述两个实施例后得到的流控效果为702M,流控精度显著提高。
在另一仿真实验中,流控目标为50M,平均数据包长为64Byte(小于80Byte),传统技术得到的流控效果为64M,而同时采用以上所述两个实施例后得到的流控效果达到了48M,流控精度显著提高
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。

Claims (11)

1.一种令牌桶流控方法,使用根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表,其特征在于,包括:
将所述令牌桶计算单位减小,再根据该减小的令牌桶计算单位,计算不同数据包长所对应的网络消耗令牌桶数,然后对该计算得到的令牌桶数取整,从而得到实际消耗令牌桶数的步骤。
2.如权利要求1所述的一种令牌桶流控方法,其特征在于,所述实际消耗令牌桶数是通过对计算得到的令牌桶数进行四舍五入而得到。
3.如权利要求1所述的一种令牌桶流控方法,其特征在于,所述实际消耗令牌桶数是通过对计算得到令牌桶数取整后再对其小数部分做误差累加而得到。
4.如权利要求1所述的一种令牌桶流控方法,其特征在于,所述减小的令牌桶计算单位为tick1,根据该单位得到的令牌桶数TOK1为
TOK 1 = L RATE × 10 6 × 16 ( tick 1 )
其中,tick1满足
Figure FSB00000834701100012
TOK1为根据该单位tick1得到的令牌桶数,L为网络传输的数据包长,RATE为数据传输速率,tick为令牌桶计算单位。
5.一种令牌桶流控方法,使用根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表,其特征在于,包括:
步骤a,增大所述表的表长,再根据该增大长度的表,得到不同数据包长所对应的网络消耗令牌桶数;
其中,所述记录消耗令牌桶数的表包括用于表示数据包长的下标,且该下标等于数据包长除以8;
其特征在于,所述增大用于记录令牌桶数的表的表长是通过将数据包长除以4得到的结果,替代所述下标,从而使令牌桶数的表的表长增大至512。
6.如权利要求5所述的一种令牌桶流控方法,其特征在于,在所述步骤a之前包括:
判定所述流控目标是否达到流控阈值及当前网络环境中数据包平均长度是否达到包长阈值,在所述流控目标达到流控阈值及当前网络环境中数据包平均长度达到包长阈值情况下,再执行步骤a,从而得到动态的令牌桶数的表。
7.如权利要求6所述的一种令牌桶流控方法,其特征在于,包括测量当前网络环境中数据包平均长度的步骤。
8.一种采用令牌桶流控方法的网络流控设备,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表,其特征在于,包括:
将所述令牌桶的计算单位减小,并根据该减小的令牌桶计算单位,计算不同数据包长所对应的网络消耗令牌桶数,再对该计算得到的令牌桶数取整以得到实际消耗令牌桶数的模块。
9.如权利要求8所述的一种采用令牌桶流控方法的网络流控设备,其特征在于,所述实际消耗令牌桶数是通过对计算得到的令牌桶数取整后再其小数部分做误差累加而得到。
10.一种采用令牌桶流控方法的网络流控设备,包括根据用户配置的流控目标而得到的用于记录具有该流控目标的不同数据包长所消耗令牌桶数的表,其特征在于,包括:
增大所述用于记录令牌桶数的表的表长,并根据该增大长度的表,得到不同数据包长所对应的网络消耗令牌桶数的模块;
其中,所述记录消耗令牌桶数的表包括用于表示数据包长的下标,且该下标等于数据包长除以8;
其特征在于,所述增大用于记录令牌桶数的表的表长是通过将数据包长除以4得到的结果,替代所述下标,从而使令牌桶数的表的表长增大至512。
11.如权利要求10所述的一种采用令牌桶流控方法的网络流控设备,其特征在于,包括:
判定所述流控目标是否达到流控阈值及当前网络环境中数据包平均长度是否达到包长阈值,从而得到动态的令牌桶数的表的模块。
CN201010199376A 2010-06-07 2010-06-07 一种提高令牌桶流控效果的方法及设备 Active CN101873261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010199376A CN101873261B (zh) 2010-06-07 2010-06-07 一种提高令牌桶流控效果的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010199376A CN101873261B (zh) 2010-06-07 2010-06-07 一种提高令牌桶流控效果的方法及设备

Publications (2)

Publication Number Publication Date
CN101873261A CN101873261A (zh) 2010-10-27
CN101873261B true CN101873261B (zh) 2012-10-03

Family

ID=42997932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010199376A Active CN101873261B (zh) 2010-06-07 2010-06-07 一种提高令牌桶流控效果的方法及设备

Country Status (1)

Country Link
CN (1) CN101873261B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152277A (zh) * 2011-12-07 2013-06-12 北京网康科技有限公司 一种提高网络流量控制性能的方法及其设备
CN102821005B (zh) * 2012-08-03 2015-04-15 苏州迈科网络安全技术股份有限公司 流量控制精度的自动化测试方法及系统
CN103795640B (zh) * 2012-10-30 2016-12-21 中兴通讯股份有限公司 一种流量监管方法和装置
CN106973022A (zh) * 2016-01-13 2017-07-21 中兴通讯股份有限公司 报文发送方法及装置
CN112350954B (zh) * 2019-08-07 2022-11-22 深信服科技股份有限公司 过载保护方法、系统、计算机可读存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607767A (zh) * 2003-10-16 2005-04-20 中兴通讯股份有限公司 基于网络处理器的流量控制方法
CN1787483A (zh) * 2004-12-10 2006-06-14 华为技术有限公司 一种流量控制方法
WO2006093619A2 (en) * 2005-02-28 2006-09-08 Cisco Technology, Inc. Method and system for shaping traffic in a parallel queuing hierarchy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607767A (zh) * 2003-10-16 2005-04-20 中兴通讯股份有限公司 基于网络处理器的流量控制方法
CN1787483A (zh) * 2004-12-10 2006-06-14 华为技术有限公司 一种流量控制方法
WO2006093619A2 (en) * 2005-02-28 2006-09-08 Cisco Technology, Inc. Method and system for shaping traffic in a parallel queuing hierarchy

Also Published As

Publication number Publication date
CN101873261A (zh) 2010-10-27

Similar Documents

Publication Publication Date Title
CN101873261B (zh) 一种提高令牌桶流控效果的方法及设备
CN105050130B (zh) 一种多维干扰空间模型的构建方法
CN102281290B (zh) 一种PaaS云平台的仿真系统及方法
CN104603753A (zh) 一种应用的推荐方法、系统及服务器
CN103336722B (zh) 一种虚拟机cpu资源监控和动态分配方法
CN102150394A (zh) 确定发出最多数据流的主机的系统与方法
CN108509157A (zh) 一种应用于分布式文件系统的数据均衡方法及装置
CN104572182B (zh) 一种流应用的配置方法、节点及流计算系统
CN103246985A (zh) 一种广告点击率预测方法及装置
CN109587072A (zh) 分布式系统全局限速系统及方法
CN103714004A (zh) Jvm在线内存泄露分析方法及系统
CN105992233B (zh) 网络业务的容量基线计算方法及装置
CN103297282A (zh) 网络时延测量装置及方法
CN104780213A (zh) 一种主从分布式图处理系统负载动态优化方法
CN105262534A (zh) 一种适用于卫星通信网络的路由方法和装置
CN108848540A (zh) 中继节点选择方法及系统
CN104009884B (zh) 网络业务流分组数与流长度并行测量装置
CN104734905A (zh) 检测数据流的方法及装置
CN106611005A (zh) 一种设置爬虫爬取时间间隔的方法及装置
CN107102799A (zh) 一种调整灭屏时间的方法及其智能终端
CN103078766B (zh) 网络流量的审计方法、装置及网络设备
CN104519082A (zh) 一种云计算的扩容方法和装置
Chen et al. AGILE: A terminal energy efficient scheduling method in mobile cloud computing
CN110113269A (zh) 一种基于中间件的流量控制的方法及相关装置
CN111092755B (zh) 一种基于资源占用的边缘服务迁移仿真方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant