基于RED算法的共享缓存管理策略
文件类型:PDF/Adobe Acrobat 文件大小:字节
更多搜索:基于 RED 算法 共享 缓存 管理 策略
基于RED算法的共享缓存管理策略
胡成臣,刘斌
( 清华大学 计算机科学与技术系 北京 100084)
摘 要: 本文研究在路由器中实现RED(random early
detection)算法与共享式缓存管理相结合的新机制.根据每个
当前活跃的队列的平均队列长度和整个共享缓存区的平均队
列长度来动态调整RED算法的参数,提出了支持RED算法的
共享缓存管理策略RED-DT,并进一步对其优化,提出
RED-ODT策略.在均衡负载和非均衡负载下进行了仿真实验,
将结果与以往的研究结果进行比较后发现其丢包率更小,缓存
利用率更高,同时兼顾公平性.RED-DT和RED-ODT保持了
RED机制的优点,并且利于在路由器中实现.
关键词:路由器;缓存管理;RED算法
中图分类号:TP393
Shared Buffer Management Schemes Based
on the RED Algorithm
Chengchen Hu, Bin Liu
(Department of Computer Science and Technology,
Tsinghua University, Beijing 100084, China)
Abstract: In this paper, we aim to address the deployment of RED
(random early detection) algorithm in routers with shared buffer. A novel
buffer management scheme named RED-DT is proposed by dynamically
adjusting the parameter of RED, based on the estimated average lengths
of both effective queue and the whole shared buffer. Further, another
scheme named RED-ODT is also presented on the basis of RED-DT.
Simulations under uniform traffic load and nonuniform traffic load are
given, and compared with prior work, the results ascertain and
demonstrate the superiority of the proposed schemes in terms of low
packet drop ratio,satisfied buffer utilization and fairness. Based on the
simulations, we believe that the proposed schemes are sufficiently
promising for deployment in routers.
Key words: router; buffer management; RED algorithm
现有文献关于路由器共享缓存管理的研究主要
基于Drop-Tail机制,分为静态门限策略(ST)[1],
PUSH OUT策略[2]和动态门限策略(DT)[3][4].ST
策略事先设置队列的门限,实现简单,但缺乏自适应
性.PUSHOUT策略公平,高效,而且具有自适应性,
但是难以实现.DT策略的队列门限可变,且实现比
较简单.若设T(t)为时刻t的控制门限,R(t)为时刻t
的剩余的缓存区大小,则T(t)表示为R(t)的函数.
由于Drop-Tail机制会导致全局同步等问题,
IETF推荐使用主动队列管理机制来提高路由器在处
理拥塞情况时性能[5].作为主动队列管理机制,
RED[6]不同于Drop-Tail机制,允许报文在填满队列
之前被随机丢弃,使得全局同步的情况可以得到避免
或者最小化.*
以往的研究主要是RED算法在单一队列中的应
用,只有文献[7]做了RED算法在共享缓存中应用的
研究,但局限于ST策略.本文提出支持RED算法的
动态门限共享缓存管理策略,并通过仿真,将结果与
文献[7]中提出的策略进行了比较和讨论.
1 支持RED算法的静态缓存管理策略
这部分简单介绍文献[7]中的两种策略.分别以
maxmin,,LLLavg表示整个共享缓存区的平均队列长
度,进行拥塞控制的队列长度下限和上限,而
iii
avgLLLmaxmin,, 则表示第i个队列的上述相应参数.
1.1 支持RED算法的完全共享策略R-CS
完全共享(CS)的ST策略允许每一个队列共享
整个缓存区.按该原则,R-CS先对整个缓存区应用
RED算法,判断maxminLLLavg<≤是否为真,如果
是,再根据每一个队列的i
avgL得到丢弃到达分组的概
率.这一机制提高了简单地对每个队列单独使用RED
时的缓存利用率,但是缺乏自适应性,会导致不公平.
收稿日期: 2003-5-20
基金项目:国家自然科学基金(No.60173007, No.60173009) ;
国家"八六三"高技术项目 (No.2002AA103011-1,
No.2003AA115110)
作者简介: 胡成臣(1981-),男(汉),浙江,博士研究生.
通讯联系人:刘斌,教授,E-mail:liub@tsinghua.edu.cn
1.2 支持RED算法的最小分配策略R-SMA
最小共享分配(SMA)的ST策略下,一部分缓存
区被永久性的划分到各个队列,而剩余的缓存区可以
被各个队列所共享.R-SMA可以简单地描述为:如
果分组到达时ii
avgLLmin):
,))(()(mintQBtL =α (2)
)).(()(maxtQBtL =β (3)
当))(),((maxmintLtLLavg∈时,计算丢弃概率
Pa ,并以此概率丢弃到达分组.(maxp为设定的最
大丢弃概率,c的取值具体见后面伪代码)
,
))()((
))()((
minmax
min
maxtLtL
tLtL
pp
i
avg
b
= (4)
).1/(bbacppp = (5)
如果)(tLi
avg超过了)(maxtL,则丢弃全部分组.
以下给出RED-DT的伪代码:
_________________________________________
初始化:
0)(=tLi
avg,c =-1;
时刻t,某一分组到达输入队列 i:
用式(1)计算 )(tLi
avg;
用式(2),(3)计算)(),(maxmintLtL;
if )()()(maxmintLtLtLi
avg<≤
用公式(4),(5)计算丢弃概率ap;
以概率ap丢弃达到分组;
c=0;
else if )()(maxtLtLi
avg≥
丢弃到达分组;
c=0;
else
a c=-1;
考虑大小为B的缓存区中目前只有A个队列处
于活跃的状态.因为各个队列的长度被控制在
)(maxtL左右,那么此时缓存区被占据的最大容量在
)()(maxtALtQ=左右,代入式(3)中可以得到
)1(max)(A
BtLβ
β
+=,所以缓存区的利用率为A
A
β
βρ+=1.
从中可以看出,与RED算法一样,RED-DT策略也
总是预留出一小部分缓存空间,能够更好地处理突发
性.
2.2 RED-ODT
如前所述RED-DT算法缓存区的利用率为
A
A
β
βρ+=1.由于β事先给定,其缓存区的利用率只随
活跃队列数A的增加而单调增加.当只有很少的队列
处于活跃状态时,缓存的利用率并不是很高.如果我
们考虑A=2的情况,给定β=1,那么缓存利用率只
有66.7%左右.
RED-DT 算法的问题在于活跃队列数较少时,过
早进入了分组丢弃阶段.因此本文又提出 RED-DT 的
优化算法RED-ODT,给出一个期望的最小缓存利用率
0ρ,则当缓存区被占据的容量BtQ0)(ρ<时,
BtL0max)(ρ=,否则按RED-DT定义的方法计算
)(maxtL.
RED-ODT在通常的情况下性能与RED-DT相
近,但是提高了活跃端口数较少时的缓存的利用率.
3 仿真结果
考察8个输入队列,2个输出队列在TCP流下的
情况.输入的源端均以ON/OFF模型发送定长分组,
这些分组的输出目的端均匀分布于两个输出端.设正
常的突发长度为10 packets,可正常使用的共享缓存
区为100 packets,0.1,5.0==βα,根据文献[8]我
们选择 1.0max=p, 002.0wq=.
首先考察均匀流下的性能比较.每一个输入在从
0.1到1.0的不同负载变化下,输出的负载从0.4到
4.0变化.图1是4种策略在不同输出负载下的丢包
率比较.RED-DT和RED-ODT的性能几乎相同,丢
包率较小,而R-CS和R-SMA略高.从队列长度,
即占用的缓存容量的变化情况中可以看出缓存的利
用率和延时抖动等指标.RED-DT占用的缓存容量的
变化情况和RED-ODT相似,R-CS占用的缓存容量
的变化情况和R-SMA相似.限于篇幅我们只给出图
2和图3分别表示R-SMA和RED-ODT的缓存占用
的情况.如同我们的分析结果,RED-ODT对缓存有
少量预留.可以看出两者平均的缓存利用率相近,但
是R-SMA延时抖动较大.
另外还考察了在非均匀流下不同策略的性能情
况.在各个输入端加入不同的负载分别是:
1.00,1.00,0.50,0.50,0.25,0.25,0.12,0.12.图4是4种策
略在不均匀负载下丢包率的比较情况.同样,RED-DT
和RED-ODT的丢包率较小.给出图5和图6分别表
示R-SMA(R-CS与之相似)和RED-ODT(RED-DT
与之相似)的各个输入队列长度在仿真时间内的平均
值.可以发现R-SMA对高负载输入队列分配的缓存
大小明显大于低负载队列,对各个输入流存在不公平
性,而RED-ODT对各个输入流就比较公平.
进一步考察RED-DT和RED-ODT分别在只有两
个输入队列一个输出队列活跃时的占用缓存的情况,
如图7所示.可以看出此时RED-ODT(设定9.00=ρ)
的缓存利用率大于RED-ODT.
4 结论
本文结合了路由器中的缓存管理和拥塞控制两
项关键技术,引入了全新的支持拥塞控制的缓存管理
策略RED-DT和RED-ODT,根据每个当前活跃的队
列的平均队列长度和整个共享缓存区的平均队列长
度来动态调整RED算法的参数,从而决定丢弃概率.
图1 均衡负载下的丢包率比较
图3 RED-ODT队列长度(均衡负载)
图2 R-SMA队列长度(均衡负载)
通过仿真测试,无论是在均衡负载还是非均衡负载
下,RED-DT和RED-ODT在丢包率,缓存利用率和
公平性上都有很好的性能表现.此外我们还做了
RED-DT和RED-ODT在只有少数输入端口活跃时的
性能比较,结果显示 RED-ODT优于RED-DT.
参 考 文 献 (References)
[1] Kamoun F, Kleinrock L. Analysis of Shared Finite Storage in a
Computer Network Node Environment under General Traffic
Conditions [J]. IEEE Transactiom on Communication. 1980. 28(7):
992-1003.
[2] Cidonn I, Guerin R. Optimal buffer sharing [J]. IEEE Transactions
on Selected Area in Communication. 1995. 13:1229-1240.
[3] Choudhury A K, Hahne E L. Dynamic queue length thresholds for a
shared memory ATM switches[A]. INFORCOM'96[C]. 1996.
2:679-687.
[4] Choudhury A K, Hahne E L. Dynamic queue length thresholds for
shared-memory packet switches.[J]. IEEE/ACM Transactions on
Networking. 1998. 6(2): 130-140.
[5] Braden B, Clark D, Crowcroft J, et al. Recommendations on Queue
Management and Congestion Avoidance in the Internet [S].
RFC2309. 1998.
[6] Floyd S, Jacobson V, Random early detection gateways for
congestion avoidance [J]. IEEE/ACM Transactions on Networking.
1993. 1(4): 397-413.
[7] Agharebparast F, Leung V C M. Improving the performance of RED
deployment on a class based queue with shared buffer [A].
Globecom'01 [C]. 2001. 2363-2367.
[8] Floyd S. RED: Discussions of Setting Parameters. [EB/OL]
http://www.icir.org/floyd/red.html.
图5 R-SMA队列长度(非均衡负载)
图6 RED-ODT队列长度(非均衡负载)
图4 非均衡负载下丢包率比较
图7 RED-DT与RED-ODT性能比较
·上一篇:模拟QQ聊天程序设计报告
·下一篇:PDA维修报告
