RED拥塞控制技术在路由器中的应用

2016-12-22 21:59薛礼陈利
软件导刊 2016年11期

薛礼 陈利

摘 要:互联网的迅速发展带来了一系列问题,其中比较典型的是网络拥塞。网络拥塞就是用户对网络资源的需求总和超过了网络的提供能力,从而造成网络性能下降。因此,在设计网络协议时需要考虑拥塞控制问题。目前比较典型的拥塞控制策略有端到端拥塞控制和基于路由器的拥塞控制。阐述了RED拥塞控制技术在路由器中的应用及相比其它拥塞控制技术所具有的优势。

关键词:拥塞控制;RED;NS2网络模拟

DOIDOI:10.11907/rjdk.162013

中图分类号:TP393

文献标识码:A 文章编号文章编号:16727800(2016)011017902

0 引言

互联网从最初的电子邮件、文件传输等简单应用到现在即时通信、P2P等多维化应用,给人们学习、工作和生活带来了越来越多的便利。互联网是世界上最大的一个异构计算机互连网络,由成千上万的网络互连而成,其复杂程度决定了在其迅速发展过程中会出现一系列问题,其中比较典型的就是网络拥塞问题。网络拥塞会造成网络交换节点聚集大量的数据包,使节点无法及时处理数据,从而造成延迟增加,大量数据重传,甚至拒绝给用户提供服务等,是影响带宽、节点交换机缓存、吞吐量等网络资源利用率的关键因素。拥塞威胁在互联网早期就已经展露出来,1984年Nagle在其报告中就提出了由于TCP连接中没必要的重传所引起的拥塞崩溃[1],这种现象在1986-1987年间发生了多次。因此,有效控制网络拥塞是保证网络服务质量(QOS)的重要环节。

1 网络拥塞控制策略

拥塞控制就是在网络节点采取措施来避免拥塞发生或者对拥塞作出反应[2]。目前互联网使用的是TCP/IP体系结构,在使用协议发展过程中,传输控制协议TCP对网络拥塞控制起着主要作用。TCP协议属于传输层协议,提供面向连接的端到端服务,能够实现可靠和稳定的服务保证,互联网中90%以上的应用在传输层都会采用该协议。目前TCP协议中包含了一些避免和控制网络拥塞算法,如慢启动、拥塞避免、快重传和快速恢复等,相应的TCP协议版本包括TCP Tahoe、TCP Reno、TCP New Reno等。事实证明,加入这些策略的TCP协议能在网络拥塞控制方面起到重要作用,保证了终端的友好性和公平性,服务质量也得到改善。

TCP拥塞控制实施位置是端结点,通过中间节点反馈的信息调整发送速率。随着互联网中应用复杂度的增加以及非TCP应用的增多,完全依赖在终端系统中实施拥塞控制策略很难保证服务质量,因此拥塞控制策略会转向在网络中间结点即路由器中实施,希望通过这种措施来改善端到端技术无法达到的效果。节点拥塞控制和端到端拥塞控制结合使用,可使拥塞控制更有效,以保持网络的良好性能。

2 RED技术

基于路由器的拥塞控制策略核心思想是监测以及控制路由器中缓存队列长度。路由器结构会在输入输出端口设置一定的缓冲区,用来缓存到达路由器但未处理的分组,当到达的分组数过多造成缓冲区队列溢出时,路由器会发送网络出现拥塞的反馈信息。由于传统队列控制机制是先进先出FIFO,此时新到的分组处于队尾将会丢弃,这种拥塞控制技术也叫做队尾丢弃Droptail。该技术实现简单,但存在“死锁”、“满队列”、“全局同步”等问题。因此,目前倾向采用主动队列管理技术AQM来改进。

2.1 RED技术思想

主动队列管理技术是通过有意识地控制队列长度来预防拥塞,使队列不用等到队列填满出现拥塞时才丢弃分组来通知拥塞。AQM策略的代表是随机早期丢弃RED(Random Early Discard)技术,其思想是通过监测路由器端口平均队列长度来探测拥塞,一旦发现拥塞出现,就随机选择连接来通知,使这些连接的发送端在队列缓冲区溢出前减小发送窗口,降低数据发送速率,从而缓解网络拥塞。这种技术优势体现在“随机”上,即网络出现拥塞早期征兆时,先以概率p随机丢弃个别连接的分组,让拥塞控制只在某些TCP连接上进行,避免发生全局性拥塞控制[3]。在RED技术中,路由器队列维持3个参数,即队列长度最小阈值THmin、最大阈值THmax和随机丢弃概率p。RED对每个到达的数据包都先计算平均队列长度Lav,若平均队列长度小于最小阈值THmin,则将新到达的数据包放入队列中排队;若平均队列长度超过最大阈值THmax,则将新到达的数据包丢弃;若平均队列长度在最小阈值THmin和最大阈值THmax之间,则按照一定的概率p将新到的数据包丢弃,其中p的计算是最复杂的。

2.2 RED技术性能分析

为了解RED技术优势,本文利用NS2网络模拟器模拟RED工作,通过NS2中的流监控对象来记录一些统计数据到trace文件中[4]。对于采用RED技术和Droptail技术的路由器队列,记录连接总时延、总丢包数、总到达包数及总离开包数,计算网络服务质量中链路丢包率和平均时延两个性能指标。

(1) 图1是两种算法下相对于不同缓冲区大小延迟的结果。可以看出,路由器中数据包的排队延迟随着缓冲区容量增大而增大,这是因为随着缓冲区增大,包在缓冲区中允许的平均队长增加,从而增大了路由器中队列排队时间。在相同缓冲区大小时,Droptail路由延迟高于RED路由延迟。当缓冲区容量不变时,将路由队列管理算法由Droptail改为RED,传输时延有明显改善。

(2)图2是两种算法下路由器丢包率相对于不同缓冲区大小的结果。可以看出,缓冲区小于一定数值(62)时,RED算法的丢包率大于Droptail算法,说明缓冲区较小时,RED算法优势并没有体现出来;但缓冲区容量大于一定的数值后,RED算法的丢包率明显小于Droptail算法。随着缓冲区的增大,RED算法的丢包率呈下降趋势。因此,缓冲区大小超过一定值后,将路由队列管理算法由Droptail改为RED,丢包率明显改善。

3 结语

本文通过仿真实验数据,验证了RED技术对网络层拥塞控制问题具有较好的改善,能够很好地控制平均队列长度,在高吞吐量情况下能大大降低传输延迟,防止“全局同步”现象发生。但RED技术也有一些缺点,例如不同环境的参数配置,有时会出现延时抖动,还需要足够大的缓冲区、公平性问题的解决等,这是后续对RED技术进行改进的研究点。

参考文献:

[1] NAGLE J.Congestion control in IP/TCP internetworks[Z].RFC896,1984.

[2] LARRY L PETERSON, BRUCE S DAVIE.Computer networks:a system approach[M].Morgan Kaufmann Publisher,2000.

[3] 刘佳琦,陈志刚,李登.路由器算法Droptail和RED的分析与优化[J].计算机工程与应用,2006(8):128131.

[4] 徐雷鸣,庞博.NS与网络模拟[M].北京:人民邮电出版社,2003.

(责任编辑:杜能钢)