一种令牌桶实现方法、装置和计算机可读存储介质制造方法及图纸

技术编号:24466486 阅读:30 留言:0更新日期:2020-06-10 18:45
本发明专利技术实施例提供了一种令牌桶实现方法、装置和计算机可读存储介质,所述方法包括:基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。

A token bucket implementation method, device and computer readable storage medium

【技术实现步骤摘要】
一种令牌桶实现方法、装置和计算机可读存储介质
本专利技术涉及移动通信
,尤其涉及一种令牌桶实现方法、装置和计算机可读存储介质。
技术介绍
为了避免单个流占用带宽过大,路由器等网络设备通常需要限制单个流的转发速率。因此分组到达时,需要查询分组的状态,从而做出相关判断(如正常转发、丢包或优化级调整等)。常见的算法包括单速率双色标记法(srTCM,IETFRFC2697)、双速率三色标记法(trTCM,IETFRFC2698)和MEF10.1(ThemetroEthernetforum10.1)等,这些算法都基于令牌桶实现。令牌桶用于记录当前允许正常转发的分组总量,通常以字节为单位,其理论模型和工作原理如附图1所示,主要分为令牌添加和分组处理两个过程。目前的网络处理器都是直接记录每个令牌桶中剩余的令牌数。不同实现方法之间的区别在于如何进行令牌的添加,常见的方法主要包括基于包触发的添加,如图2所示,以及定时添加,如图3所示。但是,上述两类方法存在如下问题:第一类(基于包触发的添加)方法不仅计算过程较为复杂(每个分组到达时,都需要用逻辑实现乘法、加法、比较等运算),而且需要额外存储上一分组的时间戳信息,内存开销较大。第二类(定时添加)方法虽然相比于第一种方法简化了计算过程,但是其缺点在于需要双端口RAM来存储令牌信息(其中一个端口用于包到达时的令牌查询和更新操作,另一个端口用于周期性的令牌添加操作),资源开销较大。
技术实现思路
为解决现有存在的技术问题,本专利技术实施例提供一种令牌桶实现方法、装置和计算机可读存储介质。为达到上述目的,本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供了一种令牌桶实现方法,该方法包括:基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。可选的,该方法还包括:如果确定不能转发所述分组,则保持所述时间游标不变。其中,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:如果分组到达的时间晚于等于所述时间游标,则转发所述分组;如果分组到达的时间早于所述时间游标,则不能转发所述分组。可选的,所述分组到达之前,该方法还包括:基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。其中,所述最大偏移表示如下:最大偏移=令牌桶最大深度*折算系数;折算系数=时钟频率/分组转发速率;其中,所述折算系数用于衡量分组长度与时间游标之间的关系。其中,所述时间游标增量表示如下:时间游标增量=分组长度*(时钟频率/分组转发速率)。其中,所述基于所述时间游标增量更新所述时间游标,包括:将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。本专利技术实施例还提供了一种令牌桶实现装置,该装置包括:转发判定模块,用于基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;更新模块,用于如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。可选的,所述转发判定模块,还用于确定不能转发所述分组时,保持所述时间游标不变。可选的,该装置还包括:确定模块,用于基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。本专利技术实施例还提供了一种令牌桶实现装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述方法的步骤。本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。本专利技术实施例提供的令牌桶实现方法、装置和计算机可读存储介质,基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。可见,本专利技术实施例不需要显式的令牌添加操作,只通过时间游标的移动即可实现原有的令牌添加和删除两个过程,降低了计算复杂度,同时减少了存储所需的资源。附图说明图1为相关技术中令牌桶的理论模型示意图;图2为相关技术中包触发的令牌添加方式的示意图;图3为相关技术中定时令牌添加方式的示意图;图4为本专利技术实施例所述令牌桶实现方法流程示意图一;图5为本专利技术实施例基于时间游标的令牌桶实现方式的示意图;图6为本专利技术实施例所述令牌桶实现方法流程示意图二;图7为本专利技术实施例所述令牌桶实现装置结构示意图一;图8为本专利技术实施例所述令牌桶实现装置结构示意图二;图9为本专利技术实施例时间游标更新过程的流程图;图10为本专利技术实施例所述令牌桶实现装置结构示意图三;图11为本专利技术场景实施例所述令牌桶实现方式的示意图。具体实施方式下面结合具体实施例对本专利技术进行详细描述。本专利技术实施例提供一种令牌桶实现方法,如图4所示,该方法包括:步骤401:基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;步骤402:如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标(等价于令牌的扣除的过程)。本专利技术实施例不需要显式的令牌添加操作,只通过时间游标的移动即可实现原有的令牌添加和删除两个过程,降低了计算复杂度,同时减少了存储所需的资源。一个实施例中,该方法还包括:如果确定不能转发所述分组,则保持所述时间游标不变。本专利技术实施例中,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:如果分组到达的时间晚于等于所述时间游标(等价于令牌桶非空的情况),则转发所述分组;如果分组到达的时间早于所述时间游标(等价于令牌桶为空的情况),则不能转发所述分组。如图5所示,所示双箭头标识的位置为时间游标的位置。一个实施例中,如图6所示,所述分组到达之前,该方法还包括:步骤400:基于时钟频率、所述分组转发速率以及令牌桶最大深本文档来自技高网...

【技术保护点】
1.一种令牌桶实现方法,其特征在于,该方法包括:/n基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;/n如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。/n

【技术特征摘要】
1.一种令牌桶实现方法,其特征在于,该方法包括:
基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。


2.根据权利要求1所述的方法,其特征在于,该方法还包括:
如果确定不能转发所述分组,则保持所述时间游标不变。


3.根据权利要求1所述的方法,其特征在于,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:
如果分组到达的时间晚于等于所述时间游标,则转发所述分组;
如果分组到达的时间早于所述时间游标,则不能转发所述分组。


4.根据权利要求1所述的方法,其特征在于,所述分组到达之前,该方法还包括:
基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。


5.根据权利要求4所述的方法,其特征在于,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。


6.根据权利要求1所述的方法,其特征在于,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。


7.根据权利要求4所述的方法,其特征在于,所述基于所述时间游标增量更新所述时间游标,包括:
...

【专利技术属性】
技术研发人员:张茂森
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

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

1