第32卷 第17期 11oL32 ・计算机工程 2006年9月 September 2006 №l7 Computer Engineering 网绛}与通信・ 文章编号:lI)00-._3428(2006)l7—{l159—{l3 文献标识码:A 中图分类号:TP393 主动队列管理RED算法改进与实验仿真研究 陈军‘,邓晓衡2 9陈志刚2 9刘佳琦 惠州学院计算机科学系,惠州516015;! fIl南大学信息科学与工程学院,长沙410083) 摘要:分析了RED及其改进算法的原 和局限性,提U r一种非线性高阶RED拥搴控制机制。该算法利用一个高I价分组丢弃函数,在 下限阂值附近以较低的概率标记丢弃分绑,住上:限闽值附近迅速提高分组的标记丢弃概率。并对网络仿真器NS2进行扩展,通过系列仿真 实验验证r改进算法有效提高r 络性能。 关健词:拥窄控制;早期随机丢弃;主动队列管理 Study 0n Active Queue Management RED lmDrovement anIT J 1 lmulatiOn ’ ,1● ● ・● CHEN Jun ,DENG Xiaoheng ,CHEN Zhigang ,LIU Jiaqi (1.Depal’tment of Computer Science,Huizhou University.Huizhou 5 1 60 1 5: 2.College of Information Science and Technology,Central South University.Changsha 4 1()083】 [Abstract]This paper investigates RED algorithms‘elements and limitation and introduces a new nonlinear high order RED algorithm which employs a high—order function to mark or discard fragments with lower and higher probability near low and high threshold respectively Fhe enhanced RED algorithm is also implemented in the network simulator NS2,the results of series simulation experimems show that the algorithm improves performance stableness and reliability of network. [Key words]Congestion control:Random early detection(RED):Active queue mallagemellt 中间节点流量控制算法是重要的拥塞控制增强机制,当 其采用传统的队列管理机制如Drop—tail时,往往会在拥塞的 路由器一k出现大的队列延时,凶此Drop—tail队列管理机制在 输入:一个分组到来 输m:该分组按概率P进行标记或丢弃 t1) 始化: 维持高的带宽利用率(较大的缓存)和低的队列延时(较小 的缓存)之间存在着一种矛盾,为了解决这一矛盾,B.Brden 等提出了主动队列管理机制的研究…动议。S、Floyd等提出的 早期随机丢弃(Random Early Detection.RED)[21是主动队列管 理策略中最有代表性的,已经成为IETF推荐的唯一的AQM 候选策略。 (2)一个分组到来: (3)if队列非空then Q =(1一w ,)×O +¨’ ,×Q f, :(1一w ) ‘ ’ Q +Wq× / t为当前时间,tn 为队列披区空的时间 / (4)ifQ <e..i then l RED算法 1.1 RED算法原理 RED算法通过检测路由器的平均队列长度q(路由器缓冲 区内数据包的平均数目)来检测网络拥塞,并以一定的概率丢 弃数据包来通知TCP发送方发生拥塞。RED算法中的数据包 丢弃概率是一个关于q的函数,它通过将 限制在一定水平 以下就可以避免突发式的连续丢掉来自于同一个连接的包, P=0; 分组全部通过 / (5)else it"Q i <Q 、<Q . { P川 =Pm,,x(Q—Q i .)/(Q Q i. ): P=P,np/(I—counl×P ):l / P为分组标记或丢弃的概率 / / count表示Q i <Q <Q 时排队(没有被丢弃)的分组数目 / f6)else P=l; 全部标记或丢弃到来的数据包 / f7)end; 将q跟2个阈值(最小阈值q…和最大闽值qma0相比较,就可 以计算出数据包丢弃概率,如式fi): 0. q q 基于端到端的拥塞控制机制在网络空闲时不断增大发送 速率,直到分组丢失,再被动进行拥塞挖制,网络的吞吐最 总是处十一种周期振荡。显然,RED算法是一种主动拥塞控 P(q) P q 二 _, . (1) 一 min 制机制,通过监测平均队列长度来确定网络拥塞的程度,采 基金项目:教育部高校博士点基金资助项目f20040533036);国家 自然科学基金资助项目f60573127) 1, q> 其中Pma 为路由缓冲队列达到最大阈值q 时的丢弃概率。 RED的缺点在于选择参数(q q ¨"p )非常困难,如果参 数配置不当,网络性能会显著降低 ,因此得到大黾的研 究 。RED算法具体实现分组标记/丢弃的策略如下: 作者简介:陈军(1962一),男,副教授,主研方向:计算机I叫络; 邓晓衡,博士;陈志刚,博士、教授;刈佳琦,硕士生 收稿日期:2006—03—25 E-mail:dxh@csu.edu.cn 】59— 维普资讯 http://www.cqvip.com
用按一定比例随机地标记或丢弃分组的方法,有效地克服了 源端算法的往返时间倒数关系的不公平性和全局同步及存在 振荡的缺陷,利用低通滤波器计算平均队列长度,有效解决 了网络流量的突发性对网络稳定性的影响,实验结果显示 RED性能优于DropTail 。 1.2 RED算法局限性 虽然RED算法具有上节所述的多种优点,但它存在两个 主要缺陷: (1)RED对参数的设置敏感,参数变化对性能影响大。 这是RED自提出以来被大量地研究却并没有被广泛应用的 重要原因。下面着重讨论RED算法中的几个重要参数: J) 为平均队列长度,作为动态计算分组丢弃标记概 率的依据,计算公式如F: (b)HO—RED Q =(J— )×Q +Ⅵ ×Q , 图1改进前后丢包率同平均 长的关系 Q 为瞬时队列长度,wq为滑动平均函数的权值。wq 我们可以确定P~Q 的曲线。综合所述,得出HO—RED 的大小决定了Q 对Q 、的影响严重程度,w 越小,表明 分组丢弃概率P如式(2)。 Q 随Q 的变化不明显,wq越大,说明Q 紧随Q 的变 化而变化,选择合适的帅确保Q 适度的灵敏性使网络缓解 P=: fi Q <Q <Q (2) 突发_流量的影响,又能对网络的拥塞作出适度反应,避免多 个数据流的同步。 else 2)Q 。 、Q 两个门限值分男0为分组全部通过时最大甲 2 NS2:扩展与实验仿真 均队列长度和分组全部丢弃时的最小平均队列长度,中间节 2.1仿真器原理 点的平均队列长度一般局限于这两个门限之间变化,如何充 NS2由美国DARPA和NSF项目资助开发,是一个面向 分利用缓存资源又减少分组通过中间节点的延迟,同时保证 对象的、离散的、事件驱动的网络仿真工具,已经能够完成 网络的高吞吐量,这本身就存在矛盾,要充分利用缓存资源, 从网络物理层到应用层的多种仿真实验。NS2的开放式的代 就要增加队列长度,而队列长度增加,又会增加网络的延迟。 码和模块化的设计使得用户有可能根据新设计的网络协议特 3)P。 为分组丢弃概率跳转到l之前的最大丢弃概率, 点增加新的功能模块,通过对原有NS2系统的功能扩展,实 RED算法中分组丢弃概率随Q 从Q 。 到Q 由0线性增 现RED改进算法,再编写仿真测试TCL脚本,进行仿真实 长到P 。P 决定了拥塞指示程度,取值偏大会导致拥塞 验,获得trace数据进行分析,评估算法的性能。NS2使用 指示过重,分组丢弃过多,网络吞吐量降低,缓存区占用也 c++和OTcl两种编程语言模型,保证了仿真效率和灵活性的 随之下降,取值偏小会导致拥塞指示过轻,缓存区容易溢出, 高度统一,对于需要涉及处理字节、分组以及大量数据集的 形成DropTail方式,使系统增加了计算 却不能发挥应有的 基本算法操作,而不会频繁修改的任务,利用C++编译型语 控制作用,其性能甚至比DropTail更差。 言实现:.对于需要频繁的修改协议对象的配置和数据流的配 由于RED算法对参数非常敏感,许多研究者试图找到一 置,利用OTcl脚本解释性语言编写仿真脚本,可以是交互的, 种普适的参数设定规律,然而,网络连接和业务是多样的且 便于多;欠模拟配置,实现非常灵活。 不断变化,很难找到一种普适的规律。 基f-NS2的网络仿真的一般步骤是,首先判断NS2中是 (2)RED算法中的平均队列长度随着加入网络的连接数 否包含需仿真算法对应的功能模块,如果有,则只需根据仿 的增加而增加。这使得分组通过中间节点的延迟会因此而增 真需要编写Tcl测试脚本执行,然后再分析实验所记录的数 加,将对许多对延迟敏感的网络业务产生影响。 据,得出结论;如果不包含该功能模块,则必须对NS2进行 1.3RED算法改进 功能扩展,构成新的NS2仿真系统,再进行前述的工作。具 RED算法的丢包率与f均队列长度是一种线性关系,在 体过程 2口图2所示。 最小阂值附近容易产生较高的丢包率,而此时网络并非 处于一种严重拥塞状态,因此有必要对丢包率函数进行 改进,我们引入基于队列长度的高阶函数,改进算法称 为HO—RED,本文中采用二阶函数。因为高阶函数在队 列长度接近最小阈值时丢包率比较低,但是又不像增加 最小阈值大小方法,将丢包率设置为零而失去对网络的 调节能力,高阶函数在最小阂值附近变化平滑,随着平 图2NS2网络仿真过程 均队列的增长慢慢增长。当平均队列接近最大阀值时,其丢 2.2 NS2 仿真器扩展 包概率的增长速度也随之较快,能较快从网络严重拥塞状态 新算法修改的对象是NS一2中的Queue/RED队列管理算 下解脱出来,因此HO—RED能够在网络相对空闲时,降低网 法,其通过继承TclObject来实现模拟和仿真。RED算法又 络丢包率,而在拥塞状态下迅速提高丢包率,从而增强了对 是从Queue类继承下来的,其类结构层次如图3所示,根据 网络拥塞的调节能力,提高网络资源的利用率,提高吞吐量。 中间节点各类的层次结构和继承关系,RED算法Queue父 RED与HO—RED算法原理如图J所示。 类中3个需要雨载的关键函数: 】60-- 维普资讯 http://www.cqvip.com
(1)函数command(),该函数是提供给OtcI脚本对一些 参数和选项进行设置的接口。 (2)函数deque(),出队列函数,返回一个数据包指针, 这个数据包将会被转发。 (3)函数enque(),进队列函数,在这个函数中实现 SCORE算法来进行路由器的缓存管理,决定是否转发新接收 到的数据包。 HO—RED算法的扩展无需构建新的类,只需对RED算法 基础进行适当修改,通过引入一个控制开关,决定是调用 数据流和FTP数据流分组廷迟比较如图5和网6所示。 0 0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 4 5 Tim e(s) RED算法或改进算法。在red.CC文件中新算法主要修改的部 分包括:构造函数REDQueue()对相关参数进行初始化,同时 圈5改进前后cbr数据流的延迟比较 将c++类的变量与Otcl中的变量进行绑定,这样就可以在用 户编写的Tcl脚本中构造Otcl变量来调用这些c++变量;以 及对计算概率的函数calculate—P—new()根据第1节所述原理 进行修改。类结构层次图见图3。 //,匝亟 l initParam s()] 1 Command()1 。。。。。。。。。。。。。E。。。‘n。q‘ u。。 ‘e(。 ) ‘—— [ 1deque()] 一∞一 B1∞o —1 1 1 0 0 0 0 0 0 0 reset(—)]2 1 0 9 8 7 6 5 4 3 Ie stimator()] lcalculate—p ne—w()J { calculate p()] l臣 回 臣五 图3类结构层次图 3实验仿真与分析 实验拓扑结构如图4所示,源端Hi(.=l….,n)产生flp 数据流,经由中问节点nl(路由器1)和n2(路由器2)到 达终端REi(i_l….,n),设两个路由器中间的链路为瓶颈链 路,带宽和延迟分别为10Mb/s和30ms,设拓扑结构的其它 所有链路带宽为30Mb/s,传输延迟为l 5ms。路由器分别使 用RED和HO—RED队列管理算法,缓冲区容量为20个分组 大小。 图4仿真实验拓扑图 HO—RED算法只需要在仿真实验脚本中通过对控制开关 赋值,QueueRED set HO—RED—ON一=l,即切换到HO—RED 算法起作用。 试验l通过对CBR、FTP业务流分别对RED和HO-RED 算法进行实验,结果表明HO—RED提高了ftp流源端发送数 据包,使CBR数据流源端发送数据包数量不变的情况下增大 3.63%的丢包率,从而使flp数据流获得更多的网络资源;对 于CBR数据流的平均延迟减少了3.27ms。对于改进前后CBR R ED—FT P Ho—R E D—FT P 0 0 0 5 1 0 1 5 2 0 2 5 Tim ef s 圈6改进前后rtp数据流的延迟比较 实验2在多个flp数控据流竞争网络资源的情况下, HO-RED较RED算法的吞吐量提高了1.5%;网络平均延迟 一∞E— BI∞凸 O 9 8 7 6 5 4 3 2,O 降低了约2ms,吞吐量和分组延迟结果如图7和图8。∞ 加 ∞ 0 1 2 3 4 5 6 7 8 Time(s) 图7改进前后延迟比较 窗 口 : 2 [ 0 1 2 3 4 5 6 7 8 9 1 0 Tim efs) 图8改进前后吞吐量比较 从以上实验结果可以得出,HO—RED算法在相同的网络 环境下对于部分网络性能有一定的提高。该改进算法实现简 单。可以很方便地将该算法应用到各种实施主动队列管理的 场景,获得比RED算法更优的网络性能。 4结论 本文分析了网络中间节点的分组丢弃/标记策略基本原 理,阐述了现有算法的不足,提出了一种基于非线性高阶 RED算法。该算法在缓存占用率低的情况下以较低的分组丢 弃率丢弃分组,可以保证较好的网络吞吐量,同时当缓存区 占有率较高时,分组丢弃概率也迅速提高,能够使网络较快 地从拥塞中解除出来,提高了系统的效率。进一步的工作是 (下转第l64页) l61— 维普资讯 http://www.cqvip.com
和响应时间的,其中RD=0.05,T 。 =T ㈨。=0.1 s, T l=1ms,VIRD的TTL =4,flooding的TTL 分 m 长十F4,F5和F6,这足因为它们只在很小的范围内查找, 所以对 } 成功的请求来说响应时间很短,但足它们的查找成 孔 0 别为4~I】,random walk的TTL 分别为1O0,300和1 000 2中,VIRD的TT[ 为4,flooding的TTL是3~1I,random walk的TTL是100,300和1 000。冈3的条件同 2。从图 功率很低(56.79%~81.03%),对于一个资源查找系统来说, 这样的成功率是很难接受的。从这组测试可以看出,在相同 2中可以看到VIRD方法在TTL =4时(简称VIRD 4)的 请求查找成功率(99.99%)比F1 1的查找成功率(98.95%) 都要高,F7的查找成功率仅为87.05'7,。当请求频率增加时, 查找成功率 ,vIRD的通信量远小于flooding系统的通信 VIRD的请求响应时问也小于flooding系统的请求响应 ,时间 Traffic 并不增加,增加的只是Traffic 。图3和图4都是 以flooding在TTL =7时(F7)的值为标准值I,取得的 3表明VIRD4的Trafl’ic 以及 相对值。之所以以F7为标准,是 为大多数Gnutella系统默 认的TTL 就是7。 Traffic 和Traffic 分别只是F7的3.48% ̄tl 26.83%,更是 只有F11的0.30%和2.3I%。 J_ v JR[24 }0 F5 6 I7 |8 1’I【J 1I RwI( KW300RWI(XX) _r兀 MAX 图4 VIRD,flooding和random walk的响应时间 4结论 本文提出 一种C/S和P2P结合的刚格环境中的资源发 现机制…¨【1 Fll RW…()RW30()RWI(HH) VIRD。它采用属性.值对的请求描述方法,提供 了比恭f ID更强的查询能力。VIRD的3层结构能够便于用 户和资源的注册、信用管理。从试验可以看到,即使在资源 TTLMAX 图2 VIRD,flooding和random walk的成功率 频度比!疫l低的状况下,使用很小的TTI ,VIRD仍能获得 比较高fl勺查找成功率 通过对VIRD与flooding和random walk的比较,叮以看出,在相同查找成功率的情况下,VIRD 所需要的刚络上的通信 :和响应时间都远小于flooding和 random walk系统。 参考文献 I Gong Y,I)ong F Li w-et a1.VEGA 1nfJashucture for Resource Discm el’Y_I1 Grids[J 1 Ioul nal ol、Comptlter Science&Technology. 2003,I8(4):4I 3-422 2 Czajkowski K.Fitzgerald S.Foster 1,c【a1.Grid information Services F8 1:9 FI【】FI 1 RWl{)0 RW 300 RW¨)01) lbr Di ̄tributed Resource Sharing[CI.Proceedings of the 10 IEEE lnternt,tional Symposium Oil High—・performance Distributed Compu・- ting(}!PDC—I()).San Franci: ̄co,CA.2001—08:I 8I一194. TTLMAX 图3 VIRI),flooding和random walk的网络开销 图4的条件刚罔2。从图4叮以看出,VIRD4的响应时 、日]是F7的97.48%,比FI1快15.25%。VIRD 4的响 时间 3 Lu D 1)inda P Synthesizing Realistic Computational Grids[C]. Proceedings of Supercnmpuling,Phoenix,AZ,2003一l 1:16 (上接第161页) 结合中间节点和终端节点j){I塞控制技术研究网络突发流量对 l 320-l 32 于网络的影响和有效克服网络突发流 的策略与技术。 4 Ott T J Lakshman T V.Wong I H.SRED:Stabilized RED[C].Proc ol’IEEE lnfocom.New York.1EEE Conlnlunications Society,1999 l 346一l 355 参考文献 I Braden B.Recommendati(ms on Queue Management and Congestion Avoidance in the internet[Sl RFC23()9.1998—04 2 Floyd S,Jacobson V.Random Early Detection Gateways for 5 Cisco Corp Weighted Random Early'Dectection(WRED)[Z】 http://www cisco com/unive ̄cd/cc/td/doc/product/software/iosl20/l2 cgcr/qosc/qcpart3/qCWl。ed.pdf. Congestion AvoidancelJI.IEEE/ACM Transactions on r,'etworking, 1993,l(4):397-4l3. 3 Feng W C,Kandlur D,Saha D,et a1.A Self-col1 riguring Red 6 NS Project1 EB/OL]http://www.isi.edu/nsnam. 7李方敏,李仁发,叶澄清.网络仿真软件ns的结果输出和分析… 计算 工程,2000,26(9):14—16. Gateway[C l Proc.of 1EEE lnfocom,New York,USA,l 999: 164一
因篇幅问题不能全部显示,请点此查看更多更全内容