CN102739510B - 一种流控方法和装置 - Google Patents
一种流控方法和装置 Download PDFInfo
- Publication number
- CN102739510B CN102739510B CN201110095469.4A CN201110095469A CN102739510B CN 102739510 B CN102739510 B CN 102739510B CN 201110095469 A CN201110095469 A CN 201110095469A CN 102739510 B CN102739510 B CN 102739510B
- Authority
- CN
- China
- Prior art keywords
- stream control
- queue length
- average queue
- threshold range
- flow control
- 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
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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种流控方法,包括:设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间。本发明还提供一种流控装置。本发明能够提前感知端口拥塞,及时做出反压操作,发送流控帧。流控力度逐渐增大,避免流控过度以及流量震荡问题。
Description
技术领域
本发明涉及通信技术,尤其涉及一种流控方法和装置。
背景技术
按照IEEE802.3x协议,流控有两种方式:XON/XOFF和耗尽型。
XON/XOFF机制:利用流控帧唤醒功能进行工作的机制。流控帧为PAUSE(暂停)帧。设定门限XON和XOFF,当一方的接收先入先出(FirstInputFirstOutput,FIFO)达到高门限XOFF时,向对端发送PAUSE帧。PAUSE帧中携带一个时间参数,表示收到PAUSE帧的一方要暂停发送数据的时长,即流控时间;如果该时间参数不为0,则收到PAUSE帧的一方停止发送数据报文;如果该时间参数等于0,表示收到PAUSE帧的一方可以马上发送数据(唤醒功能)。
耗尽型:发送端接收到流控帧之后,如果流控时间为0,则取消流控,允许发送数据帧,否则,按照流控时间禁止数据报文发送,流控时间结束后,开始发送数据报文,而不必等待流控时间为0的流控帧。
如图1所示为Pause帧的结构图,图1中的MACControlParameters(媒体接入控制控制参数)字段携带流控时间。流控时间(pausetime)占用2字节整数,用于表示禁止发送端发送数据帧的时长。每一单位(pausequanta)代表512bits的时间,pausetime范围是0~65535个pause_quanta。
如图2所示,传统流控实现方法包括:MAC接收FIFO,设定XON和XOFF两个门限,当报文处理速度与接收速度不匹配,FIFO的当前水线会向左或者向右移动;当接收报文速度超过报文处理速度,FIFO的水线向XOFF移动,当水线超过XOFF,则产生pausetime不为0的流控帧,意味着通知对端开始流控,要暂停发送流量,暂停时间由pause帧携带的pausetime所决定;当报文处理速度超过报文接收速度,水线向XON移动,当水线低于XON,则产生pausetime为0的流控帧,意味着通知对端结束流控,可以继续发送流量。
设立高低门限(XON/XOFF)的作用是,避免水线在门限附近震荡,导致不断产生流控开始和结束信号,***处于不稳定状态。
但是这样的处理方式存在一定的弊端,那就是流控时间pausetime的选择。pausetime是事先设定好的,如果pausetime设定的过大,则会流控过度;如果pausetime设定的过小,流控的效果可能也不会很好。
发明内容
本发明要解决的技术问题是提供一种流控方法和装置,提高流控效率。
为了解决上述问题,本发明提供了一种流控方法,包括:
设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;
报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间。
进一步的,上述方法还可具有以下特点,所述方法还包括,当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0。
进一步的,上述方法还可具有以下特点,所述当前平均队列长度avg_q_len根据如下方式计算:
avg_q_len=q_len×wq+avg_q_len’×(1-wq)
其中,q_len为当前流控队列的长度,avg_q_len’为前一次计算得到的平均队列长度,wq为权重值,其取值为(0,1]。
进一步的,上述方法还可具有以下特点,所述各门限范围之间连续。
进一步的,上述方法还可具有以下特点,所述门限范围包括:
[0,XON),[XON,LOW),[LOW,MIDDLE),[MIDDELE,HIGH),[HIGH,XOFF)以及[XOFF,+∞)。
本发明还提供一种流控装置,包括设置单元、队列长度获取单元和流控单元,其中:
所述设置单元用于:设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;
所述队列长度获取单元用于:当报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
所述流控单元用于:当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间。
进一步的,上述装置还可具有以下特点,所述流控单元还用于:当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0。
进一步的,上述装置还可具有以下特点,所述队列长度获取单元用于:根据如下方式计算当前平均队列长度avg_q_len:
avg_q_len=q_len×wq+avg_q_len’×(1-wq)
其中,q_len为当前流控队列的长度,avg_q_len’为前一次计算得到的平均队列长度,wq为权重值,其取值为(0,1]。
进一步的,上述装置还可具有以下特点,所述设置单元设置的门限范围之间连续。
进一步的,上述装置还可具有以下特点,所述设置单元设置的所述门限范围包括:
[0,XON),[XON,LOW),[LOW,MIDDLE),[MIDDELE,HIGH),[HIGH,XOFF)以及[XOFF,+∞)。
采用本发明所述方法,与现有技术相比,具有以下有点:
1、提前感知端口拥塞,及时做出反压操作,发送流控帧;
2、流控力度逐渐增大,避免流控过度以及流量震荡问题;
3、实现简单,结合WRED的平均队列算法以及流控帧的格式要求,很容易实现。
附图说明
图1是PAUSE帧结构;
图2是传统流控实现方法;
图3是本发明流控方法流程图;
图4是本发明实施例流控门限示意图;
图5是本发明流控装置框图。
具体实施方式
本发明的核心思想是:设定多个门限,动态调整pausetime,使得***能够智能调整流控力度,在发生拥塞的初期,进行轻微流控;在发生严重拥塞的时候,加大流控力度。
本发明提供的流控方法如图3所示,包括:
步骤301:基于流控FIFO深度,设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间;
其中,门限范围可以连续,比如,预设如下门限范围[0,XON),[XON,XOFF),[XOFF,+∞),或者,[0,XON),[XON,MIDDLE),[MIDDLE,XOFF),[XOFF,+∞)。当然,门限范围也可以不连续,比如,[0,XON),[MIDDLE,XOFF),[XOFF,+∞])。
步骤302:给不同的门限范围设定不同的pausetime,且门限值大的门限范围其pausetime大于门限值小的门限范围对应的pausetime;
步骤303:报文进入流控队列时,实时计算当前平均队列长度;其中,当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
其中,流控队列基于FIFO实现;
步骤304:平均队列长度高于最低门限范围,开始流控;当平均队列长度落在特定门限范围内,使用该门限范围所对应的pausetime发送流控帧;
步骤305:当当前平均队列长度落入最低门限范围时,流控结束。
其中,当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0。
当然,基于耗尽型方式进行流控时,在当前平均队列长度落入最低门限范围时,也可以不发送流控帧。发送端接收到流控帧之后,如果流控时间为0,则取消流控,允许发送数据帧,否则,按照流控时间禁止数据报文发送,流控时间结束后,开始发送数据报文,而不必等待流控时间为0的流控帧。
下面通过具体实施例进一步说明本发明。
本发明的处理步骤如下:
第一步:基于流控FIFO深度,预先设定多个门限范围。传统的流控方法只划分了两个门限:XON和XOFF,本发明将要在FIFO上根据需要划分多个门限范围:XON-->LOW-->MIDDLE-->HIGH-->XOFF,其中[0,XON),为最低门限范围,大于等于XOFF为最高门限范围。
此次门限范围的个数仅为示例,本发明对此不作限定。
第二步:为划定的门限范围设定pausetime,当前平均队列长度假定为Qlen,如图4所示,本实施例按照如下方式设定:
当Qlen<XON时,pausetime=0;
当XON<=Qlen<LOW时,pausetime=13107(pausequanta)
当LOW<=Qlen<MIDDLE时,pausetime=26214(pausequanta)
当MIDDLE<=Qlen<HIGH时,pausetime=39321(pausequanta)
当HIGH<=Qlen<XOFF时,pausetime=52428(pausequanta)
当Qlen>=XOFF时,pausetime=65535(pausequanta)
此处pausetime值仅为示例,本发明对次不作限定。
第三步:报文进入到FIFO后,实时计算平均队列长度。
一种计算平均队列长度的方式如下:
本次队列平均长度根据上次平均队列长度和本次FIFO队列的长度来计算,队列长度和平均队列长度的计算是一个动态更新的过程。平均队列长度的递推计算公式如下:
avg_q_len=q_len×wq+avg_q_len’×(1-wq)
avg_q_len’——为上次计算的平均队列长度。
wq——为平均队列长度的权重,其取值为(0,1],wq的大小决定了平均队列长度反映真实队列长度的程度。
q_len——本次入队队列长度。
首次计算时,平均队列长度为当前FIFO中数据长度。
第四步:当平均队列长度大于XON时,开始发送流控帧,其流控参数为13107;
第五步:如果流控效果不明显,报文在FIFO里面继续累积,将会依次到达第二步所列举的门限范围3)、4)、5)和6),依据当前平均队列长度所落入的门限范围,选择为相应门限范围所设定的pausetime进行发送流控帧。
第六步:如果流控发生作用,平均队列长度将会逐渐减小,最后小于XON,那么将会发送pausetime为0的流控帧。
本发明还提供一种流控装置,如图5所示,包括设置单元、队列长度获取单元和流控单元,其中:
所述设置单元用于:设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;
所述队列长度获取单元用于:当报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
所述流控单元用于:当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间。
其中,所述流控单元还用于:当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0。
其中,所述队列长度获取单元用于:根据如下方式计算当前平均队列长度avg_q_len:
avg_q_len=q_len×wq+avg_q_len’×(1-wq)
其中,q_len为当前流控队列的长度,avg_q_len’为前一次计算得到的平均队列长度,wq为权重值,其取值为(0,1]。
其中,所述设置单元设置的门限范围之间连续。
其中,所述设置单元设置的所述门限范围包括:
[0,XON),[XON,LOW),[LOW,MIDDLE),[MIDDELE,HIGH),[HIGH,XOFF)以及[XOFF,+∞)。
采用本发明所述方法,与现有技术相比:
1、提前感知端口拥塞,及时做出反压操作,发送流控帧;
2、流控力度逐渐增大,避免流控过度以及流量震荡问题;
3、实现简单,结合WRED的平均队列算法以及流控帧的格式要求,很容易实现。
Claims (6)
1.一种流控方法,其特征在于,包括:
设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;
报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间;
所述方法还包括,当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0;
所述门限范围包括:
[0,XON),[XON,LOW),[LOW,MIDDLE),[MIDDELE,HIGH),[HIGH,XOFF)以及[XOFF,+∞)。
2.如权利要求1所述的方法,其特征在于,所述当前平均队列长度avg_q_len根据如下方式计算:
avg_q_len=q_len×wq+avg_q_len’×(1–wq)
其中,q_len为当前流控队列的长度,avg_q_len’为前一次计算得到的平均队列长度,wq为权重值,其取值为(0,1]。
3.如权利要求1至2任一所述的方法,其特征在于,所述各门限范围之间连续。
4.一种流控装置,其特征在于,包括设置单元、队列长度获取单元和流控单元,其中:
所述设置单元用于:设置至少三个互不相交的门限范围,以及所述门限范围对应的流控时间,且门限值大的门限范围其流控时间大于门限值小的门限范围对应的流控时间;
所述队列长度获取单元用于:当报文进入流控队列时,计算当前平均队列长度,其中,所述当前平均队列长度根据当前流控队列的长度和前一次计算得到的平均队列长度得到;
所述流控单元用于:当当前平均队列长度高于最低门限范围时,发送流控帧,所述流控帧中携带流控时间,所述流控时间为当前平均队列长度所在的门限范围对应的流控时间;
所述流控单元还用于:当当前平均队列长度落入最低门限范围,且前一次平均队列长度高于最低门限范围时,发送流控帧,并携带流控时间为0;
所述设置单元设置的所述门限范围包括:
[0,XON),[XON,LOW),[LOW,MIDDLE),[MIDDELE,HIGH),[HIGH,XOFF)以及[XOFF,+∞)。
5.如权利要求4所述的装置,其特征在于,所述队列长度获取单元用于:根据如下方式计算当前平均队列长度avg_q_len:
avg_q_len=q_len×wq+avg_q_len’×(1–wq)
其中,q_len为当前流控队列的长度,avg_q_len’为前一次计算得到的平均队列长度,wq为权重值,其取值为(0,1]。
6.如权利要求4至5任一所述的装置,其特征在于,所述设置单元设置的门限范围之间连续。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110095469.4A CN102739510B (zh) | 2011-04-15 | 2011-04-15 | 一种流控方法和装置 |
PCT/CN2012/073801 WO2012139496A1 (zh) | 2011-04-15 | 2012-04-11 | 一种流控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110095469.4A CN102739510B (zh) | 2011-04-15 | 2011-04-15 | 一种流控方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102739510A CN102739510A (zh) | 2012-10-17 |
CN102739510B true CN102739510B (zh) | 2016-07-27 |
Family
ID=46994328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110095469.4A Active CN102739510B (zh) | 2011-04-15 | 2011-04-15 | 一种流控方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102739510B (zh) |
WO (1) | WO2012139496A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763204B (zh) * | 2013-12-31 | 2017-03-08 | 华为技术有限公司 | 一种流量控制方法及装置 |
CN105704097A (zh) * | 2014-11-26 | 2016-06-22 | 华为数字技术(苏州)有限公司 | 一种防御攻击的方法及装置 |
CN104618265B (zh) | 2014-12-30 | 2018-03-13 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN106209681B (zh) | 2016-06-28 | 2019-05-10 | 华为技术有限公司 | 一种队列管理方法和装置 |
CN106992939B (zh) * | 2017-05-16 | 2023-10-10 | 新疆安迪星通信息科技有限公司 | 一种卫星IP网络QoS流控门限动态学习***及方法 |
CN111417145B (zh) * | 2019-01-04 | 2021-11-30 | 大唐移动通信设备有限公司 | 一种信息处理的方法及装置 |
CN113472492B (zh) * | 2020-03-30 | 2023-04-07 | 维沃移动通信有限公司 | 流控消息的传输方法和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787487A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 在交换全双工以太网络中进行数据包流控制的方法和*** |
CN101854297A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种卫星网络中传输控制协议跨层的设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2361139B (en) * | 2000-04-04 | 2003-07-09 | 3Com Corp | Flow control system for ethernet network devices |
US7839779B2 (en) * | 2005-05-16 | 2010-11-23 | Cisco Technology, Inc. | Queue aware flow control |
CN101047615B (zh) * | 2006-05-14 | 2010-05-12 | 华为技术有限公司 | 一种以太网数据流量控制方法 |
US8516101B2 (en) * | 2009-06-15 | 2013-08-20 | Qualcomm Incorporated | Resource management for a wireless device |
-
2011
- 2011-04-15 CN CN201110095469.4A patent/CN102739510B/zh active Active
-
2012
- 2012-04-11 WO PCT/CN2012/073801 patent/WO2012139496A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787487A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 在交换全双工以太网络中进行数据包流控制的方法和*** |
CN101854297A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种卫星网络中传输控制协议跨层的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012139496A1 (zh) | 2012-10-18 |
CN102739510A (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102739510B (zh) | 一种流控方法和装置 | |
CN101360049B (zh) | 一种报文转发方法及装置 | |
CN103916367B (zh) | 一种传输多媒体数据的方法及装置 | |
CN102804714B (zh) | 控制分组传输 | |
CA2516442A1 (en) | Flow control in a packet data communication system | |
CN102256314B (zh) | 业务编码速率调整方法及通信节点 | |
CN107171969A (zh) | 一种数据传输方法、装置及*** | |
CN107438031A (zh) | 多信道自适应网络带宽的音视频流传输控制方法及*** | |
CN103929372B (zh) | 主动队列管理方法和设备 | |
CN106134138A (zh) | 一种拥塞控制的方法、设备和*** | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制*** | |
RU2510981C1 (ru) | Система высокоскоростной связи и способ высокоскоростной связи | |
CN102790913B (zh) | 一种基于3g网络音视频传输方法 | |
CN105024940A (zh) | 基于链路自适应的异构网络tcp拥塞控制方法 | |
WO2018218957A1 (zh) | 一种流量控制方法、设备及*** | |
CN107070802B (zh) | 基于pid控制器的无线传感器网络拥塞控制方法 | |
CN101772061A (zh) | 休眠定时器控制方法和装置及通讯*** | |
CN108494698A (zh) | 一种基于传输速率的拥塞控制方法 | |
CN112995048B (zh) | 数据中心网络的阻塞控制与调度融合方法及终端设备 | |
US8908510B2 (en) | Communication link with intra-packet flow control | |
CN104052676A (zh) | 一种发送通路及发送通路的数据处理方法 | |
WO2024099035A1 (zh) | 一种参数调节方法和相关装置 | |
CN104270320B (zh) | 一种分布式通信***主动流量控制的方法 | |
JP2009278532A (ja) | 送信装置及び輻輳制御方法 | |
CN112491573A (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 |