CN109257295A - 一种时延驱动的基于aqm算法的拥塞控制方法 - Google Patents
一种时延驱动的基于aqm算法的拥塞控制方法 Download PDFInfo
- Publication number
- CN109257295A CN109257295A CN201811135739.8A CN201811135739A CN109257295A CN 109257295 A CN109257295 A CN 109257295A CN 201811135739 A CN201811135739 A CN 201811135739A CN 109257295 A CN109257295 A CN 109257295A
- Authority
- CN
- China
- Prior art keywords
- data packet
- current data
- value
- queue
- queuing delay
- 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
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/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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/326—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种时延驱动的基于AQM的拥塞控制方法,首先设定参考参数,当一个数据包到达时,令该数据包进入等待进队状态,获取当前到达的数据包的优先级权重w、当前数据包队列的长度ql、当前到达的数据包的流id以及当前数据包队列的排出速率or,然后设定当前数据包的基本绘图因子,并对基本绘图因子进行更新,然后基于更新后的基本绘图因子和优先级权重得到当前数据包的优先绘图因子,接着基于优先绘图因子、当前数据包队列的排队时延qd与时延阈值qth确定当前网络是否存在拥塞,根据是否存在拥塞的结论确定当前到达的数据包是否进入当前数据包队列中;优点是排队时低延、能够获得较低流完成时间且能够获得均衡的公平性。
Description
技术领域
本发明涉及一种拥塞控制方法,尤其是涉及一种时延驱动的基于AQM算法的拥塞控制方法。
背景技术
AQM(主动队列管理)算法是一种用来管理缓存队列的方法,通常被用于网络的拥塞控制。部署有基于AQM算法的拥塞控制方法的路由器具有相对高级的调度和队列缓存策略,不是队满时才开始丢弃数据包,而是在路由器队列数据包满之前就进行包的丢弃,并提供一个拥塞指示。基于AQM算法的拥塞控制方法使用丢包来指示拥塞,可以削减丢包重传的影响,降低了网络延迟。
RED(早期随机探测)算法作为AQM算法的一种升级算法,其使用平均队列长度作为指导主动分组丢弃的拥塞指示。目前,基于RED算法的拥塞控制方法已经被广泛地部署到传统网络以及新型网络中。但是,对于不响应拥塞通知的连接,基于RED算法的拥塞控制方法无法有效处理,因此这样的连接经常会挤占大量的网络带宽,导致了各种连接不公平地共享带宽,以致基于RED算法的拥塞控制方法不能满足低排队时延以及差异化服务质量的要求,特别是在面对高带宽的非自适应流时,很难从非自适应流中保护自适应流,这些自适应流是能够很好的对网络拥塞作出反应的。
为了解决获得要求的服务质量和保护自适应流,一些比较好的的算法被提出,例如CHOKeW算法。基于CHOKeW算法的拥塞控制方法使用匹配丢失的方法来控制带宽的分配,支持对具有不同优先级权重的流进行有区别的带宽分配。每个优先级权重对应于一个优先级级别,优先级权重越大表示优先级级别较高。优先级级别主要控制着从内存中取数据包进行比较的次数,优先级级别越高,比较次数越少,被丢弃的机率就越小,然而,优先级级别越小,比较次数越高,被丢弃的机率就越大,故基于CHOKeW算法的拥塞控制方法支持核心网络中不同优先级的多个流的差异化服务。但是,当大量的TCP流和UDP流共存时,他们会相互竞争带宽。如果到达的数据包与取出的数据包流id相同,即两个来自同一流,则两个都要丢弃,由于这种不合理的数据包丢弃,就会造成较大的排队时延,大量的包会超时重传,从而不可避免地使流完成时间变长。
发明内容
本发明所要解决的技术问题是提供一种具有低排队时延、能够获得较低流完成时间且能够获得均衡的公平性的时延驱动的基于AQM的拥塞控制方法。
本发明解决上述技术问题所采用的技术方案为:一种时延驱动的基于AQM算法的拥塞控制方法,包括以下步骤:
(1)设定参考参数:将最小排队时延记为qmin,qmin的取值大于0且小于1秒;将最大排队时延记为qmax,qmax的取值大于0且小于等于1秒,且qmax>qmin;将匹配丢包的时延阈值记为qth,qth的取值大于0且小于等于1秒;
(2)当一个数据包到达时,不让该数据包进入当前数据包队列中,令该数据包进入等待进队状态,获取当前到达的数据包的优先级权重w、当前数据包队列的长度ql、当前到达的数据包的流id以及当前数据包队列的排出速率or;
(3)将当前数据包的基本绘图因子记为d0,对d0进行初始化,使其初始值为0,然后对基本绘图因子d0进行更新,具体更新过程为:
a、将当前数据包队列的排队时延记为qd,采用公式qd=ql/or计算得到当前数据包队列的排队时延记为qd;
b、将得到的当前数据包队列的排队时延qd分别与最小排队时延qmin和最大排队时延qmax进行比较:
如果当前数据包队列的排队时延qd小于最小排队时延qmin,则采用d0-ddecr的值去更新d0的值,其中ddecr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于最大排队时延qmax,则采用d0+dincr的值去更新d0的值,其中dincr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于等于最小排队时延qmin且小于等于最大排队时延qmax,则d0的值保持不变;
(4)将当前数据包的优先绘图因子记为dt,采用公式dt=d0/w计算得到当前数据包的优先绘图因子dt;
(5)获取当前数据包的优先绘图因子dt的整数部分,将其记为m,获取当前数据包的优先绘图因子dt的小数部分,将其记为f,当dt为整数时,f为0;
(6)将当前数据包队列的排队时延qd与时延阈值qth进行比较:
如果当前数据包队列的排队时延qd小于等于时延阈值qth,则网络中没有发生拥塞,让当前到达的数据包进入数据包队列中;
如果当前数据包队列的排队时延qd大于时延阈值qth,则网络中可能发生了拥塞,按照以下步骤进行处理:
A、采用随机函数生成一个大于等于0且小于1的随机数v,设定当前挑包次数记为t,将t初始化为0,设定最大挑包次数为n,如果v小于f,则令n=m+1,如果v大于等于f,则令n=m;
B、采用t的当前值加1后的值去更新t的值;
C、进行第t次挑包,具体过程为:
C-1、随机从当前数据包队列中挑选一个数据包,并获取该数据包的流id;
C-2、将该数据包的流id与当前到达的数据包的流id进行比较:
如果该数据包的流id等于当前到达的数据包的流id,则直接将当前到达的数据包丢弃,不再进行挑选,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;
如果该数据包的流id不等于当前到达的数据包的流id,则判定t的当前值是否等于n,如果t等于n,则判定网络中没有发生拥塞,让当前到达的数据包进入当前数据包队列中,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;如果t不等于n,则重复步骤B和C,直至当前到达的数据包的拥塞控制结束。
与现有技术相比,本发明的优点在于通过设定参考参数,当一个数据包到达时,不让该数据包进入当前数据包队列中,令该数据包进入等待进队状态,获取当前到达的数据包的优先级权重w、当前数据包队列的长度ql、当前到达的数据包的流id以及当前数据包队列的排出速率or,保证采集的数据的瞬时性,然后设定当前数据包的基本绘图因子,采用之前设定的参考参数和采集的具有瞬时性的数据对基本绘图因子进行更新,然后基于更新后的基本绘图因子和优先级权重得到当前数据包的优先绘图因子,对当前到达的数据包的优先级进行区分,是其满足差异化服务的要求,接着基于优先绘图因子、当前数据包队列的排队时延qd与时延阈值qth确定当前网络是否存在拥塞,根据是否存在拥塞的结论确定当前到达的数据包是否进入当前数据包队列中,由此,本发明的方法实现对网络拥塞的有效控制,排队时低延、能够获得较低流完成时间且能够获得均衡的公平性。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
实施例:一种时延驱动的基于AQM算法的拥塞控制方法,包括以下步骤:
(1)设定参考参数:将最小排队时延记为qmin,qmin的取值大于0且小于1秒;将最大排队时延记为qmax,qmax的取值大于0且小于等于1秒,且qmax>qmin;将匹配丢包的时延阈值记为qth,qth的取值大于0且小于等于1秒;
(2)当一个数据包到达时,不让该数据包进入当前数据包队列中,令该数据包进入等待进队状态,获取当前到达的数据包的优先级权重w、当前数据包队列的长度ql、当前到达的数据包的流id以及当前数据包队列的排出速率or;
(3)将当前数据包的基本绘图因子记为d0,对d0进行初始化,使其初始值为0,然后对基本绘图因子d0进行更新,具体更新过程为:
a、将当前数据包队列的排队时延记为qd,采用公式qd=ql/or计算得到当前数据包队列的排队时延记为qd;
b、将得到的当前数据包队列的排队时延qd分别与最小排队时延qmin和最大排队时延qmax进行比较:
如果当前数据包队列的排队时延qd小于最小排队时延qmin,则采用d0-ddecr的值去更新d0的值,其中ddecr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于最大排队时延qmax,则采用d0+dincr的值去更新d0的值,其中dincr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于等于最小排队时延qmin且小于等于最大排队时延qmax,则d0的值保持不变;
(4)将当前数据包的优先绘图因子记为dt,采用公式dt=d0/w计算得到当前数据包的优先绘图因子dt;
(5)获取当前数据包的优先绘图因子dt的整数部分,将其记为m,获取当前数据包的优先绘图因子dt的小数部分,将其记为f,当dt为整数时,f为0;
(6)将当前数据包队列的排队时延qd与时延阈值qth进行比较:
如果当前数据包队列的排队时延qd小于等于时延阈值qth,则网络中没有发生拥塞,让当前到达的数据包进入数据包队列中;
如果当前数据包队列的排队时延qd大于时延阈值qth,则网络中可能发生了拥塞,按照以下步骤进行处理:
A、采用随机函数生成一个大于等于0且小于1的随机数v,设定当前挑包次数记为t,将t初始化为0,设定最大挑包次数为n,如果v小于f,则令n=m+1,如果v大于等于f,则令n=m;
B、采用t的当前值加1后的值去更新t的值;
C、进行第t次挑包,具体过程为:
C-1、随机从当前数据包队列中挑选一个数据包,并获取该数据包的流id;
C-2、将该数据包的流id与当前到达的数据包的流id进行比较:
如果该数据包的流id等于当前到达的数据包的流id,则直接将当前到达的数据包丢弃,不再进行挑选,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;
如果该数据包的流id不等于当前到达的数据包的流id,则判定t的当前值是否等于n,如果t等于n,则判定网络中没有发生拥塞,让当前到达的数据包进入当前数据包队列中,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;如果t不等于n,则重复步骤B和C,直至当前到达的数据包的拥塞控制结束。
Claims (1)
1.一种时延驱动的基于AQM算法的拥塞控制方法,其特征在于包括以下步骤:
(1)设定参考参数:将最小排队时延记为qmin,qmin的取值大于0且小于1秒;将最大排队时延记为qmax,qmax的取值大于0且小于等于1秒,且qmax>qmin;将匹配丢包的时延阈值记为qth,qth的取值大于0且小于等于1秒;
(2)当一个数据包到达时,不让该数据包进入当前数据包队列中,令该数据包进入等待进队状态,获取当前到达的数据包的优先级权重w、当前数据包队列的长度ql、当前到达的数据包的流id以及当前数据包队列的排出速率or;
(3)将当前数据包的基本绘图因子记为d0,对d0进行初始化,使其初始值为0,然后对基本绘图因子d0进行更新,具体更新过程为:
a、将当前数据包队列的排队时延记为qd,采用公式qd=ql/or计算得到当前数据包队列的排队时延记为qd;
b、将得到的当前数据包队列的排队时延qd分别与最小排队时延qmin和最大排队时延qmax进行比较:
如果当前数据包队列的排队时延qd小于最小排队时延qmin,则采用d0-ddecr的值去更新d0的值,其中ddecr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于最大排队时延qmax,则采用d0+dincr的值去更新d0的值,其中dincr的取值大于0且小于0.1;
如果当前数据包队列的排队时延qd大于等于最小排队时延qmin且小于等于最大排队时延qmax,则d0的值保持不变;
(4)将当前数据包的优先绘图因子记为dt,采用公式dt=d0/w计算得到当前数据包的优先绘图因子dt;
(5)获取当前数据包的优先绘图因子dt的整数部分,将其记为m,获取当前数据包的优先绘图因子dt的小数部分,将其记为f,当dt为整数时,f为0;
(6)将当前数据包队列的排队时延qd与时延阈值qth进行比较:
如果当前数据包队列的排队时延qd小于等于时延阈值qth,则网络中没有发生拥塞,让当前到达的数据包进入数据包队列中;
如果当前数据包队列的排队时延qd大于时延阈值qth,则网络中可能发生了拥塞,按照以下步骤进行处理:
A、采用随机函数生成一个大于等于0且小于1的随机数v,设定当前挑包次数记为t,将t初始化为0,设定最大挑包次数为n,如果v小于f,则令n=m+1,如果v大于等于f,则令n=m;
B、采用t的当前值加1后的值去更新t的值;
C、进行第t次挑包,具体过程为:
C-1、随机从当前数据包队列中挑选一个数据包,并获取该数据包的流id;
C-2、将该数据包的流id与当前到达的数据包的流id进行比较:
如果该数据包的流id等于当前到达的数据包的流id,则直接将当前到达的数据包丢弃,不再进行挑选,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;
如果该数据包的流id不等于当前到达的数据包的流id,则判定t的当前值是否等于n,如果t等于n,则判定网络中没有发生拥塞,让当前到达的数据包进入当前数据包队列中,当前到达的数据包的拥塞控制结束,等待下一数据包的到来;如果t不等于n,则重复步骤B和C,直至当前到达的数据包的拥塞控制结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811135739.8A CN109257295B (zh) | 2018-09-28 | 2018-09-28 | 一种时延驱动的基于aqm算法的拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811135739.8A CN109257295B (zh) | 2018-09-28 | 2018-09-28 | 一种时延驱动的基于aqm算法的拥塞控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109257295A true CN109257295A (zh) | 2019-01-22 |
CN109257295B CN109257295B (zh) | 2021-11-05 |
Family
ID=65048032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811135739.8A Active CN109257295B (zh) | 2018-09-28 | 2018-09-28 | 一种时延驱动的基于aqm算法的拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109257295B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747253A (zh) * | 2021-08-17 | 2021-12-03 | 中移(杭州)信息技术有限公司 | 网络带宽的确定方法、视频rtp接收端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7221656B1 (en) * | 2002-06-18 | 2007-05-22 | Nortel Networks Limited | Technique for implementing an admission control scheme for data flows |
CN101753440A (zh) * | 2009-12-18 | 2010-06-23 | 华为技术有限公司 | 主动队列管理方法、装置和无线网络控制器 |
-
2018
- 2018-09-28 CN CN201811135739.8A patent/CN109257295B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7221656B1 (en) * | 2002-06-18 | 2007-05-22 | Nortel Networks Limited | Technique for implementing an admission control scheme for data flows |
CN101753440A (zh) * | 2009-12-18 | 2010-06-23 | 华为技术有限公司 | 主动队列管理方法、装置和无线网络控制器 |
Non-Patent Citations (2)
Title |
---|
杨庆祥等: "基于分组优先级的队列管理与自适应丢包机制", 《电力自动化设备》 * |
苏成龙等: "公平和低时延的主动队列管理算法研究", 《通信学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747253A (zh) * | 2021-08-17 | 2021-12-03 | 中移(杭州)信息技术有限公司 | 网络带宽的确定方法、视频rtp接收端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109257295B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dukkipati et al. | Why flow-completion time is the right metric for congestion control | |
JP3698884B2 (ja) | Tcp接続の性能改善方法 | |
KR100644445B1 (ko) | 다-임계값 리키 버킷을 사용하는 클래스-기초 속도 제어 | |
CN104954206B (zh) | 一种多路径并行传输***的乱序分析方法 | |
Yang et al. | Out-of-order transmission for in-order arrival scheduling for multipath TCP | |
US7969882B2 (en) | Packet transfer rate monitoring control apparatus, method, and program | |
CN106027416B (zh) | 一种基于时空结合的数据中心网络流量调度方法及*** | |
US9860184B2 (en) | Fast friendly start for a data flow | |
US7292532B2 (en) | Traffic shaping apparatus and traffic shaping method | |
KR101075724B1 (ko) | 통신 시스템에서 패킷 전송 속도 제한 장치 및 방법 | |
US7646781B2 (en) | Methods, systems, and computer program products for selectively discarding packets | |
CN103647722B (zh) | 一种基于信誉的链路拥塞控制方法 | |
US20160344636A1 (en) | Adaptive allocation of headroom in network devices | |
JP2001274839A (ja) | 無線ネットワーク用の遅延性能を改良したパケットのスケジューリングの方法 | |
US9350659B1 (en) | Congestion avoidance for network traffic | |
Irazabal et al. | Active queue management as quality of service enabler for 5G networks | |
CN112437019B (zh) | 用于数据中心的基于信用包的主动型传输方法 | |
CN111586763A (zh) | 基于统计优先多址接入的阈值自适应调整方法 | |
CN109257295A (zh) | 一种时延驱动的基于aqm算法的拥塞控制方法 | |
JP4259349B2 (ja) | トラヒックシェーピング方法及びトラヒックシェーピング装置 | |
Almomani et al. | Simulation Based Performance Evaluation of Several Active Queue Management Algorithms for Computer Network | |
TWI785759B (zh) | 封包轉發裝置及佇列管理方法 | |
JP2008193310A (ja) | ルータのバッファ管理方法並びにその管理方法を用いたルータ | |
CN104954284A (zh) | 一种面向概率路由的延迟容忍网络拥塞避免方法 | |
JP4536047B2 (ja) | アドミッション制御装置および方法 |
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 |