CN100512207C - 一种流量控制方法 - Google Patents
一种流量控制方法 Download PDFInfo
- Publication number
- CN100512207C CN100512207C CNB2004101008647A CN200410100864A CN100512207C CN 100512207 C CN100512207 C CN 100512207C CN B2004101008647 A CNB2004101008647 A CN B2004101008647A CN 200410100864 A CN200410100864 A CN 200410100864A CN 100512207 C CN100512207 C CN 100512207C
- Authority
- CN
- China
- Prior art keywords
- flow control
- token
- token bucket
- control parameter
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种流量控制方法,用于实现对以包传输的数据流的发送速率控制,包括:a.扩展令牌桶算法流量控制参数,增加令牌桶的突发容限和阈值的流量控制参数;b.通过使所述令牌桶中的令牌数保持小于等于所述的突发容限的流量控制参数值,对数据流进行令牌桶速率限制,以实现数据流量控制;通过所述阈值的流量控制参数对包速率进行令牌桶速率限制,在所述令牌桶中令牌数小于所述阈值的流量控制参数值时不能发包,以实现对包的流量控制。由于可实现变化长度的数据包的流量控制,本发明可避免网络的拥塞和延迟抖动,保证服务质量。
Description
技术领域
本发明涉及一种数据传输的方法,更具体的说,本发明涉及一种对以包传输的数据流进行流量控制的方法。
背景技术
在当前的通信系统中,底层的数据传输一般采用异步传输模式(ATM,Asynchronous Transfer Mode)或互联网协议(IP,Internet Protocol),另外,通信系统内部也可能采用自定义的协议进行数据传输。
通常,按照ATM协议传输的最小单位是信元,每个信元大小相同,根据连接进行流量控制。而按照IP或自定义协议传输的最小单位是包,对于以包发送的数据流可采用令牌桶进行流量控制。
令牌桶是一种控制数据流量的理想工具,其原理是按照设定的速度向桶中放置令牌,令牌桶的容量预先设定,当桶中令牌的数量超出令牌桶的容量时,桶中的令牌量不再增加。在令牌桶中充满令牌时,桶中所有的令牌代表的数据包均可发送,数据包通过令牌桶处理后,若令牌桶中还有足够的令牌可用于发送数据包,则数据包可以通过并继续发送下去,但是令牌桶中的令牌量相应减少,当令牌桶中的令牌少到数据包不能再发送时,则停止发送数据包,只有等到桶中生成新的令牌后,数据包才可能发送出去,因此,数据包的流量只能小于或等于令牌生成的速度,从而实现限制流量的目的。
下面简单说明以令牌桶进行流量控制功能的处理过程:
首先对数据包进行分类,规定数据包的流量特性和发送优先级,并进入令牌桶进行处理。如果令牌桶中有足够的令牌可用于发送数据包,则数据包可以通过并继续发送下去。事实上,令牌桶中的令牌数量随着数据包的消耗逐渐减少,当令牌桶中的令牌不再满足数据包的发送条件时,则数据包被丢弃。通过这一过程,可以对某类数据包流量进行控制。
由上述可知,对于以包传输的数据流,例如IP或自定义协议数据流,由于传输的最小单位是包,每次传输的包的大小都可能不同,差异较大,有的包只有几十个字节,有的包可能有几K字节甚至十几K字节。上述令牌桶流量控制方法还不能针对变化长度的数据包进行流量控制,很容易形成大量的突发造成网络的拥塞和延迟抖动,难以保证服务质量。
发明内容
本发明解决的技术问题是提供一种针对变换长度的数据包的流量控制方法,以防止大量数据包突发对网络的拥塞和延迟抖动,保证服务质量。
为解决上述问题,本发明的流量控制方法,包括:
a、扩展令牌桶算法流量控制参数,增加令牌桶的突发容限和阈值的流量控制参数;
b、通过使所述令牌桶中的令牌数保持小于等于所述的突发容限的流量控制参数值,对数据流进行令牌桶速率限制,以实现数据流量控制;通过所述阈值的流量控制参数对包速率进行令牌桶速率限制,在所述令牌桶中令牌数小于所述阈值的流量控制参数值时不能发包,以实现对包的流量控制。
其中,步骤b包括:
b1、预设用于流量控制的令牌桶的速率、令牌计数、刷新率、突发容限以及阈值流量控制参数值,初始化令牌桶;
b2、按照所述刷新率对令牌桶进行刷新,确定新的令牌计数流量控制参数值;
b3、以令牌桶对数据流进行速率限制时,判断当前令牌桶中令牌计数是否小于所述突发容限流量控制参数值,若是,直接执行步骤b4,否则,记当前令牌计数为突发容限流量控制参数值,执行步骤b4;
b4、判断当前令牌桶中令牌计数是否大于等于阈值流量控制参数值,若是,在所述令牌计数大于等于当前数据包长时,将当前令牌计数记为减去所述数据流中待发送的数据包长后的令牌数,并调度该数据包发送,否则,不进行调度。
另外,步骤a扩展令牌桶算法流量控制参数还包括:增加令牌桶的颗粒度流量控制参数,
步骤b1还包括预设颗粒度流量控制参数的参数值,并根据所述颗粒度参数值确定并预设令牌桶刷新率和刷新间隔时间,
其中预设的所述刷新率流量控制参数的参数值根据如下公式确定:
刷新率=速率/颗粒度;
所述刷新间隔时间的流量控制参数的参数值根据如下公式确定:
刷新间隔时间=8/颗粒度。
其中,步骤b4采用加权轮循或优先级调度数据包发送。
与现有技术相比,本发明具有以下有益效果:
本发明通过扩展令牌桶算法流量控制参数,增加令牌桶的突发容限和阈值的流量控制参数,以令牌桶对数据流进行速率限制时,通过设置所述突发容限参数,使调度延迟抖动降低,保证突发不会太多;同时对于长度较小的小包,通过设置所述阈值参数,当桶中的令牌数小于所述阈值时,则不能发包,以防止过多数量的小包突发,从而针对变长包进行流量控制,避免网络的拥塞和延迟抖动,保证服务质量;
另外,为防止令牌桶超过突发容限,本发明中还设置了颗粒度参数,通过所述颗粒度参数计算确定令牌桶的刷新率和刷新间隔时间,使刷新时间变快,可解决令牌桶刷新率太慢、延迟过大和桶中令牌超过突发容限的问题。
附图说明
图1是本发明实现流量控制的数据包调度的网络环境示意图;
图2是本发明将待发送的数据包缓存的流程图;
图3是本发明令牌桶流量流量控制整形的原理示意图;
图4是本发明令牌桶算法流量控制流程图;
图5是本发明加权轮循调度数据包发送的流程图。
具体实施方式
参考图1,本发明中实现流量控制的数据包调度包括三部分:入队列部分、流量控制部分、数据包发送调度部分。其中入队列部分将要发送的数据包入队列缓存,流量控制部分利用令牌桶对流量进行整型,决定数据包的发送时刻,当到达发送时刻时,从队列中取包,按照不同的QOS要求,送到相应的队列,然后由数据包调度部分调度到端口发送,具体实现时,所述数据包调度部分可以根据加权轮循调度算法进行调度,也可以根据优先级进行调度,只要满足不同的QOS要求即可,这里不再细述。
图2描述了入队列部分的缓存操作,要发送的包首先到达入队列部分,入队列部分先判断队列是否满,如果满就丢弃该包,如果队列没有满,则将包入队列,进行缓存,等待调度发送。
本发明中流量控制部分实现对数据流的流量控制功能,具体的,流量控制部分根据预设的流量控制参数进行整型,计算数据流中各个数据包的发送时刻,并在发送时刻到来时将数据包从缓存的队列中出列,送到相应的调度队列发送。本发明中流量控制部分采用令牌桶算法。具体实现所需预设的流量控制参数参考表一:
表一
Rate | Resolution | Refresh | BT | Count | Threshold |
各个参数的定义简单说明如下:
Rate:速率,即数据包需要按照此速率发送出去,单位bps;
Resolution:清晰度或颗粒度,差值小于它的两个速率将无法区分开来,单位bps;
Refresh:令牌桶刷新率;
BT:突发容限,即流量整型中允许的最大突发字节数,单位字节;
Count:令牌计数,即漏桶中的令牌数;
Threshold:阈值,即令牌桶中令牌的最小值,小于此值则不能在发送数据。
需要说明的是,上述流量控制参数中,Rate、Count和Refresh是现有技术已有的流量控制参数,BT、Threshold和Resolution是本发明扩展定义增加的参数,下面结合令牌桶算法的原理对各个参数的定义进行详细说明。
参考图3,在令牌桶中存放令牌,当需要发送数据包时,需要从桶中取令牌,每个令牌可以发一个字节。当有足够的令牌发送当前数据包时,才可以发送。每隔一定时间间隔,向桶中放入Refresh个令牌,即Count=Count+Refresh,这个时间间隔由下面方法确定:
假如要发送的速率是1bps,即每秒发一个比特,那么8秒就发一个字节。由于桶中的一个令牌可以发送一个字节,如果每隔8秒往桶中放入一个令牌,即可达到速率1bps,由此可见,8秒放入桶中的令牌数和速率在数值上相等,可达到所要求的速率。例如要求速率1Mbps,即1000000bps,则8秒往桶中放入1000000个令牌刚好达到1Mbps速率,也即Refresh等于Rate。但这样处理会导致桶中令牌过多,刷新时间过长,最终导致调度延迟抖动大,突发大。
本发明中增加参数BT,表明最大突发的字节数,这样能保证突发不会太多,桶中的令牌数不能超过BT。如果令牌数达到BT,则令牌不再增加。这样处理带来一个新的问题是,从上边论述可知刷新率Refresh可能大于BT。本发明中增加颗粒度Resolution的流量控制参数,根据所述颗粒度Resolution可确定刷新率和刷新间隔时间,即刷新率Refresh=Rate÷Resolution,刷新间隔时间等于(8÷Resolution)秒。假如还以速率1Mbps为例,最大数据包长3K字节,若取BT为4K,Resolution为10Kbps,根据上述公式计算可得到Refresh等于100,刷新时间0.0008秒,即0.0008秒往桶中放入100个令牌,刷新速度变快了,从而解决了延迟和突发的问题。
另外,需要说明的是,本发明中BT不能小于最大的包长,因为如果小于最大数据包长,对于大的数据包,将可能永远没有足够的令牌发送。
上述对于大的数据包,可能只能突发几个包,最长3K的包只能突发一个,但对于小数据包,例如长度只有几十个字节时,则一次可以突发几百个。这种包数上的突发同样存在问题。为了控制小包过多数量的突发,本发明中增加了阈值Threshold的流量控制参数。当发包时,先看令牌桶中桶中的令牌数是否大于阈值Threshold,如果大于且有足够的令牌,则从桶中取令牌,更新Count=Count-Length(包长),然后将数据包送到数据包发送调度部分进行调度,当桶中的令牌数小于阈值Threshold时,则不能发包。
本发明中流量控制部分还负责刷新令牌桶,每隔(8÷Resolution)秒时间,往桶中放入Refresh个令牌,即Count=Count+Refresh,并判断是否有足够的令牌发送数据包,如果有足够的令牌发数据包,将从队列中出队列一个数据包,按照不同的QOS要求送到不同的调度队列进行调度,并更新令牌计数Count,下面参考具体的流程对本发明实现的流量控制过程进行说明。
图4描述了本发明令牌桶算法进行流量控制的流程图。
在步骤10,首先获取令牌桶流量控制所需的流量控制参数,具体的,流量控制参数包括速率、颗粒度、突发容限和阈值;
在步骤11,根据所述获取的流量控制参数计算确定刷新率Refresh和刷新间隔时间,参考前述说明,可根据Refresh=Rate÷Resolution计算确定刷新率,根据刷新间隔时间=8÷Resolution;
在步骤12,初始化令牌桶,将令牌计数count初始化为0并初始化刷新定时器;
在步骤13,判断是否到刷新时间;
如果在步骤13判断为到刷新时间,则根据步骤11确定的刷新率Refresh刷新令牌桶中的令牌计数,执行步骤14,刷新当前令牌计数,即当前令牌计数count修改为count=count+Refresh,然后执行步骤15;
如果在步骤13判断为未到刷新时间,则执行步骤17;
在步骤15,判断令牌计数count是否大于所述突发容限BT,如果大于所述突发容限BT,则执行步骤16,当前令牌计数count记为BT,执行步骤17;如果没有大于所述突发容限BT,则直接执行步骤17;
在步骤17,判断令牌计数count是否大于等于阈值Threshold;
如果在步骤17令牌计数count没有大于等于阈值Threshold,返回步骤13;
如果在步骤17令牌计数count大于等于阈值Threshold,继续执行步骤18;
在步骤18,判断令牌计数count是否大于等于当前数据包长;
如果在步骤18判断令牌计数count大于等于当前数据包长,执行步骤19;
如果在步骤18判断令牌计数count没有大于等于当前数据包长,返回步骤13;
在步骤19,将令牌计数count修改为count=count-包长,从保存数据包的队列中出列当前包并送数据包发送调度队列按照各自的服务质量进行调度发送。
图5描述了本发明采用加权轮循调度数据发送的流程,本发明中为保证服务质量QOS,在数据包发送调度部分可采用加权轮循算法进行调度,如图示,主要包括以下流程:
首先,在步骤20,根据WRR算法决定当前要发送的队列号,然后,在步骤21,检查队列是否为空,若是,返回步骤20;否则,进入步骤22,从队列中取包送到端口发送,然后返回步骤20。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1、一种流量控制方法,用于买现对以包传输的数据流的发送速率控制,其特征在于,包括:
a、扩展令牌桶算法流量控制参数,增加令牌桶的突发容限和阈值的流量控制参数;
b、通过使所述令牌桶中的令牌数保持小于等于所述的突发容限的流量控制参数值,对数据流进行令牌桶速率限制,以实现数据流量控制;通过所述阈值的流量控制参数对包速率进行令牌桶速率限制,在所述令牌桶中令牌数小于所述阈值的流量控制参数值时不能发包,以实现对包的流量控制。
2、根据权利要求1所述的流量控制方法,其特征在于,步骤b包括:
b1、预设用于流量控制的令牌桶的速率、令牌计数、刷新率、突发容限以及阈值流量控制参数值,初始化令牌桶;
b2、按照所述刷新率对令牌桶进行刷新,确定新的令牌计数流量控制参数值;
b3、以令牌桶对数据流进行速率限制时,判断当前令牌桶中令牌计数是否小于所述突发容限流量控制参数值,若是,直接执行步骤b4,否则,记当前令牌计数为突发容限流量控制参数值,执行步骤b4;
b4、判断当前令牌桶中令牌计数是否大于等于阈值流量控制参数值,若是,在所述令牌计数大于等于当前数据包长时,将当前令牌计数记为减去所述数据流中待发送的数据包长后的令牌数,并调度该数据包发送,否则,不进行调度。
3、根据权利要求2所述的流量控制方法,其特征在于,步骤a扩展令牌桶算法流量控制参数还包括:增加令牌桶的颗粒度流量控制参数,
步骤b1还包括预设颗粒度流量控制参数的参数值,并根据所述颗粒度参数值确定并预设令牌桶刷新率和刷新间隔时间,
其中预设的所述刷新率流量控制参数的参数值根据如下公式确定:
刷新率=速率/颗粒度;
所述刷新间隔时间的流量控制参数的参数值根据如下公式确定:
刷新间隔时间=8/颗粒度。
4、根据权利要求2或3所述的流量控制方法,其特征在于,步骤b4采用加权轮循或优先级调度数据包发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101008647A CN100512207C (zh) | 2004-12-10 | 2004-12-10 | 一种流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101008647A CN100512207C (zh) | 2004-12-10 | 2004-12-10 | 一种流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1787483A CN1787483A (zh) | 2006-06-14 |
CN100512207C true CN100512207C (zh) | 2009-07-08 |
Family
ID=36784799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101008647A Expired - Fee Related CN100512207C (zh) | 2004-12-10 | 2004-12-10 | 一种流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100512207C (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100450102C (zh) * | 2006-10-09 | 2009-01-07 | 华为数字技术有限公司 | 一种对多用户进行qos调度的方法和装置 |
KR101086834B1 (ko) * | 2007-02-28 | 2011-11-24 | 지티이 코포레이션 | 다중 서비스 전송 플랫폼 설비에서의 속도 제한을 기반으로 흐름 제어를 구현하는 장치 및 방법 |
CN101034975B (zh) * | 2007-04-05 | 2010-05-26 | 华为技术有限公司 | 防范小报文攻击的方法和装置 |
CN100518148C (zh) * | 2007-04-13 | 2009-07-22 | 中国科学院软件研究所 | 一种基于令牌的互联网流量控制方法 |
EP2040422A1 (en) * | 2007-09-19 | 2009-03-25 | British Telecommunications Public Limited Company | Methods and apparatus for providing congestion indications |
CN101159675B (zh) * | 2007-11-06 | 2010-06-02 | 中兴通讯股份有限公司 | 在ip多媒体子系统中实现提高用户服务质量的方法 |
KR101558641B1 (ko) * | 2008-02-01 | 2015-10-08 | 인터디지탈 패튼 홀딩스, 인크 | 토큰 버킷들을 초기화, 유지 및 재구성하는 방법 및 장치 |
CN101959236B (zh) * | 2009-07-13 | 2013-06-26 | 大唐移动通信设备有限公司 | 一种流量控制的方法和装置 |
CN101790075B (zh) * | 2010-01-14 | 2011-10-19 | 北京东方广视科技股份有限公司 | 一种发送数据的方法和装置 |
CN101778043B (zh) * | 2010-01-19 | 2012-07-25 | 华为技术有限公司 | 基于令牌桶算法的填充速率区间的划分方法和装置 |
CN101841461B (zh) * | 2010-02-11 | 2012-05-30 | 北京星网锐捷网络技术有限公司 | 一种控制令牌桶更新的方法和装置 |
CN101873261B (zh) * | 2010-06-07 | 2012-10-03 | 北京网康科技有限公司 | 一种提高令牌桶流控效果的方法及设备 |
CN102724222A (zh) * | 2011-03-29 | 2012-10-10 | 北京东方通科技股份有限公司 | 基于esb的流量控制方法 |
CN102291309B (zh) * | 2011-08-26 | 2014-04-16 | 华为技术有限公司 | 一种基于令牌环的网络流量控制方法、节点及系统 |
CN102546411B (zh) * | 2011-12-31 | 2014-08-13 | 北京华为数字技术有限公司 | 一种转发流量的方法和装置 |
US20150236955A1 (en) * | 2012-08-21 | 2015-08-20 | Paul Allen Bottorff | Congestion Notification in a Network |
CN102970246B (zh) * | 2012-11-23 | 2017-12-22 | 上海寰创通信科技股份有限公司 | 一种以太网报文流量控制方法 |
CN104038434A (zh) * | 2013-03-08 | 2014-09-10 | 中兴通讯股份有限公司 | 一种流量监管的方法及装置 |
CN104243333B (zh) * | 2013-06-24 | 2018-04-10 | 阿里巴巴集团控股有限公司 | 一种地址解析协议报文的流量控制方法 |
CN105656800A (zh) * | 2014-12-05 | 2016-06-08 | 中兴通讯股份有限公司 | 一种传输报文的方法及装置 |
CN105635145B (zh) * | 2015-12-31 | 2019-01-04 | 盛科网络(苏州)有限公司 | Capwap dtls隧道的芯片级安全防护方法 |
CN106973022A (zh) * | 2016-01-13 | 2017-07-21 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN105721331A (zh) * | 2016-01-21 | 2016-06-29 | 盛科网络(苏州)有限公司 | 一种内嵌吞吐量性能测试处理引擎中控制发包速率的方法 |
CN105574292B (zh) * | 2016-01-29 | 2018-12-11 | 盛科网络(苏州)有限公司 | 一种基于动态数组实现多通道任意带宽发包的方法 |
CN106254180B (zh) * | 2016-08-10 | 2019-06-21 | 杭州熠芯科技有限公司 | 数据传输方法和装置 |
WO2018195728A1 (zh) | 2017-04-24 | 2018-11-01 | 华为技术有限公司 | 一种客户业务传输方法和装置 |
CN107948090B (zh) * | 2017-11-23 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种Ceph存储集群卷的带宽控制方法及装置 |
CN108183840A (zh) * | 2017-12-28 | 2018-06-19 | 天津芯海创科技有限公司 | 交换机性能的验证方法、装置和实现装置 |
-
2004
- 2004-12-10 CN CNB2004101008647A patent/CN100512207C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1787483A (zh) | 2006-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100512207C (zh) | 一种流量控制方法 | |
US10523458B2 (en) | Multicast to unicast conversion technique | |
US7415477B2 (en) | Method and apparatus for allocating link bandwidth | |
US7593329B2 (en) | Service aware flow control | |
JP3698884B2 (ja) | Tcp接続の性能改善方法 | |
KR100656509B1 (ko) | 비디오 서비스 대역폭 보장을 위한 패킷 체증제어 방법 | |
US6785236B1 (en) | Packet transmission scheduling with threshold based backpressure mechanism | |
US5787071A (en) | Hop-by-hop flow control in an ATM network | |
AU2002359740B2 (en) | Methods and apparatus for network congestion control | |
US7616573B2 (en) | Fair WRED for TCP UDP traffic mix | |
JP4287157B2 (ja) | データトラフィックの転送管理方法及びネットワークスイッチ | |
US20090010165A1 (en) | Apparatus and method for limiting packet transmission rate in communication system | |
WO2002098080A1 (en) | System and method for scheduling traffic for different classes of service | |
CN100499580C (zh) | 一种低时延抖动小突发的亏空轮询方法 | |
EP3021540B1 (en) | Scheduler and method for layer-based scheduling queues of data packets | |
US7190699B2 (en) | Method and apparatus for implementing multiple credit levels over multiple queues | |
US7130270B2 (en) | Method and apparatus for varying bandwidth provided to virtual channels in a virtual path | |
Chen et al. | Packet Scheduling Algorithm Based on Priority Adjustment in Wireless Sensor Networks | |
Kamra et al. | SFED: a rate control based active queue management discipline | |
Huang et al. | Connection admission control for constant bit rate traffic at a multi‐buffer multiplexer using the oldest‐cell‐first discipline | |
CA2301433A1 (en) | Method and system for flow control in a telecommunications network | |
Kolarov et al. | Comparison of explicit rate and explicit forward congestion indication flow control schemes for ABR service in wide area networks | |
KR100482687B1 (ko) | 에이티엠 스위치에서 유비알 서비스에 대한 폭주 제어장치 및 방법 | |
Kim | Flow Aggregation of Rate Controlled Round‐Robin Scheduler | |
Yu et al. | Self-configuring scheduling scheme for IPv6 traffic with multiple QoS classes |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090708 Termination date: 20191210 |