基于NS2的无线网络中TCP协议算法性能分析
2016-11-30
厦门工学院,福建厦门 361024
一、引言
近来,随着移动互联网的飞速发展,人们的生活方式发生了翻天覆地地变化。通过移动通信设备来网络购物,网上订餐或者是视频会议等等,给人们的生活和工作带来很多的便利。但是移动互联网的访问速度慢,访问失败率高以及视频播放不流畅等用户体验差的问题仍时常困扰着人们。因此,如何提高人们在移动互联网的用户体验成了首要问题。
优化服务器端的TCP协议是提高无线网络中的用户体验的方法之一。传统的TCP协议是为有线链路设计的。在有线的应用环境下,TCP对于端到端的延迟和包丢处理显示出优越的性能。主要原因是位出错率较低,链路性能好,主机比较固定[1]。但是在无线网络接入现有的Internet网络中,由于无线网络的链路特性问题,使得在没有拥塞的情况下启动拥塞控制,从而使TCP在无线网络中性能大大降低[2]。
本文通过NS2软件模拟仿真几种常用TCP算法在无线网络中吞吐量和发包行为,并选出一种最适合无线网络的拥塞算法,以提高人们在移动互联网中的用户体验。
二、TCP拥塞算法概述
TCP Reno算法是现有众多算法的基础,包括慢启动、拥塞避免、快速恢复以及快速重传机制。但它为了平衡必须周期性地产生一些丢包,再用AIMD(加式增加,乘式减少)的机制来调整,这样导致带宽的利用率不高。
TCP Vegas是通过计算期望值的吞吐量与实际吞吐量的差值来估计网络瓶颈处的可用带宽。这样Vegas不用依靠丢包就能检测到网络拥塞,从而在丢包前就进行拥塞避免,能减少数据丢包,并更有效的利用带宽[3]。
TCP Veno 采用类似Vegas的机制来判断网络的拥塞状态,通过判断丢包的性质来采取不同的拥塞控制策略。当网络处于真正的拥塞时,采用TCP Reno的拥塞控制机制,当网络丢包是由误码等原因产生的随即丢包时,采用一种拥塞控制机制[4]。
TCP Westwood算法通过检测应答ACK返回发送端的速率估算网络的可用带宽,并利用估算出的可用带宽计算出拥塞窗口cwnd以及慢启动阈值ssthresh,从而进行流量控制以改善网络的拥塞状况[5]。
表1 无线链路参数配置
三、网络仿真环境搭建
有线网络试验的网络拓扑图如1所示。其中PC到路由R0之间和R1到服务器之间的链路配置相同带宽1000Mbps,时延0ms,队列类型Drop Tail,最大队列30000个MSS;而R0和R1之间的带宽100Mbps,时延64ms,队列类型Drop Tail,最大队列220个MSS。从上面参数中可看到,该网络的瓶颈在于路由器R0与R1之间。
无线误码率约10-4为严重受干扰的信道,无线误码率小于10-6为干扰很小的信道,无线误码率在10-6~10-5之间为信道干扰的一般状态,由无线信道误码率BER与丢包率p存在以下关系:
其中,p(t)—丢包率;
BER—无线信道误码率;
packet length—报文章长度。
如 在 10-6~10-5之间取误码率为10-5(一般干扰),每报文长度为1000Byte(8000bit),则无线丢失概率为7%[6]。
因此,无线网络试验的网络拓扑图如图2所示。其中,智能机与访问点的距离为45m(无线网络仿真中其距离最大不能超过250m,超过即没有信号),丢包率为7%,采用MAC/802_11协议,其基本速率为1Mbps,数据速率为11Mbps,其余配置见表1。
四、有线链路与无线链路中数据传输的比较
图3、图4为有线网络环境和无线网络环境下Reno拥塞窗口变化图,其中,红线为拥塞窗口的变化,绿线代表慢启动门限的变化,横坐标为时间。从图3中可以看出,有线链路发送平稳,拥塞窗口变化处于一个有限的区域内,而且没有频繁地切换,慢启动门限基本没有发生变化。而在无线链路中拥塞窗口变化起伏大。
图5和图6为有线链路与无线链路的吞吐量仿真结果图。图5的有线链路下的TCP Reno吞吐量基本稳定在一定范围内,而图6无线链路下的TCP Reno中,多次吞吐量被拉至零。
由图3和图5中,可以看出,有线链路吞吐量与拥塞窗口密切相关,说明了有线链路中包丢失主大部份原因是由于拥塞而造成的路由器缓冲区溢出。
由图4和图6中,可以看出,造成无线网性能降低的因素并不只是拥塞,还受差错率以及时延的影响。同时也提示了这些因素中对TCP数据传输的影响:因为大的延时使得确认报文的返回时间较长,TCP发送窗口的增长速度较慢;链路差错的存在造成报文段的丢失,进而使得TCP多次将拥塞窗口置为1,重新开始慢启动的过程,从而降低了TCP的发送速率,影响TCP的性能。
从图3、图4的拥塞窗口与图5、图6吞吐量的变化图中可以看出无线链路较有线链路:拥塞窗口变化大,吞吐量波动范围大,吞吐量小等特点。
五、TCP协议各算法在无线链路上的数据传输性能比较
由于所设的发送速率远未达到链路瓶颈,本文不考虑拥塞报文丢失,故认为信道态不佳是造成报文丢失的主要原因。各版本的TCP协议拥塞窗口及吞吐量随时间的变化见图7~图14。
1、各TCP版本拥塞窗口比较及分析
各TCP版本报文大小为1000Byte,丢包率为7%下拥塞窗口见图7~图10。
从图7与图8比较看到,由于Vegas是通过RTT提前探测网络的拥塞情况,所以相对于Reno其拥塞窗口一直稳定在一定范围内,但拥塞窗口一直保持在较小的值。而无线上的RTT较大,因此不适用于无线网络。
从图7与图9比较看到,与Reno算法相比,由于Veno在拥塞状态发生时,通过判断丢包的性质来采取不同的拥塞控制策略,所以不会盲目降低拥塞窗口的增加速度,而当拥塞发生时,发送端将拥塞窗口增速放缓,从而能使拥塞窗口更长时间地保持在较大的状态。因此,从图中看出,在一定时间内拥塞窗口的变化明显小于Reno的变化。
Westwood算法通过检测应答ACK返回发送端的速率估算网络的可用带宽,并利用估算出的可用带宽计算出拥塞窗口cwnd以及慢启动阈值ssthresh,从而进行流量控制以改善网络的拥塞状况。但从图9与图10比较看到,Westwood的拥塞窗口窗口的平均值明显比Veno拥塞窗口的平均值大。
2、各TCP版本吞吐量比较及分析
各TCP版本分组大小为1000Byte丢包率为7%下吞吐量见图11~图14。
从上述4图中比较,在丢包率为7%的情况下,Vegas的吞吐量最为稳定,波动范围较小,相比于其他算法,Vegas将吞吐量拉至0的次数明显较少;而相比于其他算法,Westwood算法的吞吐量的平均值最高。
六、小结
本文首先对有线链路与无线链路的拥塞窗口与吞吐量进行比较,然后几种TCP算法以及丢包率对拥塞窗口和吞吐量的影响进行了比较与分析,最后得出以下结论。
在无线链路中,如果整个网络都使用Vegas算法,能达到很不错的效果,即更大的吞吐量和更低的丢包率。但是很显然,这是不现实的。Vegas算法的带宽竞争力太弱了,比Reno算法还不激进,因此不建议采用。
Veno算法避免Reno算法盲目的将拥塞窗口减半,因此能够维持更大的拥塞窗口,吞吐量也比Reno算法大,取得更高的带宽利用率。其友好性和公平性也较好,与其他的TCP也具有较好的共存性。
Westwood通过对带宽进行估计来调整cwnd和ssthress的值,使得免受随机丢包的影响,因此cwnd一直处于较大的位置,从而提高了吞吐量。另外,Westwood对随机丢包不敏感,因此在以上几种算法中,westwood在无线网络丢包率较高时表现最好。本文建议在无线网络中选用westwood算法作为拥塞控制算法。