一种基于令牌桶算法的流量控制方法技术

技术编号:23561901 阅读:24 留言:0更新日期:2020-03-25 06:37
本发明专利技术公开了一种基于令牌桶算法的流量控制方法,包括以下步骤:S1.读取令牌桶中的令牌Li、令牌时间戳Si、全局时间戳M、周期为T、每周期的令牌添加量为Ki;S2.计算出精确的令牌的个数;S3.刷新时间戳;S4.判断令牌的个数是否大于零;S5.根据判断结果来进一步判断是否刷新令牌,并判断数据包能否通过,得到结果;S6.刷新令牌桶,将当前的令牌Li写入令牌桶中。本发明专利技术公开提供了一种基于令牌桶算法的流量控制方法,与传统的令牌桶算法相比,本发明专利技术不仅没有增加RAM访问带宽,同时还由于其增加的令牌数量是根据时间戳按照比例计算得到的,只要在该过程中所获取的时间戳越精确,即可得到越低的更新粒度级,能够有效满足高精度QoS处理。

A flow control method based on token bucket algorithm

【技术实现步骤摘要】
一种基于令牌桶算法的流量控制方法
本专利技术涉及网络通信
,更具体的说是涉及一种基于令牌桶算法的流量控制方法。
技术介绍
随着通信技术的快速发展,基于IP(InternetProtocol,网络之间互连的协议)的业务越来越多,由于网络资源的限制,当大量的报文需要传输时,可能会造成网络的拥塞,所以,为了能够使有限的网络资源更好的发挥,需要对网络中的流量进行控制。目前,本领域技术人员多采用令牌桶算法来进行网络流量整形(TrafficShaping)和速率限制(RateLimiting),基于令牌桶算法,现有技术中很多方案采用周期性向令牌桶中添加令牌的方法来节约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处理。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本专利技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本专利技术的精神或范围的情况下,在其它实施例中实现。因此,本专利技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。本文档来自技高网...

【技术保护点】
1.一种基于令牌桶算法的流量控制方法,其特征在于,包括以下步骤:/nS1.读取当前令牌桶中令牌的个数Li、令牌时间戳Si、全局时间戳M、完成所有令牌桶刷新的周期T、每周期的令牌添加量Ki;/nS2.刷新当前令牌桶内令牌的时间戳;/nS3.判断刷新后的当前令牌桶内令牌的个数是否大于零;/nS4.根据S3中的判断结果进一步判断数据包能否通过;/nS5.刷新当前令牌桶,令牌时间戳更新,根据令牌时间戳按比例向当前的令牌桶写入新令牌。/n

【技术特征摘要】
1.一种基于令牌桶算法的流量控制方法,其特征在于,包括以下步骤:
S1.读取当前令牌桶中令牌的个数Li、令牌时间戳Si、全局时间戳M、完成所有令牌桶刷新的周期T、每周期的令牌添加量Ki;
S2.刷新当前令牌桶内令牌的时间戳;
S3.判断刷新后的当前令牌桶内令牌的个数是否大于零;
S4.根据S3中的判断结果进一步判断数据包能否通过;
S5.刷新当前令牌桶,令牌时间戳更新,根据令牌时间戳按比例向当前的令牌桶写入新令牌。


2.根据权利要求1所述的一种基于令牌桶算法的流量控制方法,其特征在于,其中S2中的刷新方式为:将当前令牌...

【专利技术属性】
技术研发人员:徐凌云
申请(专利权)人:昆高新芯微电子江苏有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1