CN1601963A - 基于令牌桶算法的接入速率限制方法 - Google Patents

基于令牌桶算法的接入速率限制方法 Download PDF

Info

Publication number
CN1601963A
CN1601963A CN 03135014 CN03135014A CN1601963A CN 1601963 A CN1601963 A CN 1601963A CN 03135014 CN03135014 CN 03135014 CN 03135014 A CN03135014 A CN 03135014A CN 1601963 A CN1601963 A CN 1601963A
Authority
CN
China
Prior art keywords
token
token bucket
operable
packet
bucket
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.)
Granted
Application number
CN 03135014
Other languages
English (en)
Other versions
CN100395981C (zh
Inventor
侯超
龚钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031350143A priority Critical patent/CN100395981C/zh
Publication of CN1601963A publication Critical patent/CN1601963A/zh
Application granted granted Critical
Publication of CN100395981C publication Critical patent/CN100395981C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B3,否则,执行步骤B2;
B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;
B3、确定对待处理的数据包进行转发处理时需要使用的令牌数;
B4、从令牌桶中减去步骤B3所确定的令牌数,并判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤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、判断当前令牌桶中可以使用的令牌数是否大于零,如果大于零,则执行步骤B3,否则,执行步骤B2;
B2、判断待处理的数据包是否为高优先级的数据包,如果是,则执行步骤B3,否则,执行步骤D;
B3、确定对待处理的数据包进行转发处理时需要使用的令牌数;
B4、从令牌桶中减去步骤B3所确定的令牌数,并判断令牌桶中剩余的可以使用的令牌数是否大于零,如果大于零,则对待处理的数据包进行转发处理,否则,执行步骤B5;
B5、判断待处理的数据包是否为高优先级,如果是,则执行步骤C,否则,执行步骤D。
5、根据权利要求4所述的基于令牌桶算法的接入速率限制方法,其特征在于,步骤B4所述的如果大于零,则对待处理的数据包进行转发处理,还包括:
判断令牌桶中剩余的可以使用的令牌数是否大于突发度,即令牌桶高度,如果大于,则令令牌桶中剩余的可以使用的令牌数等于令牌桶高度,并保存于CAR(承诺接入速率)表中,否则,直接将令牌桶中剩余的可以使用的令牌数保存于CAR表中。
6、根据权利要求1或4所述的基于令牌桶算法的接入速率限制方法,其特征在于,所述的步骤C包括:
C1、将令牌桶中可以使用的令牌数计为负值,并保存于CAR表中;
C2、记录当前计时器的计时值,并保存于CAR表中;
C3、对待处理的数据包进行转发处理。
CNB031350143A 2003-09-26 2003-09-26 基于令牌桶算法的接入速率限制方法 Expired - Fee Related CN100395981C (zh)

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 true CN1601963A (zh) 2005-03-30
CN100395981C 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)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007051374A1 (en) * 2005-10-31 2007-05-10 Huawei Technologies Co., Ltd. A method for guaranteeing classification of service of the packet traffic and the method of rate restriction
CN100518148C (zh) * 2007-04-13 2009-07-22 中国科学院软件研究所 一种基于令牌的互联网流量控制方法
CN101159675B (zh) * 2007-11-06 2010-06-02 中兴通讯股份有限公司 在ip多媒体子系统中实现提高用户服务质量的方法
CN101110716B (zh) * 2007-08-13 2010-08-11 杭州华三通信技术有限公司 一种对分片报文进行流量监管的方法及装置
WO2010099704A1 (zh) * 2009-03-05 2010-09-10 中国移动通信集团公司 一种无线承载状态发送方法及装置
CN101860486A (zh) * 2010-06-07 2010-10-13 北京邮电大学 一种基于漏桶算法的动态负载均衡机制
CN102271086A (zh) * 2011-07-25 2011-12-07 华为技术有限公司 发送报文的方法和装置
CN102420773A (zh) * 2012-01-05 2012-04-18 北京网御星云信息技术有限公司 一种基于令牌桶算法的数据传输方法及流量控制装置
CN101094180B (zh) * 2007-07-20 2012-05-23 杭州华三通信技术有限公司 一种对压缩后流量进行监管的方法及装置
CN101242394B (zh) * 2008-01-30 2012-08-29 华为技术有限公司 实现承诺访问速率的方法及设备
CN102664807A (zh) * 2012-04-27 2012-09-12 华为技术有限公司 流量控制的方法与装置
CN103229465A (zh) * 2012-11-12 2013-07-31 华为技术有限公司 一种发送报文的方法和设备
CN104243333A (zh) * 2013-06-24 2014-12-24 阿里巴巴集团控股有限公司 一种地址解析协议报文的流量控制方法
CN107566293A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 一种用于报文限速的方法及装置
CN111083062A (zh) * 2019-12-17 2020-04-28 深圳前海环融联易信息科技服务有限公司 基于权重机制的限流方法、装置、计算机设备及存储介质
CN111290858A (zh) * 2020-05-11 2020-06-16 腾讯科技(深圳)有限公司 输入输出资源管理方法、装置、计算机设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7613200A (en) * 1999-09-25 2001-04-30 Motorola, Inc. Hierarchical prioritized round robin (hprr) scheduling
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

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007051374A1 (en) * 2005-10-31 2007-05-10 Huawei Technologies Co., Ltd. A method for guaranteeing classification of service of the packet traffic and the method of rate restriction
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 华为技术有限公司 实现承诺访问速率的方法及设备
WO2010099704A1 (zh) * 2009-03-05 2010-09-10 中国移动通信集团公司 一种无线承载状态发送方法及装置
CN101827398B (zh) * 2009-03-05 2012-10-03 中国移动通信集团公司 一种无线承载状态发送方法及装置
CN101860486A (zh) * 2010-06-07 2010-10-13 北京邮电大学 一种基于漏桶算法的动态负载均衡机制
CN102271086A (zh) * 2011-07-25 2011-12-07 华为技术有限公司 发送报文的方法和装置
CN102271086B (zh) * 2011-07-25 2015-07-22 华为技术有限公司 发送报文的方法和装置
WO2013013567A1 (zh) * 2011-07-25 2013-01-31 华为技术有限公司 发送报文的方法和装置
US9225654B2 (en) 2011-07-25 2015-12-29 Huawei Technologies Co., Ltd. Method and apparatus for sending packet
CN102420773A (zh) * 2012-01-05 2012-04-18 北京网御星云信息技术有限公司 一种基于令牌桶算法的数据传输方法及流量控制装置
CN102664807A (zh) * 2012-04-27 2012-09-12 华为技术有限公司 流量控制的方法与装置
CN102664807B (zh) * 2012-04-27 2014-11-05 华为技术有限公司 流量控制的方法与装置
WO2014071636A1 (zh) * 2012-11-12 2014-05-15 华为技术有限公司 一种发送报文的方法和设备
CN103229465A (zh) * 2012-11-12 2013-07-31 华为技术有限公司 一种发送报文的方法和设备
CN104243333A (zh) * 2013-06-24 2014-12-24 阿里巴巴集团控股有限公司 一种地址解析协议报文的流量控制方法
CN104243333B (zh) * 2013-06-24 2018-04-10 阿里巴巴集团控股有限公司 一种地址解析协议报文的流量控制方法
CN107566293A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 一种用于报文限速的方法及装置
CN111083062A (zh) * 2019-12-17 2020-04-28 深圳前海环融联易信息科技服务有限公司 基于权重机制的限流方法、装置、计算机设备及存储介质
CN111290858A (zh) * 2020-05-11 2020-06-16 腾讯科技(深圳)有限公司 输入输出资源管理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN100395981C (zh) 2008-06-18

