主动队列管理算法的研究
- 格式:pdf
- 大小:1.53 MB
- 文档页数:4
RED(Random Early Detection)算法是一种主动队列管理(AQM)算法,它主要用于网络中的路由器和交换机中,以避免拥塞的发生。
当网络中的流量接近设备处理能力的极限时,拥塞控制就变得至关重要。
RED算法的目的是在网络队列变得过满之前,提前通过丢弃一部分网络包来通知发送端减少发送速率。
RED算法的工作原理如下:1. 平均队列长度计算:RED算法维护一个对队列长度的加权移动平均值。
对于每个到达的数据包,RED会更新这个平均队列长度。
这个长度并不是实时队列长度,而是过去一段时间内的平均值,它可以平滑短期的流量突增。
2. 低阈值和高阈值:在RED算法中,设置两个阈值,分别是最小阈值(minth)和最大阈值(maxth)。
当平均队列长度低于最小阈值时,所有到达的数据包都会被接受。
当平均队列长度超过最大阈值时,所有到达的数据包都有可能被丢弃或标记(例如,TCP/IP网络中的ECN标记)。
3. 随机早期检测:当平均队列长度位于最小阈值和最大阈值之间时,RED会以一定的概率丢弃到达的数据包。
这个概率随着平均队列长度的增加而增加,意味着队列越拥挤,数据包被丢弃的几率就越高。
这个概率是动态计算的,用于平滑的调控传输速率,而不是突然阻断。
4. 随机性:之所以称为“随机”早期检测,是因为当队列长度介于两个阈值之间时,数据包被丢弃的决策是基于一定的随机性的。
这样做的目的是为了防止全局同步现象,即多个流同时减少他们的发送速率,然后又同时增加速率,造成网络效率的波动。
RED算法通过这种方法提前向发送方发送拥塞即将发生的信号,目的是让发送方降低数据发送速率,减少数据包丢失,从而使网络运行更加平滑,提高整体的吞吐量。
在TCP网络中,当发送方检测到数据包丢失时,它会减少其拥塞窗口的大小,减慢数据发送速率,从而减轻网络拥塞。
几种典型主动队列管理(AQM)算法黄燕琴【摘要】网络拥塞控制按照不同的标准可以分为不同的控制机制和相应的拥塞控制策略.主动队列管理(AQM)算法是一种运行于网络中心节点的积极的闭环控制的链路算法.RED(随机早期丢弃)算法是IEIF推荐的主动队列管理算法的唯一侯选算法,然而算法在响应速度、稳定性等方面仍有缺陷.阐述了当前拥塞控制算法和几种典型的主动队列管理AQM算法,分析总结原始的RED算法的不足.【期刊名称】《曲阜师范大学学报(自然科学版)》【年(卷),期】2019(045)002【总页数】5页(P104-108)【关键词】拥塞控制;队列算法;主动队列管理【作者】黄燕琴【作者单位】漳州职业技术学院电子工程学院,363000,福建省漳州市【正文语种】中文【中图分类】TM3931 RED算法(Original RED算法)RED拥塞控制机制的基本思想是通过监控路由器缓冲区队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使他们在队列溢出导致丢包之前减小拥塞窗口,降低发送数据速度,从而缓解网络拥塞.由于RED算法是基于FIFO队列调度策略的,并且只是丢弃正进入路由器的分组,因此其实施起来也较为简单.RED算法主要试图达到以下目标[1]:(1)最小包丢失率和排队延迟.(2)避免全局同步现象.(3)避免对突发业务的偏见:网络中含有大量的突发数据,而“丢尾”算法对突发业务有很大的偏见.在采用“丢尾”算法的路由器中,如果某个流的突发性越高,则当该流的包进入队列时越容易造成队列溢出,从而导致连续地丢弃大量的该流的包.(4)即使在缺乏传输层协议有效配合的情况下也能控制平均队列长度,从而避免拥塞.为了达成以上目标,RED算法按照指数权值移动均值 EWMA(Exponential Weighted Moving Average)的方法来计算平均队列长度,并且随机地选择正进入路由器的包进行丢弃.这种方法能被有效地实施而无需在路由器中维持每个流(Per-Ffow)的状态信息.RED算法主要分为2个部分.首先是计算平均队列长度,以此作为对拥塞程度的估计.另一个就是计算丢弃包的概率.a 计算平均队列长度由于Internet数据的突发性,如果一个队列在很多时候是空的,然后迅速被充满,又很快被取空,这时就不能判定路由器发生拥塞而向源端发送拥塞指示.因此,RED算法在计算平均队长Qavg时采用了类似低通滤波器(Low Pass Filter)带权值的方法Qavg(new)=(1-Wq)*Qavg(old)+Wq*Queue,(1)其中,Wq为权值,Queue为队列采样数据.由于Internet数据的突发本质或者短期拥塞导致的实际队列长度暂时的增长将不会使平均队长有明显变化,从而“过滤”掉短期瞬间的队长变化,尽量反映长期的拥塞变化.在计算平均队长的公式中,权值Wq相当于低通滤波器的时间常数,它决定了路由器对输入流量变化的反应程度.因此对Wq的选择非常重要,如果Wq过大,那么RED算法就不能有效地过虑短暂的拥塞;如果Wq太小,那么Qavg就会对实际队列长度的变化反应过慢,不能合理地反映拥塞状况,在这种情况下,路由器就不能有效检测到早期的拥塞.Wq的值应根据不同情况预先设置,一般来说,它是由路由器允许发生的突发业务的大小和持续的时间所决定的.b 计算丢包概率计算平均队长的目的就是为了反映拥塞状况,根据拥塞的程度来计算丢弃包的概率,从而有效地控制平均队列长度.RED算法有2个和队列长度相关的闭值:Qmin和Qmax.当有包到达路由器时,RED算法计算出平均队长Qavg.(2)计算丢包概率Pa的方法如式(2)、公式(3),(3)算法的第1部分决定了所允许的突发长度,而第二部分决定了在给定的当前拥塞级别时分组的丢弃频度.如果Qavg<Qmin,则进入分组就要排队,但如果Qavg>Qmax则进入分组自动地被丢弃.临界区就是当Qavg的值处于2个门限之间时.在此区域内,RED给进入分组指派了一个丢弃概率,取决于2个因素:若Qavg越接近于Qmax,则丢弃的概率就越高.图1 RED算法只要Qavg处在临界的范围,则保留一个count说明有多少个连接的分组避免了被丢弃;count的值越大,分组丢弃的概率也就越高.图1中的计算步骤较难看出所发生的细节,因此还是要简单地讨论一下.首先,要计算一个临时的概率值Pb.这个值在Qavg<Qmin时从0线性地增长到某个最大值Pmax(在Qavg<Qmax时的取值).如果我们定义一个量F就可以更容易地看出(4)它是小于Qavg的临界区的一部分.这样有Pb=F×Pmax, 0≤F≤1.(5)概率的现象有时会产生聚焦.例如,我们多次抛掷一个硬币,那么我们不会期望能够看到均匀出现的正面和反面交替出现的序列.相反,我们会看到全部是正面或全部是反面的聚焦,或较多的正面的聚焦,等等,而且其长期的平均值是50-50.对于RED算法,丢弃可能会相对地均匀分布着,因此对一个突发的信源不会受到惩罚.所以,丢弃中不直接使用概率Pb,而是用它来计算第2个概率Pa,它是用来确定丢弃的.将F带入图2中的算法,就可以得出以下的定义(6)下页图2给出了对这个函数的一些理解.对于一个给定的count值,当Qavg的值趋向于Qmax时,Pa均匀地增长.Pa从Qavg=Qmin时的Pa=0逐渐增加到在Qacg=Qmax时的最大值.如果保持F为恒定,并且画出Pa作为count的函数,那么这个函数真正的性质就更加清楚了.Pa 的值开始缓慢增加,然后急剧增长,直到它在count=(1/F×Pmax-1时达到Pa=1.这样,对count的大部分的数值,丢弃的概率极低,而当count接近其最大值时变得非常接近于1.这种效果是迫使丢弃间隔或多或少地更加均匀些.可以证明,如果我们令Pa为丢弃概率,而X为从一个分组被丢弃到下一个分组被丢弃之间的分组到达数,则X就是一个均匀分布的随机变量,从{1,2,…,1/Pb}中取值[2]:图2 RED概率的参数图3 RED和尾丢弃规一化吞吐量比较(4)(5)作为一个例子,文献[1]中推荐Pmax的值为0.02.当平均队列长度在minth和maxth之间时(F=0.5),粗略地讲,大约有即的到达的分组被丢弃.图3给出了一个模拟的结果[1],并将RED和尾丢弃策略相比.可以明显看出后者在队列已满时就简单地丢弃一个刚到达的分组.在高度拥塞时,RED可提供较高的吞吐量,因而比尾丢弃要好.RED不仅可以位于区域CDHG,也可以位于ABFE和BCGF,这取决于它是采用TD,FD还是RD.但Floyd认为,既然RED可以将平均排队时延控制在较短的范围内,FD并不能给RED带来明显的好处,RED采用TD已足够[3].RED为了限制了平均时延的大小,在平均队长超过了最大阈值后就丢包,而不是采用诸如设置CE 位之类的标记包的方法,从而有效地控制了平均队长.因为发送速度更快的流,其供随机标记的包也更多,在发生拥塞时,RED标记某个流的数据包的概率基本上和该流在路由器中的带宽成比例.从而消除了对突发流的偏见.由于RED算法存在着诸多问题,导致了改进算法的产生.这些算法主要有:Gentle RED,ARED,New ARED 等.2 Gentle RED算法1999年,Floyd又提出改进的RED算法Gentle RED,Gentle RED算法继承了RED算法的主要思想,当平均队列小于最大门阀值时,其丢弃概率的计算与RED 算法完全一致,而当平均队列Qavg大于2Qmax时,则不象RED算法一样丢弃概率由Pmax到1的跳跃,而是以另一种线性关系计算Pb的概率,然后以Pa概率来丢弃新到达路由器的分组,原理图所示.其算法函数表示为公式(7)、公式(8).(7)(8)注意到Pa不仅与Qavg有关,还与从上一次丢包开始到现在进入队列的包的数量Count有关.随着Count的增加,下一个包被丢弃的可能性也在缓慢增加.这主要是为了在到来的包之间均匀间隔地丢包,避免连续丢包,从而避免对突发流的偏见和产生全局同步现象.3 ARED算法在拥塞严重的网络中,路由器必须将足够多的拥塞信息通知到源端,以充分降低负载,避免由于队列溢出而丢包.另一方面,路由器也要防止拥塞信息过多地传给源端,从而造成瓶颈链路利用率的下降.因此,进行拥塞通知时应充分考虑到瓶颈链路上流的数量.而RED算法并没有考虑到这一点.为此ARED(A self-configuring RED)提出了一种自动配置机制,根据流量的变化来配置适当的参数.RED算法中,拥塞指示的发送速度是由参数Pmax来体现的.如果Pmax太大,那么丢包主要就是由于早期拥塞检测中产生的丢包造成的;如果Pmax太小,丢包主要就是由于队列溢出造成的.RED算法的一个弱点是平均队长对拥塞程度和参数设置很敏感.如果拥塞不太严重或者Pmax很大,则平均队长接近Qmin;如果拥塞很严重或者Pmax很小,则平均队长接近或大于Qmax.结果造成平均排队时延对流量负荷和参数设置很敏感.ARED算法的基本思想就是通过检查平均队长的变化来感知RED算法是应更激进(Aggressive)还是更保守(Conservative).如果平均队长是在Qmin附近振荡,那么拥塞控制就太激进了;如果在Qmax附近振荡,那么拥塞控制就太保守了.根据所观察到的平均队长,ARED算法动态地Pmax调整的值.其算法如下:Every Qavg Update:If (Qmin<Qavg && Qavg<Qmax)Status=between;Else if(Qavg<Qmin && Status!=below)Status=below:Pmax=Pmax/αElse if(Qavg>Qmax && Status!=above)Status=above:Pmax=Pmax*β.各参数变量含义,Status:平均队长状态, Between:Qmin和Qmax之间, Below:小于Qmin, Above:大于Qmax, α: Pmax减少量, β: Pmax增加量.ARED算法的思想很简单,就是根据平均队长是否在Qmin和Qmax之间,对Pmax采用乘法增加和乘法减少(Multiplicative Increase Multiplicative Decrease,MIMD)从而尽量保持平均队长在Qmin和Qmax之间.ARED算法是对RED算法改动很小的一种算法,它保留了RED算法的基本结构,只需调节参数Pmax从而保持平均队长在Qmin和Qmax之间,消除了RED算法的队列延时问题和参数敏感性问题.4 改进的New ARED算法为了提高ARED算法的鲁棒性, Sally Floyd等人提出了一种新的ARED算法New ARED(又称为Adaptive RED).其基本思想和ARED算法一样,都是采用自适应的Pmax以保持平均队长在Qmin,Qmax之间.不同之处在于New ARED算法保持平均队长在Qmin和Qmax的一半左右;Pmax不是每来一个包都改变,而是有一定时间间隔; Pmax不采用乘法增加和乘法减少,而是加法增加和乘法减少(Additive Increase MultiPlieative Decrease,AIMD); Pmax限制在[0.01,0.5].具体算法如下:Every interval seconds:If(Qavg>target && Pmax≤0.5)Increase Pmax:Pmax=Pmax+aElse if(Qavg<target && Pmax≥0.01)Decrease Pmax:Pmax=Pmax*β.各参变量含义,Interval:时间间隔,通常为0.05,target: Qavg的目标范围[Qmin+0.4*(Qmax-Qmin),Qmin+0.6*(Qmax-Qmin].New ARED算法的鲁棒性主要来自于Pmax不是很频繁的变化.但如果拥塞程度急剧变化,则Pmax需要过一段时间才能适应.为了保证ARED算法在这段时间里性能不会过度下降,因此将Pmax限制在[0.01,0.5]之间.这样,即使这段时间内平均对长不在目标范围内,平均延时和吞吐量也不会下降太多.RED标记包的概率依赖于拥塞水平,并且均匀地间隔丢包,避免了由于连续丢包导致地全局同步现象.但它依旧存在一些缺陷,譬如:参数敏感问题,RED算法的性能在一定程度上依赖于设计参数和网络状况[4,5].另外RED算法的公平性和稳定性也存在问题[6,7].因此,出现了一些RED改进和派生算法.丢包概率的计算很大程度上是依赖于平均队列长度的计算.参考文献:【相关文献】[1] Floyd S, Jacobson V. Random early detection gateways for congestion avoidance[J]. IEEE/ACM Trans on Network, 1993,1:397-413.[2] 夏高,刘斌. 用于高速网络入侵检测系统的并行TCP/IP协议栈[J]. 清华大学学报(自然科学版),2011,7(8):942-948.[3] 朱海婷,丁伟. 基于RED的差异型丢包队列管理算法[J]. 计算机学报,2014,567-577.[4] 任丰原,王福豹. RED算法的稳定性:基于非线性控制理论的分析[J]. 计算机学报,2002,25(12):1302-1307.[5] 汤德佑,骆嘉伟,张大方. 参数自适应的随机早期检测算法[J]. 系统仿真学报,2003,15(12):1741-1744.[6] Christiansen M, Jeffay K, Ott D, et al. Tuning RED for Web traffic[C]. Proceedings of ACM SIGCOMM 2000[A], Stockholm, Sweden, 2000. 139-150.[7] Firoiu V, Borden M. A study of active queue management for congestion control[C]. Proceedings of INFOCOM 2000[A], Tel Aviv, Israel, 2000. 1435-1444.。
S-CHOKe:一种增强CHOKe公平性的主动式队列管理算法龚静;吴春明
【期刊名称】《电子学报》
【年(卷),期】2010(038)005
【摘要】CHOKe是一种无状态的近似公平的主动式队列管理算法,利用CHOKe 击中能近似识别并惩罚非响应流,CHOKe击中的有效性以及惩罚非响应流的力度,是提高算法公平性的关键因素.本文提出了一种增强CHOKe公平性的算法S-CHOKe,以采样击中取代CHOKe击中,提高CHOKe击中的有效性;利用队列击中,自适应确定丢包数,适度惩罚非响应流.仿真实验表明,S-CHOKe能适应流数量变化,是有效的、公平的.
【总页数】5页(P1100-1104)
【作者】龚静;吴春明
【作者单位】铜仁学院计算机科学系,贵州铜仁,554300;浙江大学人工智能研究所,浙江杭州,310027
【正文语种】中文
【中图分类】TP393
【相关文献】
1.主动队列管理算法:CHOKe性能分析 [J], 聂敏
2.SBlue:一种增强Blue稳定性的主动式队列管理算法 [J], 吴春明;姜明
3.改进的基于CHOKe击中历史的公平主动式队列管理 [J], 姜明;边浩;张少丽
4.一种基于gCHOKe公平性的主动队列管理算法 [J], 黄亮亮;周井泉;李琴
5.改进的CHOKe公平性主动队列管理算法 [J], 田硕;高仲合
因版权原因,仅展示原文概要,查看原文内容请购买。