CN111262790B - 一种令牌桶实现方法、装置和计算机可读存储介质 - Google Patents
一种令牌桶实现方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111262790B CN111262790B CN201811453592.7A CN201811453592A CN111262790B CN 111262790 B CN111262790 B CN 111262790B CN 201811453592 A CN201811453592 A CN 201811453592A CN 111262790 B CN111262790 B CN 111262790B
- Authority
- CN
- China
- Prior art keywords
- time
- packet
- vernier
- increment
- cursor
- 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
Links
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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种令牌桶实现方法、装置和计算机可读存储介质,所述方法包括:基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
Description
技术领域
本发明涉及移动通信技术领域,尤其涉及一种令牌桶实现方法、装置和计算机可读存储介质。
背景技术
为了避免单个流占用带宽过大,路由器等网络设备通常需要限制单个流的转发速率。因此分组到达时,需要查询分组的状态,从而做出相关判断(如正常转发、丢包或优化级调整等)。常见的算法包括单速率双色标记法(srTCM,IETF RFC2697)、双速率三色标记法(trTCM,IETF RFC2698)和MEF10.1(The metro Ethernet forum 10.1)等,这些算法都基于令牌桶实现。
令牌桶用于记录当前允许正常转发的分组总量,通常以字节为单位,其理论模型和工作原理如附图1所示,主要分为令牌添加和分组处理两个过程。
目前的网络处理器都是直接记录每个令牌桶中剩余的令牌数。不同实现方法之间的区别在于如何进行令牌的添加,常见的方法主要包括基于包触发的添加,如图2所示,以及定时添加,如图3所示。
但是,上述两类方法存在如下问题:
第一类(基于包触发的添加)方法不仅计算过程较为复杂(每个分组到达时,都需要用逻辑实现乘法、加法、比较等运算),而且需要额外存储上一分组的时间戳信息,内存开销较大。
第二类(定时添加)方法虽然相比于第一种方法简化了计算过程,但是其缺点在于需要双端口RAM来存储令牌信息(其中一个端口用于包到达时的令牌查询和更新操作,另一个端口用于周期性的令牌添加操作),资源开销较大。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种令牌桶实现方法、装置和计算机可读存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种令牌桶实现方法,该方法包括:
基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
可选的,该方法还包括:
如果确定不能转发所述分组,则保持所述时间游标不变。
其中,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:
如果分组到达的时间晚于等于所述时间游标,则转发所述分组;
如果分组到达的时间早于所述时间游标,则不能转发所述分组。
可选的,所述分组到达之前,该方法还包括:
基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
其中,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
其中,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
其中,所述基于所述时间游标增量更新所述时间游标,包括:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
本发明实施例还提供了一种令牌桶实现装置,该装置包括:
转发判定模块,用于基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
更新模块,用于如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
可选的,所述转发判定模块,还用于确定不能转发所述分组时,保持所述时间游标不变。
可选的,该装置还包括:确定模块,用于基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
本发明实施例还提供了一种令牌桶实现装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明实施例提供的令牌桶实现方法、装置和计算机可读存储介质,基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。可见,本发明实施例不需要显式的令牌添加操作,只通过时间游标的移动即可实现原有的令牌添加和删除两个过程,降低了计算复杂度,同时减少了存储所需的资源。
附图说明
图1为相关技术中令牌桶的理论模型示意图;
图2为相关技术中包触发的令牌添加方式的示意图;
图3为相关技术中定时令牌添加方式的示意图;
图4为本发明实施例所述令牌桶实现方法流程示意图一;
图5为本发明实施例基于时间游标的令牌桶实现方式的示意图;
图6为本发明实施例所述令牌桶实现方法流程示意图二;
图7为本发明实施例所述令牌桶实现装置结构示意图一;
图8为本发明实施例所述令牌桶实现装置结构示意图二;
图9为本发明实施例时间游标更新过程的流程图;
图10为本发明实施例所述令牌桶实现装置结构示意图三;
图11为本发明场景实施例所述令牌桶实现方式的示意图。
具体实施方式
下面结合具体实施例对本发明进行详细描述。
本发明实施例提供一种令牌桶实现方法,如图4所示,该方法包括:
步骤401:基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
步骤402:如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标(等价于令牌的扣除的过程)。
本发明实施例不需要显式的令牌添加操作,只通过时间游标的移动即可实现原有的令牌添加和删除两个过程,降低了计算复杂度,同时减少了存储所需的资源。
一个实施例中,该方法还包括:
如果确定不能转发所述分组,则保持所述时间游标不变。
本发明实施例中,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:
如果分组到达的时间晚于等于所述时间游标(等价于令牌桶非空的情况),则转发所述分组;
如果分组到达的时间早于所述时间游标(等价于令牌桶为空的情况),则不能转发所述分组。
如图5所示,所示双箭头标识的位置为时间游标的位置。
一个实施例中,如图6所示,所述分组到达之前,该方法还包括:
步骤400:基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
本发明实施例中,该步骤只在流建立时触发一次,用于计算和配置时间游标等相关参数。
本发明实施例中,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
本发明实施例中,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
本发明实施例中,所述基于所述时间游标增量更新所述时间游标,包括:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
为了实现上述方法,本发明实施例还提供了一种令牌桶实现装置,如图7所示,该装置包括:
转发判定模块701,用于基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
更新模块702,用于如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
一个实施例中,所述转发判定模块701,还用于确定不能转发所述分组时,保持所述时间游标不变。
本发明实施例中,所述转发判定模块701基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:
确定分组到达的时间晚于等于所述时间游标,则转发所述分组;
确定分组到达的时间早于所述时间游标,则不能转发所述分组。
一个实施例中,如图8所示,该装置还包括:确定模块700,用于基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
本发明实施例中,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
本发明实施例中,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
本发明实施例中,所述更新模块702基于所述时间游标增量更新所述时间游标,包括:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
本发明实施例还提供了一种令牌桶实现装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行:
基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
当然,这里并不局限于处理器中运行,主要还可以作为专用集成电路(如网络处理器)的一个模块。
所述处理器还用于运行所述计算机程序时,执行:
如果确定不能转发所述分组,则保持所述时间游标不变。
所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组时,所述处理器还用于运行所述计算机程序时,执行:
如果分组到达的时间晚于等于所述时间游标,则转发所述分组;
如果分组到达的时间早于所述时间游标,则不能转发所述分组。
所述分组到达之前,所述处理器还用于运行所述计算机程序时,执行:
基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
其中,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
其中,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
所述基于所述时间游标增量更新所述时间游标时,所述处理器还用于运行所述计算机程序时,执行:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
需要说明的是:上述实施例提供的装置在进行令牌桶实现时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将设备的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以是DDR和集成电路内部SRAM等。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,执行:
基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
如果确定转发所述分组,则基于所述分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
所述计算机程序被处理器运行时,还执行:
如果确定不能转发所述分组,则保持所述时间游标不变。
所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组时,所述计算机程序被处理器运行时,还执行:
如果分组到达的时间晚于等于所述时间游标,则转发所述分组;
如果分组到达的时间早于所述时间游标,则不能转发所述分组。
所述分组到达之前,所述计算机程序被处理器运行时,还执行:
基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
其中,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
其中,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
所述基于所述时间游标增量更新所述时间游标时,所述计算机程序被处理器运行时,还执行:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
下面结合场景实施例对本发明进行描述。
为了克服相关技术中存在的令牌桶计算复杂度过高,以及实现过程中内存资源开销过大的问题,本实施例引入了时间游标的概念。时间游标定义为允许分组正常转发的最早时间。当分组早于时间游标到达时,不能正常转发(等价于令牌桶为空的情况);当分组晚于时间游标到达时,分组可以正常转发(等价于令牌桶非空的情况)。当分组能够正常转发时,根据分组长度和转发速率,计算出时间游标的增量,并更新时间游标(等价于令牌的扣除的过程)
由于全局时钟的增加就等效于令牌的添加,且全局时钟计数的增加是独立的(与分组到达和流数目均无关),因此本发明中不需要显式的令牌添加操作。因此原有的令牌添加和删除两个过程就可以减少为时间游标移动这一个过程,降低了计算复杂度,同时减少了存储所需的资源。
通常情况下,令牌桶的参数包括:令牌桶最大深度:用于限制每个流的最大突发;以及令牌添加速率:用于限制每个流的平均发送速率。
而在本实施例中,所需的参数包括:时间游标最大偏移量和折算系数。对于每个流(分组)来说,具体过程可以分为预处理过程和分组触发的处理过程两部分。预处理过程在流建立时触发一次,用于计算和配置上述相关参数,而包触发的处理过程在每个分组到达时均会触发。
所述预处理过程步骤如下:
步骤一:确定折算系数;
所述折算系数用于衡量分组长度与时间游标之间的关系,在本实施例中用于确定时间游标的初始位置,以及每次分组到达时时间游标的增量。
通常情况下,折算系数=时钟频率/流速率,单位为cycle/B。当需要更高的精度(或更细的颗粒度)时,需要对时钟频率进行扩展,此时折算系数=扩展系数*时钟频率/流速率。此时相当于设置了一个虚拟时钟,虚拟时钟频率=扩展系数*时钟频率。
步骤二:确定最大偏移和初始时间游标的位置;
所述最大偏移由令牌桶最大深度决定,用于以下目的:
1)确定初始时间游标的偏移;
2)当有分组到达时,确定是否需要重新配置当前时间游标;
所述最大偏移的计算公式为:最大偏移=令牌桶最大深度*折算系数;
在默认情况下,初始时间游标=-1*最大偏移(即通常情况下,初始时令牌桶是满的)。
分组到达后处理过程如图9所示,包括:
步骤901:当分组到达时,根据当前时间确定分组的时间游标;
步骤902:判断当前时间与时间游标的关系,确定当前时间等于或晚于(大于)时间游标时,执行步骤903;否则,执行步骤908;
步骤903:允许发送所述分组(等效于令牌桶中有足够令牌的情况),确定时间游标增量以及时间游标与当前时间的差值,之后执行步骤904;
这里,可根据分组长度和折算系数,确定时间游标的增量,时间游标增量=分组长度*折算系数。
步骤904:确定所述差值是否大于最大偏移;如果是,则执行步骤905;否则,执行步骤906;
这里,当时间游标与当前时间(分组到达的时间)的差值超出最大偏移时,首先将时间游标更新为当前时间-最大偏移。
步骤905:重新设置当前时间游标的位置;
这里,当前时间游标=当前时间-最大偏移。
上述步骤903与步骤905之间没有明确的先后关系,具体实现中可以并行执行。
步骤906:更新时间游标的位置;之后执行步骤907;
这里,更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
步骤907:存储所述更新后的时间游标的位置;
步骤908:该分组不允许发送(等效于令牌桶中令牌不足的情况),时间游标保持不变。
如图10所示,本实施例实现上述方法的装置部分包括:时间游标存储模块1001、全局时钟比较模块1002以及时间游标更新模块1003;其中,
所述时间游标存储模块1001,用于存储每个队列当前的时间游标信息,内部包含单端口RAM,同时负责相关的读取和写入操作。与传统实现方法相比,具有以下优点:
与基于包触发的令牌添加相比,本实施例中的存储模块可以不用存储时间戳信息,因此ram位宽会明显减小;
与定时添加相比,本实施例中的存储模块只需要用单端口ram,避免了多端口ram带来的开销及风险。
所述全局时钟比较模块1002包含:
时钟模块:用于记录当前的时刻时的全局时钟计数器;
比较模块:将存储模块输出的时间游标和时钟模块输出的当前时刻进行比较,并输出相应的查询结果。一方面用于输出分组状态,另一方面用于确定是否要进行时间游标的更新操作。
所述时间游标更新模块1003,一方面用于根据分组长度和折算系数确定令牌增量;另一方面用于根据所述比较模块输出的查询结果,判断是否需要更新时间游标,如果需要更新,则需要将更新后的时间游标写回存储模块。
下面结合具体实施场景(数据)对本发明进行描述。
该实施例系统时钟为1GHz时,假定一个流的转发速率为16Gbps=2GB/s,得到该流对应的折算系数为0.5cycle/B。同时,假定令牌桶最大深度为2KB,则对应的最大偏移为1024cycle,初始时间游标位置为-1024cycle。当有分组到达时,如图11所示,具体步骤如下:
步骤一:分组1在t=100cycle时到达,长度为1024B。由于当前时间(100)晚于时间游标(-1024),因此允许分组发送并更新时间游标。同时,由于当前时间与时间游标的间隔为1124cycle,超出最大偏移,因此重新配置时间游标为100-1024=-924。而时间游标增量为1024B*0.5cycle/B=512cycle,因此时间游标被更新到-412,并写回时间游标存储模块;
步骤二:分组2在t=200cycle时到达,分组长度为2048B,时间游标增量为1024cycle,时间游标与当前时间间隔小于最大偏移,因此直接相加,时间游标被更新为612;
步骤三:分组3在t=300cycle时到达,分组长度为512B,由于早于时间游标到达,因此该分组被丢弃,时间游标保持不变。同时,如果有其它分组在612cycle前到达,也会被丢弃,说明该方法可以有效的限制分组转发的速率;
步骤四:分组4在t=800时到达,晚于时间游标,分组长度为1024B,对应时间游标增量为512cycle,分组正常发送,时间游标更新为1124。
通过以上场景可知,本发明中提出的方法可以有效且快速的获取分组状态,满足令牌桶的理论模型。
本发明实施例不需要显式的令牌添加操作,只通过时间游标的移动即可实现原有的令牌添加和删除两个过程,降低了计算复杂度,同时减少了存储所需的资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和专用集成电路的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种令牌桶实现方法,其特征在于,该方法包括:
基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
如果确定转发所述分组,则基于分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
如果确定不能转发所述分组,则保持所述时间游标不变。
3.根据权利要求1所述的方法,其特征在于,所述基于分组到达的时间以及预设的时间游标判定是否转发所述分组,包括:
如果分组到达的时间晚于等于所述时间游标,则转发所述分组;
如果分组到达的时间早于所述时间游标,则不能转发所述分组。
4.根据权利要求1所述的方法,其特征在于,所述分组到达之前,该方法还包括:
基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
5.根据权利要求4所述的方法,其特征在于,所述最大偏移表示如下:
最大偏移=令牌桶最大深度*折算系数;
折算系数=时钟频率/分组转发速率;
其中,所述折算系数用于衡量分组长度与时间游标之间的关系。
6.根据权利要求1所述的方法,其特征在于,所述时间游标增量表示如下:
时间游标增量=分组长度*(时钟频率/分组转发速率)。
7.根据权利要求4所述的方法,其特征在于,所述基于所述时间游标增量更新所述时间游标,包括:
将分组到达的时间与当前的时间游标之间的差值与所述最大偏移进行比较;
确定所述差值大于所述最大偏移时,重新设置所述当前的时间游标为:当前时间游标=分组到达的时间-最大偏移;再确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量;
确定所述差值小于等于所述最大偏移时,确定更新后的时间游标为:新的时间游标=当前时间游标+时间游标增量。
8.一种令牌桶实现装置,其特征在于,该装置包括:
转发判定模块,用于基于分组到达的时间以及预设的时间游标判定是否转发所述分组;所述时间游标为:允许分组转发的最早时间;
更新模块,用于如果确定转发所述分组,则基于分组长度和分组转发速率确定时间游标增量,并基于所述时间游标增量更新所述时间游标。
9.根据权利要求8所述的装置,其特征在于,所述转发判定模块,还用于确定不能转发所述分组时,保持所述时间游标不变。
10.根据权利要求8所述的装置,其特征在于,该装置还包括:确定模块,用于基于时钟频率、所述分组转发速率以及令牌桶最大深度确定最大偏移,并基于所述最大偏移确定所述时间游标的初始位置。
11.一种令牌桶实现装置,其特征在于,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行权利要求1-7中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811453592.7A CN111262790B (zh) | 2018-11-30 | 2018-11-30 | 一种令牌桶实现方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811453592.7A CN111262790B (zh) | 2018-11-30 | 2018-11-30 | 一种令牌桶实现方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111262790A CN111262790A (zh) | 2020-06-09 |
CN111262790B true CN111262790B (zh) | 2023-03-10 |
Family
ID=70951901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811453592.7A Active CN111262790B (zh) | 2018-11-30 | 2018-11-30 | 一种令牌桶实现方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111262790B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010136315A (ja) * | 2008-08-22 | 2010-06-17 | Ntt Advanced Technology Corp | パケット転送システム、パケット転送装置、パケット転送方法、及びパケット転送プログラム |
CN102577569A (zh) * | 2009-09-25 | 2012-07-11 | 瑞典爱立信有限公司 | 使用允许令牌债务的令牌桶的无线通信的速率修整 |
CN103259743A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 基于令牌桶的输出流量控制的方法及装置 |
WO2017161967A1 (zh) * | 2016-03-21 | 2017-09-28 | 深圳市中兴微电子技术有限公司 | 包每秒流量监管方法、装置和计算机存储介质 |
-
2018
- 2018-11-30 CN CN201811453592.7A patent/CN111262790B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010136315A (ja) * | 2008-08-22 | 2010-06-17 | Ntt Advanced Technology Corp | パケット転送システム、パケット転送装置、パケット転送方法、及びパケット転送プログラム |
CN102577569A (zh) * | 2009-09-25 | 2012-07-11 | 瑞典爱立信有限公司 | 使用允许令牌债务的令牌桶的无线通信的速率修整 |
CN103259743A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 基于令牌桶的输出流量控制的方法及装置 |
WO2017161967A1 (zh) * | 2016-03-21 | 2017-09-28 | 深圳市中兴微电子技术有限公司 | 包每秒流量监管方法、装置和计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
动态令牌分配的TCSN多级令牌桶流量监管算法;赵晋南 等;《计算机工程》;20170927;第100-111页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111262790A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bordoloi et al. | Schedulability analysis of Ethernet AVB switches | |
US8306045B2 (en) | Packet forwarding apparatus and method for discarding packets | |
US20140112147A1 (en) | Refresh mechanism for a token bucket | |
WO2014099265A1 (en) | Parallel processing using multi-core processor | |
WO2009070324A1 (en) | A method for setting parameters and determining latency in a chained device system | |
Checconi et al. | QFQ: Efficient packet scheduling with tight guarantees | |
CN113783793B (zh) | 对时间敏感的数据帧的流量调度方法及相关设备 | |
CN112311494A (zh) | 一种报文传输方法、装置及系统 | |
JP2011024027A (ja) | パケット送信制御装置、ハードウェア回路およびプログラム | |
CN103324592A (zh) | 一种数据迁移控制方法、数据迁移方法及装置 | |
CN107800644A (zh) | 一种可动态配置的流水化令牌桶限速方法与装置 | |
TW201620273A (zh) | 晶片上網路之時序功率估算裝置與方法 | |
WO2016058355A1 (zh) | 一种数据缓存方法、装置及存储介质 | |
CN105978821B (zh) | 网络拥塞避免的方法及装置 | |
WO2011014998A1 (zh) | 报文到达时间间隔的计算方法及装置 | |
CN102571561B (zh) | 一种pwe3装置及其在抖动缓存读写数据的方法 | |
CN107402534A (zh) | 调节方法、EtherCAT主站及计算机可读存储介质 | |
CN106789697B (zh) | 一种提高大批量网络流表老化效率的方法及装置 | |
CN104009942A (zh) | 一种千兆afdx交换机及其交换方法 | |
CN111262790B (zh) | 一种令牌桶实现方法、装置和计算机可读存储介质 | |
CN101094188B (zh) | 随机先期检测装置及其硬件实现方法 | |
WO2019109902A1 (zh) | 队列调度方法及装置、通信设备、存储介质 | |
WO2023216777A1 (zh) | 大规模时间敏感网络异步门控的实现方法和系统 | |
WO2012159362A1 (zh) | 一种流量整形的方法及设备 | |
Manikandan et al. | Adopting stochastic network calculus as mathematical theory for performance analysis of underwater wireless communication networks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |