队列管理RED算法的性能研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汪琼1,吴斌2
1北京邮电大学,北京 2南京邮电大学,南京 wangqiongyeye@
摘 要: RED 算法是一种非常有效的避免拥塞和维持网络高链路利用率的队列管理机制。
RED 算法的实际性能主要取决于四个控制参数的设置。
然而,关于RED 算法的设置至今还没有一个很好的指导方针;针对各种异构网络,还未能提出设置其参量的有效方法,以维持各网络更高的链路利用率。
本论文在对RED 算法及其参数设置进行深入研究的基础上,使用NS 模拟工具模拟网络环境,根据仿真结果详尽地分析了RED 算法四个参数设置对网关中各个性能指标的影响,提供了对不同网络设置不同RED 参数的参考方案。
关键词:RED 算法; 参数设置; NS 模拟
1. 引言
网络中采用的调度机制与网络的服务质量QoS 有着密切的关系。
随着Internet 的迅速发展,网络规模越来越庞大,结构日趋复杂,仅仅依靠端到端的拥塞控制还不够,网络本身也必须参与资源的控制和管理,在网络发生拥塞时,网络节点必须丢弃一些分组,这个问题的解决首先必须实施有效的队列管理机制[1]。
之前的研究已经提出许多有效的队列管理机制,如:随机丢弃算法(Random Drop gateways)算法、尾部丢弃策略(Drop Tail gateways)、DECbit 算法和ERD(Early Random Drop)算法等算法。
但它们都有一定的缺陷,RED 算法就是在弥补这些缺陷的基础上提出来的。
随机早期检测算法(Random Early Detection)[2,3]:采用低通滤波器模型来计算平均队长,支持突发业务,使得网关处理算法实现的更为合理,避免了网关因根据变化的实际队列长度而不断的变更处理方法,该算法因其具有较低的时延,较高的吞吐量和较好的公平性而被广泛采用。
它通过在拥塞即将发生时丢弃,能够有效地避免全局同步。
RED 算法已成为路由器中的默认拥塞控制机制。
RED 工作性能的优劣很大长度上是由其预先设置的参数、mi 、ma 和ma 决定的。
一组RED 参数也许是给定业务吞吐量的最优化参数,但对于连续丢包、延迟等就未必是最优参数。
因此如何权衡它们(吞吐量、延迟等)之间的关系,有针对性地找到最优的参数,仍然有待进一步研究。
RED 参数的微小变化会给总体性能带来很大的影响。
q w n th x th x p 本论文主要目标是研究讨论RED 算法参数,明确其与网络中各项指标的关系,提出一个可行的针对不同网络环境调节算法参数的参考方案,使RED 算法发挥更好的性能。
本论文结构如下:先介绍了RED 算法及其较之其他算法的优越性,并理论上分析了其参数对不同性能指标的敏感性。
然后通过设计大量的仿真实验,分析了包括拥塞控制、平均队长、丢包和吞吐量等指标,确定RED 算法参数与调节特定的性能指标之间的关系。
(100876)
(210003)
由于以往使用的算法存在许多不足之处,如:持续的满队列状态、业务流对缓存的死锁、业务流的全局同步、对突发流的不公、平均队长计算不合理等。
所以RED 算法设计必须避免或改进这些不足,实现以下目标:(1)通过控制平均队长来避免拥塞;(2)避免全局同步问题;(3)允许突发业务。
2.1 RED 算法的原理
RED 算法使用一个指数权值平均的低通滤波器计算平均队列长度。
平均队列长度和两个门限值比较:一个下限()和一个上限();当平均队列长度在上限和下限之间时,每个到来的分组以概率min th max th a p 标记,a p 是队列平均长度avg 的函数,每当有个分组被标记时,该分组被标记的可能性与该特定节点所要求占用的带宽成比例。
当平均队列长度低于下限时,不丢弃(即丢弃概率为0)到来的分组;当平均队长在下限和上限之间时,以概率a p 丢弃到来的分组;当平均队长超过上限时,则丢弃到来的全部分组(即丢弃概率为1)。
可以看出,RED 算法分两部分:一是计算平均队长,一是计算标记概率。
平均队长的设定影响到网关队列突发度;标记概率则决定网关标记数据包的频度,表明网关当前拥塞程度。
2.1.1 平均队长的计算
RED 算法用低通滤波器来计算平均队长,所以由突发业务或者瞬时拥塞导致的队长短期增长,并不会过大的影响平均队长。
低通滤波器是指数加权动态均值,平均值计算如下:
(1)q avg w avg w q =−+q ) (1)
即 (2)
(q avg avg w q avg =+−式中为平均队列长度;为权值,对应于低通滤波器时间常数;q 为当前队列长度。
avg q w 2.1.2 标记概率的计算
初始的分组标记概率b p 是平均队列长度的线性函数。
标记概率有两种方法:其一,当平均队列长度是常量时,两次标记之间的分组数是几何随机变量;其二,两次标记之间的分组数是统一随机变量。
最初的标记概率计算方法如下:
max (min )/(max min )b p th th th p avg =−− (3)
参量是标记概率的最大值,当平均队列长度到达上限时取。
max p 方法一:几何随机变量法。
此法每个分组以概率b p 标记,设X 为两次被标记分组之间的分组数,由于每个分组均以概率b p 标记,则:
1Pr [](1)n b ob X n p p −==−b (4)
因此,X 是一个几何随机变量,并有:[]1/b E X p =。
方法二:统一随机变量法。
此法是把X 设为统一的随机变量,
取值范围是{1,2,...1/}b p (简单的假设1/b p 是一个整数);每个到来的分组以/(1*)b b p count p −的概率被标记,其中的是自上一个分组被标记以来的分组数。
在这种情况下: count 20Pr [](1)1(1)1 11/n b b i b b b
p p ob X n n p ip p for n p −===−−−−=≤≤∏b
(5) 且, Pr []0 1/b ob X n for n p ==>;可有:[]1/(2)1/2b E X p =+。
文献[4]中,实验得出方法二标记的包比方法一更均匀,RED 算法采用标记方法二。
2.2 RED 算法的参数设置
RED 算法在实践中性能的好坏取决于参数的设置,RED 算法中有如下几个参数需要设置:平均队长的权值,最大丢包概率,下限和上限ma 。
q w max p min th x th 2.2.1权值
q w q w 影响平均队长的计算,当取值比较大时,平均队长容易受瞬时队长的影响,此时平均队长增长较快,相应的允许突发能力较弱;如果取值较小,平均队长变化很小,可能导致发生拥塞却检测不到,达不到控制的目的。
参数还决定路由器中数据包在队列中的延迟。
在文献[4]中给出的参考取值为0.002。
q w q w q w q w (1)的上限范围
q w 如果太大,计算平均队列长度的程序将不能滤出网关中的拥塞,假设队列开始为空,即平均队列长度是0,当L 个分组到来后,队列长度从0变到L ;在第L 个分组到达网关后,平均队长和、L 的关系如图1所示:
q w L avg q
w
图1 是和L 的函数
L avg q w
q w q
w L
avg 假设一个下限和网关中允许的突发长度L 个分组,那么应该满足下面的不等式:
min th q w min L t avg <h 1(1)1
1L q th q w L w +−−++<min (6)
例如:=5,L=50,则必须满足min th q w ≤0.0042。
(2)的下限范围
q w RED 算法可以控制平均队列长度低于一个特定门限,然而,如果计算出的不能合理反映当前平均队列的长度,这就没有意义。
如果太小,平均队列长度变化太慢,不能反映实际队列长度的变化,此时网关将检测不到初期拥塞。
avg avg q w 假设队列从空到有一个分组,并且分组到达和离开的速度一样,则队列保持一个分组的长度。
进一步假设初期的平均队列长度是0,在这种情况下,有1/ln(1)q w −−个分组到来(保持队列长度为1),直到队列平均长度为0.63=1-1/e ;当=0.001时,要求1000个分组到达,当=0.002时,这要求500个分组到达,当=0.003时,这要求333个分组到达。
在我们通常的模拟中,=0.002。
q w q w q w q w 2.2.2 最大丢包概率
max p 最大丢包概率是当平均队长达到最大门限时的丢包概率,最大丢包概率决定了初期拥塞阶段的丢包概率。
可以根据需要来设置,但要求不能设置太大。
一般设置在0.02或稍大一些,在文献[4]中给出的取值不能大于0.1,如果过大,容易使丢包严重。
拥塞比较严重时,当平均队长超过最大门限时会自动丢包,所以也不能设置过大。
max p max p max p 2.2.3下限mi 和上限
n th max th 下限和上限的设置取决于所允许的突发业务[5]。
如果业务突发性比较强,可以将设置得偏大些;ma 的设置和允许的最大延时相关,如果对延时不敏感,max 可以设置偏大;对延时敏感的业务,则不能过大。
和的设置会影响链路利用率,设置成往返时间内的平均队长比较合适;通常ma 不能小于的两倍。
min th x th th max th max th min th max min th th −x th min th 2.3 参数敏感性
不同于只有一个自由参数(缓冲器长度)的尾部丢弃策略,RED 算法有一些附加的参数。
拥塞避免机制应有较低的参数敏感性,且参数应该在带宽变化很大的网络中都适用。
RED 算法参数,,和是必须设置的,便于网络设计者可以考虑平均队列长度和队
q w min th max th
max p
b p 的上限,如果拥塞严重,以至于网关通过以概率标记分组不能控制平均队列长度,则平均队列长度将超过上限,网关将标记每个到来的分组,直到拥塞被控制。
max p 针对特定的通信环境和网络参数,我们为RED 算法设定一些标准以发挥更好的性能:
1. 保证恰当的计算平均队列长度:设0.001,网关中的平均队列长度受所限,计算得到的平均队列长度准确地反应了实际队列的平均长度,权重不能被设置的太小,这样计算得到的平均队列长度才能及时反应在实际队列长度的增加。
q w ≥max th avg q w 2. 足够大以保证网络的利用率;由于网络流量常是突发的,如平均队列长度设置太小,链路不能充分利用。
此外,还须设定不同网络环境下的最佳平均队列长度。
min th 3.设置max min th th −充分大以避免全局同步:设置max min th th −大于在一个周期内增加的平均队列长度,以避免由同一时间内标记过多分组而引起全局同步;一个首要的规定是设置是的两倍。
max th min th
3. RED 算法参数的仿真和设计
仿真主要目标是研究讨论RED 算法参数,提出一个可行的参数设计参考方案,使在不同的网络环境下,可以根据不同需要调节RED 参数以使RED 算法发挥更好的性能。
仿真的拓扑结构图如下:
图2 网络拓扑结构图
3.1设置权值
q w 使用NS 模拟工具[6]画出当前实际队列长度和计算所得的平均队列长度之间的关系,调整值,决定路由器中数据包在队列中的延迟。
上调超过某一值时,平均队长容易受瞬时队长的影响,此时平均队长增长较快,相应的允许突发能力较弱。
随着上调,的
变化趋势:av q w q w q w avg g 对L 敏感,即对变化较敏感(平均队列长度的曲线波动较大)。
下调低于某一值时,平均队列长度对L 不敏感(平均队列长度的曲线较平滑),不能检测到初期的拥q w
q w =0.002为一经验值,在该值两边选定一些值作为比较对象,实验中表示的参数是,默认值是0.002。
观测各区间的变化趋势,如果变化太大,则进一步加大间隔,如果只在某一个或几个区间变化较大,则细分这些区间。
在同一幅图中画出实际队长与平均队长两条曲线,另外为了方便了解丢包情况,将实时的丢包概率曲线也在同一幅图中画出。
结果如下:
q w _q weight (1)默认仿真条件为:=0.002;=5; ma =15;=1/30; q w min th x th max p
仿真结果如下图:
图3 =0.002 仿真结果
q w (2)仿真条件为:=0.02;mi =5; =15;max =1/30
q w n th max th p 仿真结果如下图:
图4 =0.02 仿真结果
q w (3)仿真条件为:=0.0001;=5; =15;=1/30
q w min th max th max p 仿真结果如下图:
图5 =0.0001 仿真结果
q w (4)丢弃概率:
图6 丢弃概率图
结果分析:
1 平均队长跟踪实际队长的速度,某种意义上在诸多因素中是起到决定性作用的。
当增大时,平均队长容易受瞬时队长的影响,平均队长增长较快,允许突发能力较弱。
当减小时,平均队列长度随L 的变化变化速度变慢,将不能检测到初期的拥塞。
q w
2丢弃概率图中,实线代表=0.0001时,RED 算法的丢弃概率,丢包较少,但会导致实际队列长度超过缓冲区长度,从而在尾部大量丢弃,实际丢包数上升;较密的虚线代表
q w
=0.02时RED 算法的丢弃概率,该丢弃概率一直较大;较疏的虚线代表默认值的丢弃概率,拥塞时该值亦不是很大,比较合理。
3.2 设置下限和上限
min th max th
下限和上限的设置取决于所允许的突发业务。
如果业务突发性比较强,可以将设置得偏大些,对延时不敏感,ma 可以设置偏大些;对延时敏感的业务,ma 不能过大,会带来大的延时。
max 和的设置会影响链路的利用率;通常ma 不能小于的两倍。
的默认值是15, 的默认值是5。
min th x th x th th min th x th max th min th 为观测和ma 对队长和丢包概率的影响,在同一幅图中画出实际队长与平均队长、瞬时丢包概率三条曲线。
为观测不同上下限值变化对丢包概率的影响,分别作和三个实验值的丢包概率比较图。
详见如下:
min th x th min th max th
3.2.1下限mi
n th (1)仿真条件为:=0.002;=2; ma =15;=1/30
q w min th x th max p 仿真结果如下图:
图7 mi =2 仿真结果
n th (2)仿真条件为:=0.002;=10; =15;=1/30
q w min th max th max p 仿真结果如下图:
图8 =10 仿真结果
min th
(3)丢弃概率:
图9 丢弃概率图
结果分析:
1)由前三幅图可得,影响丢包概率,同时影响网关中实际队长和平均队长;与即min th 不变的情况比较,对网关中的拥塞控制将产生影响。
2)丢弃概率图中,实线代表=10,由于值较大,开始队列长度不易超过该值,故RED 算法不丢弃包,但会导致后期的拥塞发生,故丢弃概率有较大的增幅;较疏虚线代表=2,丢弃概率与默认参数相比,更好一点,但其链路的利用率不高。
min th min th min th 3.2.2 上限
max th (1)仿真条件为:=0.002;=5; ma =30;=1/30
q w min th x th max p
图10 =30 仿真结果
max th (2)仿真条件为:=0.002;=5; ma =7;max =1/30 q w min th x th p 仿真结果如下图:
图11 =7 仿真结果
max th (3)丢包概率:
图12 丢弃概率图
结果分析:
1)由前三幅图可得, ma 影响丢包概率,从而影响实际队长和平均队长,所以同样可以得出在不变的情况下,对网关中的拥塞控制将产生影响。
x th q w max th 2)丢弃概率图中,较密虚线代表=30时RED 算法的丢弃概率,虽然丢弃概率一直都很小,但以较大缓冲区和较大处理时延为代价;且链路利用率较低。
较疏虚线代表=7,虽可减小时延和缓冲区大小,但丢包概率一直很大。
max th max th 3.3设置最大丢包概率
max p max p (最大丢包概率),是当平均队长达到最大门限时的丢包概率,决定初期拥塞阶段的丢包概率。
max 不能设置太大。
一般设置在0.02左右,在文献[4]中给出的参考取值不能大于0.1,如果设置过大,容易丢包严重。
默认值是1/30。
其它仿真结果如下:
p max p (1)仿真条件为:=0.002;=5; ma =15;=1/10000
q w min th x th max p 仿真结果如下图:
图13 =1/10000仿真结果
max p
q
w min th x th max p
仿真结果如下图:
图14 =1/5仿真结果
max p (3)丢包概率:
图15 丢弃概率图 结果分析:
1)分析前三幅图可知,max 影响丢弃概率,从而影响缓冲区内队长的变化。
p 2)丢弃概率图则表明影响实际丢包概率的大小,会起到很大作用。
实线代表=1/10000时网关的丢弃概率,在最初未发生拥塞或拥塞很轻时,RED 算法不丢包,但一旦发
max p
p
3.4 丢包统计表
默认参数值:qw_0.002;min_5;max_15;maxp_1/30;此时在上述拓扑结构下模拟50s时间,丢包个数为358个。
表1 丢包统计表
修改参数值 丢包个数
qw_0.0001 569
qw_0.02 909
min_2 246
min_10 658
max_7 945
max_30 368
maxp_1/5 998
maxp_1/10000 1082
结果分析:
1)qw_0.0001:此时RED算法丢包概率较小,但由于前期处理(即丢包)不够,容易导致实际队列长度超过缓冲区大小,从而导致实际丢包的增加。
这可证实4.1中的推测。
2)qw_0.02:当qw值较大时,RED算法得到的平均队列长度对实际队列长度的变化具有极好的敏感性,即对实际队长变化跟踪的相当紧密,故而当拥塞发生初期,例如出现突发流,RED算法不能体现它的优势,直接丢弃到来的包,因为此时的平均队长已超过上限。
3)min_2:当min的值设置的较低时,意味着RED算法在拥塞尚未发生的时候就开始丢包,显然以丢弃未拥塞时的包为代价,链路利用率不高。
4)min_10:前面已经讨论当下限值设置较大时,可以在初期使得丢弃概率降低,然而由于初期的丢包不够,导致发生较轻拥塞时,丢包率迅速增加。
5)max_7:上限设置较小,使RED算法中平均队列长度容易超过上限,容易造成包被全部丢弃(即丢弃概率为1),故丢包率较大。
6)max_30:上限值的适当增大对丢包影响并不大,但会有时延问题。
7)maxp_1/5:由于max_p是丢弃概率的最大值,对丢弃概率的影响是很大;该值的增大直接导致丢包率的增大,丢包个数增大在所难免。
8)maxp_1/10000:正如4.4中所论及的,由于开始阶段丢弃太少,对预期的拥塞控制不力,最终导致实际队长迅速增大,使得包被全部丢弃,丢包率明显增大。
4. 结 论
拥塞避免实际上是要有效地控制缓冲区内的队长,RED算法通过丢弃未拥塞时的包,来
参考文献
[1] 魏涛、张顺颐,《一种模糊自调整的PD-RED算法》,《计算机工程与应用》2007年05期,P20-P28
[2] 胡成臣、刘斌,《基于RED 算法的共享缓存管理策略》,清华大学,计算机科学与技术系
[3] 庞斌、高文、刘喜成、向阳朝,《一种新型的基于RED的逐节拥塞控制算法》,北京中国科学院计算技术研究所,2001
[4] Sally Floyd and Van Jacobson , “Random Early Detection Gateways for Congestion Avoidance”, IEEE/ACM Transactions on Networking,1993
[5] 孙丽珺、王立宏、逯昭义,《基于多优先级的动态阈值RED算法》,青岛大学复杂科学研究所,2008
[6] 徐雷鸣、庞博、赵耀著,《NS与网络模拟》,人民邮电出版社
Parameter Research of RED Algorithm
Wang Qiong1,Wu Bin2
1 Beijing University of Posts and Telecommunications,Beijing (100876)
2 Nanjing University of Posts and Telecommunications,Nanjing (210003)
Abstract
The RED (Random Early Detection) algorithm is an extremely effective congestion avoidance mechanisms. Performance of RED is highly depended on the settings of its four control parameters. Currently, without general rules for configuring RED parameters,exiting suggestions fail to provide desired performance over a wide range of different networks.
Keywords:RED Algorithm;Parameters;NS simulation。