史士杰
中国矿业大学信息与电气工程学院,江苏徐州 221116
基于opnet的TCP Veno性能研究和仿真
史士杰
中国矿业大学信息与电气工程学院,江苏徐州 221116
由于传输介质的不同,传统拥塞控制算法在无线网络中出现了性能退化,TCP Veno通过检测链路中积压数据包大小来判断丢包的性质,进而对传统拥塞控制算法进行改进。通过OPNET仿真,该算法下的吞吐量、网络利用率、公平性、友好性均比Reno得到提高。
OPNET;TCP VENO;TCP Reno;拥塞控制
鉴于TCP/IP协议在有线网络中的良好表现,传统拥塞控制协议在无线通信网络以及混合网络中得到了越来越广泛的应用。然而,由于传输介质的差异,传统TCP拥塞控制协议并不能在无线网络中获得较好的效果。因此,要想使TCP在无线网络中具有良好的表现,就必须对传统的TCP传输协议进行改进。
传统的拥塞控制机制有4个阶段:慢启动、拥塞避免、快速重传和快速恢复。在慢启动阶段开始,将拥塞窗口初始化为1,发送端每收到一个ACK,拥塞窗口增加1,拥塞窗口以指数速度递增。当拥塞窗口达到慢启动阈值时,进入拥塞避免阶段,此时发送端每隔一个往返时延使拥塞窗口增加1,即采取线性速度增加拥塞窗口。在上述过程中,若接收端收到3个或以上重复ACK,则认为网络中出现拥塞,进入快速重传和快速恢复阶段,直至收到新的ACK确认,结束快速恢复。
显然,TCP Reno将丢包原因全部归于拥塞,这是由于传统的拥塞控制协议是基于有线网络的良好传输介质设计的,而无线网传输介质具有高时延、高误码、强干扰等特性,丢包的大部分原因不是由于拥塞所致。此时TCP Reno 仍将丢包归因于拥塞,不能准确计算网络的实时可用带宽,只是盲目的降低拥塞窗口,减少发送端发送的数据量。基于此,TCP Veno提出了能区分丢包原因的拥塞控制算法。
Veno采用类似Vegas的机制来判断网络的拥塞状态,通过判断丢包的性质进而采取不同的拥塞控制策略。当网络处于真正的拥塞时,采用Reno的拥塞控制机制,当丢包是由误码等原因产生的随即丢包时,则采用另一种拥塞控制机制。
Veno通过计算网络中数据报的积压状况来判断网络的状态。设积压的数据报大小为N,则有:
其中Actural为发送端实际发送速率,RTT为网络当前往返时延,BaseRTT为网络测到的最小往返时延,实际应用中Actural=cwnd/RTT,cwnd为拥塞窗口大小。整理得到N的计算公式:
Veno将N的大小作为判断网络是否拥塞的依据,设定一个门限值β,当N超过β时,说明连路中数据包积压严重,判定连接处于拥塞状态,若此时发生丢包则采用类似Reno的控制机制;当N小于β时,即使发送端检测到丢包,也认定连接正常,判定丢包为其他原因造成的随即丢包,采取不同于Reno的拥塞控制算法。实验表明,β取3较合理[1]。
TCP Veno是对Reno的改进算法,也采用4个阶段来实现拥塞控制。
慢启动和超时重传阶段同Reno。
拥塞避免阶段:当检测到丢包非拥塞所致,则每收到一个新ACK确认,使cwnd增加1。当检测到丢包为拥塞所致,则每收到2个新ACK确认,使cwnd增加1。
快速重传和快速恢复:当收到3个或以上重复ACK确认,若N<β,认为网络不够拥塞,判定丢包为随即丢包,将拥塞阈值置为4*cwnd/5,将cwnd=ssthresh+3,重传丢失的包;若N>β,则认为网络出现拥塞,将拥塞阈值置为cwnd/2,将cwnd=ssthresh+3,重传丢失的包。采用新策略的TCP Veno算法能使拥塞窗口更长时间地保持在较大范围,更有利于提高网络吞吐量和利用率。
鉴于OPNET良好的仿真性能,本仿真在OPNET原有Reno代码上进行修改来实现改进算法。
设定丢包率为0.5%,一条链接为Veno,一条链接为Reno。由仿真结果可知,和Reno相比,VENO的发送端能一直保持较大的拥塞窗口,获得较大的吞吐量和带宽利用率。这是因为新算法中拥塞窗口的设置是基于RTT的计算获得的,它能反映出网络的实况,避免了Reno中降低窗口的盲目性。在一定程度上减小了拥塞窗口的抖动,使发送速率更稳定性。设置不同丢包率,VENO均能表现出比Reno更好的性能。
算法的友好性是指:该算法算法影响其它版本TCP连接获取资源的程度。仿真表明,在0.5%丢包率时Veno和Reno连接连接具有相似的竞争力。因此,Veno算法具有很好的友好性。当设置不同的丢包率时,Veno均能表现出良好的友好性。
公平性是指:同种协议的不同连接,不同往返延时对获取资源的影响。此问题存在于所有算法中,但协议应尽量减小它。仿真表明,丢包率为0.5%时Veno在公平性方面表现更好。另外,在丢包率为0~5%的范围内进行仿真,VENO均表现出比Reno更好的公平性。
TCP Veno利用队列中积压数据包的大小来判别丢包的原因,进而采取不同的措施来调整发送窗口,避免了盲目的减小拥塞窗口。本仿真以0.5%丢包率为典型环境进行仿真,结果表明,Veno在各方面均表现良好。
另外,该算法是基于Reno的改进,与其他TCP协议有很好的共存性和可实施性。该算法在稳定性方面还存在一些问题,这是今后需要改进的地方。
[1]Cheng Peng Fu and Soung C.Liew. TCP Veno: TCP Enhancement for Transmission Over Wireless Access Networks[J].IEEE Journal of Selected Areas in Communications,2003(2).
[2]C.P.Fu,“TCP VENO:End-to End Condestion Control Over Heterogeneous Networks,”Ph.D.dissertaion,The Chinese Univ.Hong Kong,2001.
[3]王文博,张金文.OPNET Modeler与网络仿真.北京:人民 邮电出版社,2003.
[4]谢希仁.计算机网络[M].大连:大连理工大学出版社, 2003.
[5]黄远江,李世银,郭晶,蒋海明,李尧.基于OPNET的TCP 拥塞控制仿真.电脑知识与技术,2008(35).
TP393
A
1674-6708(2010)21-0182-02
史士杰,所在院校:中国矿业大学在读硕士,研究方向:无线网络