高斌 谭敏生 陈琼 赵慧
南华大学计算机科学与技术学院 湖南 421001
在解决网络拥塞问题上,传统的基于 TCP/IP协议的拥塞控制算法已无法有效、及时的解决当前的网络拥塞问题,而基于主动队列的拥塞控制算法是当前研究解决网络拥塞问题的主要方向之一。通过设置队列可以吸收、暂存网络中暂时无法处理的数据包,从而起到网络拥塞调控的作用。较大的队列能够暂存较多的突发数据包、减少丢包率、提高网络的吞吐量,但是同样会增大数据包的排队延时。相反,如果队列的容量太小,则无法解决拥塞问题。有效的队列管理算法在缓解网络拥塞问题上具有重要的作用。RED(Random early Discard)随机早丢弃算法作为当前最流行的主动拥塞控制算法在解决网络拥塞问题上已经发挥了重要的作用,然而该算法自身的局限使得其并不能及时有效地解决网络中出现的拥塞问题,算法具有相对滞后性,且算法对参数的设置非常敏感。现有的一些主动队列拥塞控制算法大多是 RED算法的衍生,实现的基础仍然是队列长度或平均队列长度。因此,这些算法在提高网络整体性能上具有局限性。
时延是反映网络性能的一个重要指标。数据报文由源发送端到达目的接收端的过程中,数据报文所经历的延时一般包括传输时延、传播时延、处理时延和排队时延。对于长度相同的数据报文通过同一条源端到目的端的路径来说,传输时延、传播时延和处理时延是固定的,这三部分又称为固定时延。由于网络流具有突发性,每个数据报文的排队时延随着网络的状况的变化而变化,因此,排队时延又称为变化时延。
本文将重点考虑往返延时(Round-Trip Time,RTT)中的ACK传输时延对网络性能的影响。往返时延是由源、目端节点间的单向时延、目的节点间的处理时延和目、源端节点间的单向时延(ACK传输时延)组成的。往返时延对于设置重传超时时间、源发送端的发送窗口的大小具有重要的实际意义。本文在原有拥塞控制算法的基础上,将 ACK报文传输延迟引入到拥塞控制系统中,仿真实验表明:ACK传输延时的大小在很大程度上影响着网络的吞吐量、数据包传输延迟等。
RED算法是由Van Jacobson和Sally Floyed 在1993年首次提出来的,算法设计目的是减小包丢失率和排队延迟,避免全局源同步和获得较高的链路利用率。其基本工作原理是在每个路由上监视自己的队列长度,当它检测到拥塞即将发生时,就按照一定概率选择一个即将进入缓冲队列的数据包将其丢弃,工作原理如图1所示,S为发送端,D为接收端,R1、R为路由节点。
图1 RED工作原理图
RED是采用加权的动态平均值来计算平均队列的长度(AvgLen)。计算如下:Lenavg=(1-Weight)×Lenavg+Weight×SampleLen
其中:0<Weight<1,SampleLen是样本测量时的队列的长度。由于网络流量具有突发性,算法使用平均队列长度,不使用瞬时队列长度的原因是平均队列长度能够更好的反映或者捕获链路的拥塞状况。
在RED队列中存在两个用于触发某种特定活动的阀值:Thresholdmin和Thresholdmax。
当Lenavg 当 Thresholdmin<= Lenavg <Thresholdmax时,计算概率P,并以概率P丢弃数据包; 当Lenavg >=Thresholdmax时,将到达的数据包或分组全部丢弃。 RED算法能够在一定程度上减小了数据包的队列排队延时和丢包率,但该算法不是明确的将链路拥塞通知信息发送给发送端,而是通过设置标志位或丢弃一个数据包隐式的通知发送端链路已发生拥塞,源发送端根据目的接收端发送的反馈信息来调整发送窗口大小,调整数据发送速率,从而实现拥塞控制。因此,在与源发送端协作上不具有协调性。这种不协调性主要体现在:当节点发生拥塞时,发送端并没有及时的接收到拥塞信息,致使丢包。 由于发送端与接收端之间的链路具有非对称性,因此,往返延时(RTT)的值随着链路的状态的变化而变化。RTT值的变化取决于以下两个因素:(1)数据报文从发送端到接收端的传送过程中的存储转发排队延时的变化。排队延时的大小取决于数据报文所在链路的拥塞程度。(2)数据报文确认信息报文(ACK)从接收端到发送端传输过程中的存储转发排队延时变化以及丢包等因素所造成的延时变化。 传统的队列拥塞控制的研究仅仅考虑发送端到接收端之间的单向瓶颈链路的拥塞状态,而并没有考虑接收端到发送端之间链路的拥塞状态,即:没有考虑 ACK数据报文的延时或丢失对系统性能的影响。 本文将在以下四种情况下,分别研究RTT值对拥塞控制算法在提高网络性能方面的影响,重点研究 ACK数据报文传输状态对网络性能的影响。 情况一、发送端到接收端的单向链路上不会出现瓶颈链路,返回链路上没有竞争数据流,而且反向链路上不会发生数据报文拥塞状态。 情况二、发送端到接收端的单向链路上不会出现瓶颈链路,返回链路上有竞争数据流,而且反向链路上不会发生数据报文拥塞状态或ACK数据报文丢失。 情况三、发送端到接收端的单向链路上会出现瓶颈链路,但是反向链路上没有竞争数据流或者不会出现 ACK数据报文丢失。 情况四、发送端与接收端之间的往返链路上都会出现瓶颈链路,而且都会出现链路拥塞状态或数据报文丢失。 仿真实验采用NS-2.34软件平台,链路环境设置如图2所示。图中的S表示源端,D代表目的端。发送的数据流包括基于TCP协议的数据流和基于UDP协议的数据流;两端与路由节点之间的链路带宽设置为2Mbs,传输延时为10ms;两个路由节点之间的链路的带宽和传输延时随着实验目的的不同将会发生变化。 图2 链路环境A 在节点 R1处采集基于 TCP协议的数据报文的传输信息,所采集的信息根据返回链路上是否具有背景流,将分为两类:一类是在返回链路(R→R1)上没有背景流,以 S开头表示此类,如:“Sdelay”等;另一类是返回链路上具有背景流,以D开头表示此类,如:“Ddelay”等。 分别分析在这两种情况下的数据报文的传输延时和吞吐量的关系,分析图如图3、图4所示。通过图3可以看出:在通信两端之间的返回链路上不会出现链路拥塞状况时,无论返回链路上是否具有竞争流,数据报文的传输延时的变化主要取决于源端到目的端之间的链路上的拥塞程度,而与返回链路上是否具有竞争流关系很小。同理,此时系统的数据报文的吞吐量大小的变化也主要取决于源端到目的端之间的链路上的拥塞程度,而与返回链路上是否具有竞争流关系很小。 在每种情况下,分别采集数据并分析相应的数据报文传输延时以及吞吐量的大小情况,分析结果如图5、图6所示。通过图可以看出,当返回链路上出现拥塞状况或 ACK数据包丢失时,数据报文的传输延时将会随之增大,与此同时,系统的吞吐量也明显的降低。由此可以看出 ACK数据报文的传输延时会明显的影响应用数据包的传输延时和系统吞吐量的大小。 图3 延时对比图 图4 吞吐量对比图 图5 延时对比图 图6 吞吐量对比图 通过以上分析可以看出 ACK数据报文的传输状态明显的影响着网络整体的性能。传统的拥塞控制算法在研究过程中只注重源端到目的端之间的链路状态对系统性能的影响,而没有考虑返回链路的状态对系统性能的影响,通过仿真实验可以看出,在应用相同的拥塞控制算法时,返回链路的传输状态对基于 TCP协议的数据报文的传输延时以及吞吐量的大小的影响具有重要的作用。接下来的工作将进一步研究在 ACK数据报文传输状态变化的情况下,设计更加灵活的主动队列拥塞控制算法以提高网络系统的性能,显著地降低传输延时和提高吞吐量。 [1] Larry L. Peterson,Bruce S. Davie. 计算机网络系统方法[M].机械工业出版社.2009. [2] W.Stevens.TCP Slow Start,Congestion Avoidance,Fast Retransmit,and Fast Recovery Algorithms,RFC 2001.January 1997. [3] 张少博,李钢,康军.基于神经网络监督控制的拥塞控制算法研究[J].计算机应用研究.2010. [4] 刘伟彦,孙雁飞等.一种参数自适应的主动队管理算法—自适应BLUE[J].电子与信息学报.2009. [5] 刘明,窦文华等.主动队列管理研究综述[J].计算机工程.2006. [6] Yuanwei Jing*,Na Yu*, Zhi Kong.Active Queue Management Algorithm Based on Fuzzy Sliding Model Controller[C].Proceedings of the 17th World Congress, the International Federation of Automatic Control Seoul,Korea,July 6-11.2008. [7] Long Le,Jay Aikat.The Effects of Active Queue Management and Explicit Congestion Notification on Web Performance[C].IEEE/ACM Transactions on Networking.2005. [8] Sally Floyd. Ramakrishna Gummadi. Adaptive RED: An Algorithm for Increasing the Robustness of RED’s Active Queue Management [J]. AT&T Center for Internet Research at ICSI.2001. [9] 陈瑞柏.自适应主动队列管理算法的研究[D].南京理工大学.2009. [10] Athuraliya S., Lapsley D. E., Low S. H. Random early marking for Internet congestion control [J]. IEEE/ACM Transactions on Networking, Vol. 15, No:3, 2001. [11] 杨家海,吴建平,安常青.互联网络测量理论与应用[M].北京:人民邮电出版社.2009. [12] 王晖,季振洲,孙彦东等.基于时间槽的自相似流量的随机早检测算法—SFRED [J].通信学报.2010. [13] 黄丽亚,王锁萍.基于自相似业务流的Hurst加权随机早检测算法[J].通信学报.2007.2 ACK数据报文传输状态引入
3 仿真实验及结果
3.1 基于情况一与情况二的仿真与数据分析
3.2 基于情况三和情况四的仿真与数据分析
4 总结