Similar Documents

Publication Publication Date Title
CN1601963A (zh) 基于令牌桶算法的接入速率限制方法
CN1166132C (zh) 分组处理器
CN107959690A (zh) 基于软件定义网络的DDoS攻击跨层协同防御方法
CN1360783A (zh) 数据包的处理
CN104901832B (zh) 一种航空自组网半实物网络仿真系统
CN101426010A (zh) 信息处理装置及信息处理系统
CN100346289C (zh) 一种先入先出存储器及其输出空满标志的方法
CN1802836A (zh) 网络协议卸载引擎存储器管理
CN101051936A (zh) 一种业务流量监管方法和系统
CN101330472A (zh) 流媒体数据的缓存处理方法
CN103139093A (zh) 基于fpga的高速网络数据流负载均衡调度方法
CN1536815A (zh) 采用令牌漏桶进行报文限流的方法
CN1152313C (zh) 一种基于随机早期检测的逐节拥塞控制方法
CN1120652C (zh) 2n×n多路交换机
CN101425960B (zh) 实现负载均分的方法和设备
CN101854259B (zh) 一种数据包的计数方法及系统
CN102868636A (zh) 多核网络设备报文按流保序方法及系统
CN1265602C (zh) 媒体网关控制器和媒体网关之间的交互方法
CN1741531A (zh) 一种udp网络传输音频数据方法
CN1234065C (zh) 微控制器ip核的处理方法
CN1266878C (zh) 一种带宽控制装置及方法
CN100344103C (zh) 物理层的数据发送时隙在整个时域上均匀分布的方法
CN1146188C (zh) 因特网接入服务器的选择性计费方法
CN109828841B (zh) 一种cfd并行计算方法
CN1852225A (zh) 多播调度中缓存权重的处理方法

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