CN110912834A - 一种基于令牌桶算法的流量控制方法 - Google Patents
一种基于令牌桶算法的流量控制方法 Download PDFInfo
- Publication number
- CN110912834A CN110912834A CN201911253390.2A CN201911253390A CN110912834A CN 110912834 A CN110912834 A CN 110912834A CN 201911253390 A CN201911253390 A CN 201911253390A CN 110912834 A CN110912834 A CN 110912834A
- Authority
- CN
- China
- Prior art keywords
- token
- token bucket
- tokens
- timestamp
- refreshing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 229910013627 M-Si Inorganic materials 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/215—Flow control; Congestion control using token-bucket
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于令牌桶算法的流量控制方法,包括以下步骤:S1.读取令牌桶中的令牌Li、令牌时间戳Si、全局时间戳M、周期为T、每周期的令牌添加量为Ki;S2.计算出精确的令牌的个数;S3.刷新时间戳;S4.判断令牌的个数是否大于零;S5.根据判断结果来进一步判断是否刷新令牌,并判断数据包能否通过,得到结果;S6.刷新令牌桶,将当前的令牌Li写入令牌桶中。本发明公开提供了一种基于令牌桶算法的流量控制方法,与传统的令牌桶算法相比,本发明不仅没有增加RAM访问带宽,同时还由于其增加的令牌数量是根据时间戳按照比例计算得到的,只要在该过程中所获取的时间戳越精确,即可得到越低的更新粒度级,能够有效满足高精度QoS处理。
Description
技术领域
本发明涉及网络通信技术领域,更具体的说是涉及一种基于令牌桶算法的流量控制方法。
背景技术
随着通信技术的快速发展,基于IP(Internet Protocol,网络之间互连的协议)的业务越来越多,由于网络资源的限制,当大量的报文需要传输时,可能会造成网络的拥塞,所以,为了能够使有限的网络资源更好的发挥,需要对网络中的流量进行控制。
目前,本领域技术人员多采用令牌桶算法来进行网络流量整形(TrafficShaping)和速率限制(Rate Limiting),基于令牌桶算法,现有技术中很多方案采用周期性向令牌桶中添加令牌的方法来节约RAM的带宽,把带宽省下来给其它访问使用或节约功耗。
然而,当令牌桶数量足够大,而不能减小令牌桶之间的间隔容易造成RAM 访问的带宽上的浪费,而导致周期变得非常大尤其是在网络接口速度非常高的情况下,令牌桶每次添加的粒度非常大才能够满足要求。接口速度从当初的10M增加到400G,增加了4万倍,而令牌桶的数量也增加了几千倍,因为用于度量的令牌桶的粒度也同32Kbps增加近10M之多。当在一个高速度上连口 (uplink)实现对下连口(downlink)实现高精度QoS处理需要令牌桶时,传统的方式往往不能够达到精度要求。
因此,设计出一种更加精确的基于令牌桶算法的流量控制方法是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种基于令牌桶算法的流量控制方法,用于解决现有技术中令牌桶中令牌更新精度大、粒度不够大的缺陷。
为了实现上述目的,本发明采用如下技术方案:
一种基于令牌桶算法的流量控制方法,包括以下步骤:
S1.读取当前令牌桶中令牌的个数Li、令牌时间戳Si、全局时间戳M、完成所有令牌桶刷新的周期T、每周期的令牌添加量Ki;
S2.刷新当前令牌桶内令牌的时间戳;
S3.判断刷新后的当前令牌桶内令牌的个数是否大于零;
S4.根据S3中的判断结果进一步判断数据包能否通过;
S5.刷新当前令牌桶,令牌时间戳更新,根据令牌时间戳按比例向当前的令牌桶中写入新令牌。
优选的,其中S2中的刷新方式为:将当前令牌桶的当前时间戳与全局时间戳进行统一。
优选的,其中S4的具体步骤包括:
(1)若S3中的判断结果为是,则数据包通过,数据包通过的同时从令牌桶中取出部分令牌,再次获取令牌桶内令牌的数量;
(2)若S3中的判断结果为否,则数据包不可以通过。
优选的,其中S5中根据令牌时间戳按比例向当前的令牌桶中写入新令牌的具体计算方法为:Li’=Li+(M-Si)*Ki/T;式中,Li’为写入令牌桶中新令牌的数量。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于令牌桶算法的流量控制方法,与传统的令牌桶算法相比,本发明在扣除令牌并刷新令牌时,将新的令牌按比例写入令牌桶中,该方法不仅没有增加RAM 访问带宽,同时也可以在周期不变的情况下,增加刷新资料,而且是由引擎处理事件触发,有效简化了数据处理的过程;
更重要的是,由于其增加的令牌数量是根据时间戳按照比例计算得到的,只要在该过程中所获取的时间戳越精确,即可得到越低的更新粒度级,能够有效满足高精度QoS处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的数据结构示意图;
图2为本发明提供的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于令牌桶算法的流量控制方法,包括以下步骤:
S1.读取当前令牌桶中令牌的个数Li、令牌时间戳Si、全局时间戳M、完成所有令牌桶刷新的周期T、每周期的令牌添加量Ki;
S2.刷新当前令牌桶内令牌的时间戳;
S3.判断刷新后的当前令牌桶内令牌的个数是否大于零;
S4.根据S3中的判断结果进一步判断数据包能否通过;
S5.刷新当前令牌桶,令牌时间戳更新,根据令牌时间戳按比例向当前的令牌桶中写入新令牌。
优选的,其中S2中的刷新方式为:将当前令牌桶的当前时间戳与全局时间戳进行统一。
优选的,其中S4的具体步骤包括:
(1)若S3中的判断结果为是,则数据包通过,数据包通过的同时从令牌桶中取出部分令牌,再次获取令牌桶内令牌的数量;
(2)若S3中的判断结果为否,则数据包不可以通过。
优选的,其中S5中根据令牌时间戳按比例向当前的令牌桶中写入新令牌的具体计算方法为:Li’=Li+(M-Si)*Ki/T;式中,Li’为写入令牌桶中新令牌的数量。
需要说明的是:
图2中的Li=Li-Token的具体含义为从原有的令牌中取走部分令牌,其中 Token即表示根据数据包的长度而取走的令牌的个数。
本发明的工作原理为:
在处理流量整形/流量监管或调度时,原有的令牌桶刷新令牌机制本身即需要读取令牌桶的数据,扣除令牌并刷新令牌,但是在此过程中并不添加令牌,而此时,相对于上一次刷新此令牌桶的时间已经过去一段时间段,如果借此次刷新将新的令牌按比例写入令牌桶中,则既没有增加RAM访问带宽,同时也可以在周期不变的情况下,增加刷新资料,而且是由引擎处理事件触发,有效简化了数据处理的过程;更重要的是,由于其增加的令牌数量是根据时间戳按照比例计算得到的,只要在该过程中所获取的时间戳越精确,即可得到越低的更新粒度级,能够有效满足高精度QoS处理。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (4)
1.一种基于令牌桶算法的流量控制方法,其特征在于,包括以下步骤:
S1.读取当前令牌桶中令牌的个数Li、令牌时间戳Si、全局时间戳M、完成所有令牌桶刷新的周期T、每周期的令牌添加量Ki;
S2.刷新当前令牌桶内令牌的时间戳;
S3.判断刷新后的当前令牌桶内令牌的个数是否大于零;
S4.根据S3中的判断结果进一步判断数据包能否通过;
S5.刷新当前令牌桶,令牌时间戳更新,根据令牌时间戳按比例向当前的令牌桶写入新令牌。
2.根据权利要求1所述的一种基于令牌桶算法的流量控制方法,其特征在于,其中S2中的刷新方式为:将当前令牌桶的当前时间戳与全局时间戳进行统一。
3.根据权利要求1所述的一种基于令牌桶算法的流量控制方法,其特征在于,其中S4的具体步骤包括:
(1)若S3中的判断结果为是,则数据包通过,数据包通过的同时从令牌桶中取出部分令牌,再次获取令牌桶内令牌的数量;
(2)若S3中的判断结果为否,则数据包不可以通过。
4.根据权利要求1所述的一种基于令牌桶算法的流量控制方法,其特征在于,其中S5中根据令牌时间戳按比例向当前的令牌桶写入新令牌的具体计算方法为:Li’=Li+(M-Si)*Ki/T;式中,Li’为写入令牌桶中新令牌的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253390.2A CN110912834A (zh) | 2019-12-09 | 2019-12-09 | 一种基于令牌桶算法的流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253390.2A CN110912834A (zh) | 2019-12-09 | 2019-12-09 | 一种基于令牌桶算法的流量控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110912834A true CN110912834A (zh) | 2020-03-24 |
Family
ID=69823802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911253390.2A Pending CN110912834A (zh) | 2019-12-09 | 2019-12-09 | 一种基于令牌桶算法的流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912834A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751777A (zh) * | 2021-01-06 | 2021-05-04 | 烽火通信科技股份有限公司 | 一种高速率的流量控制方法和装置 |
CN117579564A (zh) * | 2024-01-19 | 2024-02-20 | 成都智明达电子股份有限公司 | 一种基于fpga和令牌桶算法的多路流量调度系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005453A (zh) * | 2006-12-26 | 2007-07-25 | 华为技术有限公司 | 流量限制技术中刷新令牌桶的方法及装置 |
CN102413042A (zh) * | 2011-11-14 | 2012-04-11 | 盛科网络(苏州)有限公司 | 基于时戳更新令牌桶的流量监管的方法及系统 |
CN102812670A (zh) * | 2010-03-22 | 2012-12-05 | 飞思卡尔半导体公司 | 令牌桶管理装置和管理令牌桶的方法 |
CN103326953A (zh) * | 2013-03-28 | 2013-09-25 | 华为技术有限公司 | 一种基于令牌桶的流量限制方法和装置 |
US20140112147A1 (en) * | 2012-10-19 | 2014-04-24 | Broadcom Corporation | Refresh mechanism for a token bucket |
CN105656800A (zh) * | 2014-12-05 | 2016-06-08 | 中兴通讯股份有限公司 | 一种传输报文的方法及装置 |
-
2019
- 2019-12-09 CN CN201911253390.2A patent/CN110912834A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005453A (zh) * | 2006-12-26 | 2007-07-25 | 华为技术有限公司 | 流量限制技术中刷新令牌桶的方法及装置 |
CN102812670A (zh) * | 2010-03-22 | 2012-12-05 | 飞思卡尔半导体公司 | 令牌桶管理装置和管理令牌桶的方法 |
CN102413042A (zh) * | 2011-11-14 | 2012-04-11 | 盛科网络(苏州)有限公司 | 基于时戳更新令牌桶的流量监管的方法及系统 |
US20140112147A1 (en) * | 2012-10-19 | 2014-04-24 | Broadcom Corporation | Refresh mechanism for a token bucket |
CN103326953A (zh) * | 2013-03-28 | 2013-09-25 | 华为技术有限公司 | 一种基于令牌桶的流量限制方法和装置 |
CN105656800A (zh) * | 2014-12-05 | 2016-06-08 | 中兴通讯股份有限公司 | 一种传输报文的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751777A (zh) * | 2021-01-06 | 2021-05-04 | 烽火通信科技股份有限公司 | 一种高速率的流量控制方法和装置 |
CN117579564A (zh) * | 2024-01-19 | 2024-02-20 | 成都智明达电子股份有限公司 | 一种基于fpga和令牌桶算法的多路流量调度系统及方法 |
CN117579564B (zh) * | 2024-01-19 | 2024-05-24 | 成都智明达电子股份有限公司 | 一种基于fpga和令牌桶算法的多路流量调度系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912834A (zh) | 一种基于令牌桶算法的流量控制方法 | |
CN108600118A (zh) | 报文处理方法、装置以及电子设备 | |
CN101599905B (zh) | 一种实现流量整形令牌添加的方法、装置及系统 | |
CN111147395B (zh) | 一种网络资源调整方法及装置 | |
CN110972150A (zh) | 网络扩容方法、装置、电子设备及计算机存储介质 | |
CN113992594A (zh) | 流量控制方法、装置、电子设备和计算机可读存储介质 | |
CN101043457B (zh) | 报文宽带监管方法及其装置、报文丢弃概率标记装置 | |
CN102882809A (zh) | 一种基于报文缓存的网络限速方法及装置 | |
CN113347096B (zh) | 第三方支付数据的传输处理方法 | |
CN111682975A (zh) | 网络状态预测方法、装置、电子设备及存储介质 | |
CN102571561A (zh) | 一种pwe3装置及其在抖动缓存读写数据的方法 | |
CN107070815A (zh) | 一种sdn网络中同步报文排队延时控制方法和装置 | |
CN116225198B (zh) | 一种cpu负载控制方法及系统 | |
CN101997776A (zh) | 基于拥塞辨识的路由器队列控制系统及其控制方法 | |
CN101778043A (zh) | 基于令牌桶算法的填充速率区间的划分方法和装置 | |
CN112995060B (zh) | 一种基于硬件计数器的流量控制方法 | |
CN114520789A (zh) | 基于令牌桶的共享缓存报文处理方法、装置、设备及介质 | |
CN104320849A (zh) | LTE系统中VoIP业务的资源分配方法 | |
CN114389976A (zh) | 视频帧传输网络传输管理方法及相关设备 | |
Zheng et al. | A novel low-latency scheduling approach of TSN for multi-link rate networking | |
CN111865819A (zh) | 分布式系统多站点同步数据带宽控制方法、装置、设备 | |
CN114531401A (zh) | 一种基于优先权的令牌桶流量限制方法 | |
CN113453285A (zh) | 一种资源调整方法、装置及存储介质 | |
Tao et al. | Performance analysis on M2M communication network based on stochastic network calculus | |
CN107295539A (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 |