CN100395981C - 基于令牌桶算法的接入速率限制方法 - Google Patents
基于令牌桶算法的接入速率限制方法 Download PDFInfo
- Publication number
- CN100395981C CN100395981C CNB031350143A CN03135014A CN100395981C CN 100395981 C CN100395981 C CN 100395981C CN B031350143 A CNB031350143 A CN B031350143A CN 03135014 A CN03135014 A CN 03135014A CN 100395981 C CN100395981 C CN 100395981C
- Authority
- CN
- China
- Prior art keywords
- token
- token bucket
- execution
- packet
- operable
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于令牌桶算法的接入速率限制方法。该方法的核心为当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,根据待处理的数据包是否为高优先级的数据包对其进行相应的处理,如果是对其进行转发处理,并计令牌桶中可以使用的令牌数为负值,否则,丢弃待处理的数据包。本发明采用了双漏桶的基本算法,但仅使用一令牌桶实现流量控制,从而在保证网络接入设备整机性能下降最小的情况下,实现针对接入用户发生的报文按不同优先级作CAR,以最终实现对接入用户的流量控制。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于令牌桶算法的接入速率限制方法。
背景技术
在网络通信过程中,通常需要在NP(网络处理器)对用户进行流量控制,所谓的流量控制为针对网络中传送的数据报文采不同的CAR(接入速率限制)进行传输控制。然而,在网络接入设备中,WEB(环球网)用户需要通过下载的控件定时发送心跳报文与Portal server(门户网站服务器)握手,以确定用户是否处于连接状态。这样,当用户传送大流量的心跳报文时,网络处理器无法对数据报文和心跳报文进行区别对待,而是将心跳报文和数据报文统一作CAR处理,导致用户最终被强制下线。
目前,宽带产品大多采用双色单漏桶算法实现流量控制,该算清是利用一个漏桶来实现CAR处理,所述的单漏桶CAR的基本实现算法为:
公式(1):Ttoken j-1+(Taij-Taij-1)>=Plenj*Ptoken;
其中,Ptoken:表示令牌的速率,单位为秒/字节,实际应用中可以以网络处理器的定时器的Ticks(时钟周期)为参考单位,即Ptoken的单位为Ticks/字节;
Ttoken j-1:表示第j-1个包离开时剩余的令牌数,单位为Ticks;
Taij、Taij-1:分别为第j个、第j-1个包到达时定时器的计时数,单位均为Ticks;
Plenj:为第j个包的包长,单位为字节。
公式(1)统一在以Ticks为单位上时,其含义为:第j个包到达,如果前一个包离开时剩余的令牌数(Ttoken j-1)加上当前定时器与前一个包通过时定时器的差值(Taij-Taij-1)所得之和不小于通过第j个包所需要的令牌数(Plenj*Ptoken),则第j个包即可通过。
因此,现有基于单漏桶算法实现的CAR只能基本满足流量控制的需求,而无法根据报文的优先级实现不同优先级报文的CAR。
为此,提出了一种双漏桶CAR算法,现以普通的三色双漏桶算法为例对双漏桶CAR算法进行说明:在双漏桶CAR算法中,是以CIR(流的平均速率)产生令牌,如果有借债,先还借债,剩余部分填充令牌桶,令牌桶容量等于CBS(顺从突发度),超出部分被丢弃。当包到达时,比较漏桶中的令牌数与包的大小,如果包小于漏桶中的令牌数,在漏桶中减少相应的令牌数,并将包标记为绿色。如果包大于漏桶中的令牌数,不足部分产生借债,如果累计借债小于EBS(扩展突发度),则将包标记成黄色,并调整累计借债为新值。否则,将包标记成红色,令牌数和累计借债数维持不变。EBS>=CBS。当EBS=CBS,则退化成两色,即黄色或绿色,对于绿色或黄色的数据包允许进行发送处理,而对于红色的数据包则不允许进行发送处理。
因此,所述的双漏桶CAR算法虽然可以很好地满足流量控制的需求,但其实现需要消耗大量的微码资源,从而导致网络接入设备的整机性能下降较大,给网络接入设备的正常工作带来较大的影响。
发明内容
本发明的目的是提供一种基于令牌桶算法的接入速率限制方法,以实现针对接入用户发生的报文按不同优先级作CAR,同时保证网络接入设备的性能下降最小。
本发明的目的是这样实现的:
本发明所述的一种基于令牌桶算法的接入速率限制方法,包括:
A、确定令牌桶中可以使用的令牌数及对待处理的数据包进行转发处理时需要的令牌数;
B、当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤C,否则,执行步骤D;
C、计令牌桶中可以使用的令牌数为负值,并对待处理的数据包进行转发处理,本次处理过程结束;
D、不对待处理的数据包进行转发处理,且本次处理过程结束。
所述的步骤A包括:
读取计时器当前时间值,并根据之前记录的上一个数据包离开时,计时器的时间值及令牌桶中剩余的可以使用的令牌数,确定令牌桶中可以使用的令牌数,即令牌桶中可以使用的令牌数等于计时器当前时间值与上一个数据离开时的时间值的差,再加上一个数据包离开时令牌桶中剩余的可以使用的令牌数。
所述的步骤A包括:
根据令牌的速率和待处理的数据包的包长确定对其进行转发处理需要的令牌数,即对其进行转发处理需要的令牌数等于令牌的速率乘以待处理的数据包的包长。
所述的步骤B包括:
B1、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B4,否则,执行步骤B2;
B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;
B3、从令牌桶中减去对待处理的数据包进行转发处理时需要使用的令牌数,执行步骤C;
B4、从令牌桶中减去对待处理的数据包进行转发处理时需要使用的令牌数,判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤B5;
B5、判断待处理的数据包是否为高优先级,如果是,则执行步骤C,否则,执行步骤D。
其中步骤B4所述的如果大于零,则对待处理的数据包进行转发处理,还包括:
判断令牌桶中剩余的可以使用的令牌数是否大于突发度,即令牌桶高度,如果大于,则令令牌桶中剩余的可以使用的令牌数等于令牌桶高度,并保存于CAR(承诺接入速率)表中,否则,直接将令牌桶中剩余的可以使用的令牌数保存于CAR表中。
所述的步骤C包括:
C1、将令牌桶中可以使用的令牌数计为负值,并保存于CAR表中;
C2、记录当前计时器的计时值,并保存于CAR表中;
C3、对待处理的数据包进行转发处理。
由上述本发明提供的技术方案可以看出,本发明采用了双漏桶的基本算法,但仅使用一令牌桶实现流量控制,从而在保证网络接入设备整机性能下降最小的情况下,实现针对接入用户发生的报文按不同优先级作CAR,以最终实现对接入用户的流量控制。
附图说明
图1为本发明所述的方法的具体实施流程图。
具体实施方式
由于实现双漏桶根据网络处理器增加读写内存的次数,对整机性能影响较大,为此,本发明采用了双漏桶的基本算法,但是只用一个令牌桶,允许此令牌桶中令牌为负值用反码表示。
本发明所述的方法的具体实施方式参见图1所示,包括以下步骤:
步骤11:读取计时器当前时间。
步骤12:从CAR表中读取上一个数据包离开时计时器的时间值。
步骤13:计算计时器当前时间与上一个数据包离开时计时器的时间值的差值。
步骤14:将步骤13所获得的差值加上一个数据包离开时令牌桶中剩余的令牌数,作为令牌桶中可以使用的令牌数。
步骤15:判断令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤16,否则,执行步骤17;
步骤16:计算出新的待处理的数据包需要的令牌数,即采用令牌的速率乘以该数据包的包长作为待处理的数据包需要的令牌数,并执行步骤18。
步骤17:判断新的待处理的数据包是否为高优先级的数据包,如果是,则执行步骤18,否则,执行步骤27。
步骤18:由于网络处理器不能实现乘除操作,而所有的乘除操作都由上层软件计算后变成位移操作来实现,因此该步骤需要判断令牌桶中的左移位值是否大于零,如果是,则执行步骤19,将令牌桶中的左移位侧左移待处理的数据需要的令处理数位,并执行步骤21,否则执行步骤20,按令牌桶中的右移位值右移待处理的数据需要的令处理数位,并执行步骤21。
步骤21:计算令牌桶中处理完成新的待处理的数据包后亲的剩余的令牌数为令牌桶中可以使用的令牌数减去待处理的数据包需要的令牌数。
步骤22:判断新的剩余的令牌数是否大于零,如果大于零,则执行步骤24,否则,执行步骤23;
步骤23:判断上述待处理的数据包是否高优先级的数据包,如果是,则执行步骤24,否则,执行步骤27。
步骤24:判断新的剩余的令牌数是否大于突发度,即令牌桶高度值,如果大于,则执行步骤25,否则,执行步骤26;
步骤25:令新的剩余的令牌数等于令牌桶高度值,并执行步骤26;
步骤26:将确定的剩余的令牌数存入CAR表中,并执行步骤28。
步骤27:因令牌数不够,将新的待处理的数据包丢弃。
步骤28:将当前的计时器时间值作为Departure_Time_stam(当前数据包离开时间)存入CAR表中,即作为数据包离开时间保存于CAR表中。
步骤29:转发新的待处理的数据包。
经过上述步骤11至步骤29的处理过程,实现了对网络中传输的数据包的带优先级的CAR限制,且采用的为单漏桶,保证了处理过程的实现对整机性能的影响较小。
Claims (6)
1.一种基于令牌桶算法的接入速率限制方法,其特征在于包括:
A、确定令牌桶中可以使用的令牌数及对待处理的数据包进行转发处理时需要的令牌数;
B、当可以使用的令牌数小于对待处理的数据进行转发处理时需要的令牌数时,判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤C,否则,执行步骤D;
C、计令牌桶中可以使用的令牌数为负值,并对待处理的数据包进行转发处理,本次处理过程结束;
D、不对待处理的数据包进行转发处理,且本次处理过程结束。
2.根据权利要求1所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤A包括:
读取计时器当前时间值,并根据之前记录的上一个数据包离开时计时器的时间值及令牌桶中剩余的可以使用的令牌数,确定令牌桶中可以使用的令牌数,即令牌桶中可以使用的令牌数等于计时器当前时间值与上一个数据离开时的时间值的差,再加上一个数据包离开时令牌桶中剩余的可以使用的令牌数。
3.根据权利要求1或2所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤A包括:
根据令牌的速率和待处理的数据包的包长确定对其进行转发处理需要的令牌数,即对其进行转发处理需要的令牌数等于令牌的速率乘以待处理的数据包的包长。
4.根据权利要求1所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤B包括:
B1、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B4,否则,执行步骤B2;
B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;
B3、从令牌桶中减去对待处理的数据包进行转发处理时需要使用的令牌数,执行步骤C;
B4、从令牌桶中减去对待处理的数据包进行转发处理时需要使用的令牌数,判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤B5;
B5、判断待处理的数据包是否为高优先级,如果是,则执行步骤C,否则,执行步骤D。
5.根据权利要求4所述的基于令牌桶算法的接入速率限制方法,其特征在于,步骤B4所述的如果大于零,则对待处理的数据包进行转发处理,还包括:
判断令牌桶中剩余的可以使用的令牌数是否大于突发度,即令牌桶高度,如果大于,则令令牌桶中剩余的可以使用的令牌数等于令牌桶高度,并保存于承诺接入速率CAR表中,否则,直接将令牌桶中剩余的可以使用的令牌数保存于CAR表中。
6.根据权利要求1或4所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤C包括:
C1、将令牌桶中可以使用的令牌数计为负值,并保存于CAR表中;
C2、记录当前计时器的计时值,并保存于CAR表中;
C3、对待处理的数据包进行转发处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031350143A CN100395981C (zh) | 2003-09-26 | 2003-09-26 | 基于令牌桶算法的接入速率限制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031350143A CN100395981C (zh) | 2003-09-26 | 2003-09-26 | 基于令牌桶算法的接入速率限制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1601963A CN1601963A (zh) | 2005-03-30 |
CN100395981C true CN100395981C (zh) | 2008-06-18 |
Family
ID=34659180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031350143A Expired - Fee Related CN100395981C (zh) | 2003-09-26 | 2003-09-26 | 基于令牌桶算法的接入速率限制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100395981C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100433718C (zh) * | 2005-10-31 | 2008-11-12 | 华为技术有限公司 | 保障数据分组业务服务等级的方法及速率限制方法 |
CN100518148C (zh) * | 2007-04-13 | 2009-07-22 | 中国科学院软件研究所 | 一种基于令牌的互联网流量控制方法 |
CN101094180B (zh) * | 2007-07-20 | 2012-05-23 | 杭州华三通信技术有限公司 | 一种对压缩后流量进行监管的方法及装置 |
CN101110716B (zh) * | 2007-08-13 | 2010-08-11 | 杭州华三通信技术有限公司 | 一种对分片报文进行流量监管的方法及装置 |
CN101159675B (zh) * | 2007-11-06 | 2010-06-02 | 中兴通讯股份有限公司 | 在ip多媒体子系统中实现提高用户服务质量的方法 |
CN101242394B (zh) * | 2008-01-30 | 2012-08-29 | 华为技术有限公司 | 实现承诺访问速率的方法及设备 |
CN101827398B (zh) * | 2009-03-05 | 2012-10-03 | 中国移动通信集团公司 | 一种无线承载状态发送方法及装置 |
CN101860486A (zh) * | 2010-06-07 | 2010-10-13 | 北京邮电大学 | 一种基于漏桶算法的动态负载均衡机制 |
CN102271086B (zh) * | 2011-07-25 | 2015-07-22 | 华为技术有限公司 | 发送报文的方法和装置 |
CN102420773A (zh) * | 2012-01-05 | 2012-04-18 | 北京网御星云信息技术有限公司 | 一种基于令牌桶算法的数据传输方法及流量控制装置 |
CN102664807B (zh) * | 2012-04-27 | 2014-11-05 | 华为技术有限公司 | 流量控制的方法与装置 |
WO2014071636A1 (zh) * | 2012-11-12 | 2014-05-15 | 华为技术有限公司 | 一种发送报文的方法和设备 |
CN104243333B (zh) * | 2013-06-24 | 2018-04-10 | 阿里巴巴集团控股有限公司 | 一种地址解析协议报文的流量控制方法 |
CN107566293B (zh) * | 2016-06-30 | 2022-03-25 | 中兴通讯股份有限公司 | 一种用于报文限速的方法及装置 |
CN111083062A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 基于权重机制的限流方法、装置、计算机设备及存储介质 |
CN111290858B (zh) * | 2020-05-11 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 输入输出资源管理方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376345A (zh) * | 1999-09-25 | 2002-10-23 | 摩托罗拉公司 | 分级式优先级循环(hprr)规划 |
US6502165B1 (en) * | 1999-12-03 | 2002-12-31 | International Business Machines Corporation | Balanced access to data volumes with redundant copies stored in data storage libraries |
-
2003
- 2003-09-26 CN CNB031350143A patent/CN100395981C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1376345A (zh) * | 1999-09-25 | 2002-10-23 | 摩托罗拉公司 | 分级式优先级循环(hprr)规划 |
US6502165B1 (en) * | 1999-12-03 | 2002-12-31 | International Business Machines Corporation | Balanced access to data volumes with redundant copies stored in data storage libraries |
Also Published As
Publication number | Publication date |
---|---|
CN1601963A (zh) | 2005-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100395981C (zh) | 基于令牌桶算法的接入速率限制方法 | |
CN103391256B (zh) | 一种基于Linux系统的基站用户面数据处理优化方法 | |
CN103281252B (zh) | 一种基于多路径传输的报文流量控制方法和装置 | |
CN108777666A (zh) | 链路聚合的分流方法及相关设备 | |
CN100502315C (zh) | 一种业务流量监管方法和系统 | |
CN101047714B (zh) | 一种处理网络数据的方法及系统 | |
CN107508719A (zh) | 测量网络时延的方法、装置及网络节点 | |
CN103326953A (zh) | 一种基于令牌桶的流量限制方法和装置 | |
CN101199168A (zh) | 监控通信链路的队列 | |
CN101426010A (zh) | 信息处理装置及信息处理系统 | |
CN103081434A (zh) | 智能存储器 | |
CN105871725B (zh) | 一种报文分流方法及装置 | |
CN104883335A (zh) | 一种全硬件tcp协议栈实现方法 | |
CN105527564A (zh) | Fpga内部功能自诊断方法与系统 | |
CN101110780A (zh) | 一种传输控制数据流的方法和装置以及系统 | |
CN101094188B (zh) | 随机先期检测装置及其硬件实现方法 | |
CN103179050B (zh) | 数据包入队和出队管理方法及数据包处理装置 | |
CN103404080A (zh) | 检测路径通信质量的方法和设备 | |
CN101964751A (zh) | 数据包的传输方法及装置 | |
CN105681864A (zh) | 一种基于ip的传输流抖动去除方法及装置 | |
CN109995608A (zh) | 网络速率计算方法和装置 | |
CN103957085B (zh) | 一种基于网络编码的无线网状网络介质访问控制方法 | |
CN101238452A (zh) | 用于发送数据的系统和方法 | |
CN101753407A (zh) | 一种obs组帧方法和装置 | |
Zheng et al. | Revisiting Weighted AIMD-based Congestion Control: A Comprehensive Perspective |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080618 Termination date: 20150926 |
|
EXPY | Termination of patent right or utility model |