周 杰
(安徽电子信息职业技术学院 软件学院,安徽 蚌埠 233030)
TCP协议中拥塞窗口同步现象的研究与仿真
周杰
(安徽电子信息职业技术学院 软件学院,安徽 蚌埠 233030)
摘要:采用TCP协议并使用拥塞窗口机制避免网络拥塞的计算机网络,网络中的各个传输节点可能它们启动时间不同。但最终会出现拥塞窗口同步现象,使得各个节点能够平等的使用网络带宽。并且仿真软件NS2的模拟结果也反应了这一现象。
关键词:拥塞窗口;同步现象;仿真
0引言
随着计算机网络的广泛应用和普及,当今计算机网络体系中90%以上信息主要采用TCP协议进行传输,并且传输的数据量也越来越庞大,因而必然会出现网络拥塞的情况。于是,采用TCP协议的计算机网络必然要采用相应的控制算法去避免拥塞以及解决拥塞。TCP协议主要的控制算法有TCP-Tahoe、TCP-Reno、TCP-Vegas和TCP-SACK[1]等等,这些算法很好的解决了网络拥塞的问题,并且这些算法都普遍让传输节点使用拥塞窗口(cwnd)来控制信息量的传输。这也就确定了节点传输的速度,及传输带宽。这种采用拥塞窗口控制数据量的方法,普遍让人认为,因为网络上的每个节点启动时间可能会不同,使得每个节点采用的拥塞窗口也不一样,也就使得每个节点分得的网络带宽不一样,但实际上并非这样。
1拥塞窗口同步现象
根据TCP协议的网络拥塞控制算法[2],传输节点每收到一个确认报文,及经过一个回路响应时间(RTT),其自身的拥塞窗口的值就会增加1,使得每个节点的拥塞窗口在不断增加,拥有的带宽也在不断增加,直到有报文在网络中出现遗失。当传输节点检测到网络上出现遗失报文时,节点就会将网络拥塞窗口降为原来的1/2。这样每个传输节点都会在这一时刻将拥塞窗口的值减半,并释放出原来使用的带宽,然后再次进行快速恢复,即每收到一个确认报文,其自身的拥塞窗口的值就会增加1,这样传输节点会持续重复这个过程。以两个启动时间一前一后的传输节点为例,在这个过程中,启动较早的前节点,开始将拥有较大拥塞窗口,并占有较大的网络带宽,而启动较晚的后节点,开始将拥有较小拥塞窗口,并占有较少的网络带宽,当出现拥塞时,前后节点都会将自己的拥塞窗口降为原来的1/2,从而使得拥有较大拥塞窗口的前节点将会释放出较多带宽,而拥有较小拥塞窗口的后节点将会释放出较少带宽。这样反复进行下去,经过一段够长的时间后,前后传输节点最后会慢慢地趋于拥有相同的拥塞窗口,从而拥有相同的网络带宽。
因此,当网络中有许多传输节点同时在网络上竞争带宽时,这些传输节点的拥塞窗口在经过一段时间后都会逐渐趋于一致,从而共享了网络带宽。这种经过长时间,最后会趋于一致的现象可称之为“拥塞窗口同步现象”。虽然这种情况具有许多理想化的假设,例如没有对特殊节点进行特殊要求,传输的信息有具有相同的QoS的要求[3]。但他也表现出:在理想情况下,TCP协议除了具有拥塞控制的机制外,也可让彼此竞争的传输节点公平的分享网络上的带宽
2拥塞窗口同步现象的仿真
对于拥塞窗口同步现象的仿真,必须采用专用的仿真软件进行仿真,从而才能得出准确的数据,达到仿真的效果,为此选用著名的网络仿真软件NS2[4]。
NS2是英文全称为network simulator 2,该仿真器采用离散事件系统仿真,是一种面向对象的网络仿真器。它由UC Berkeley大学研究开发而成,其开发语言使用Otcl和C++语言。NS2网络仿真器的构成主要包括网络组件对象库、网络仿真事件调度库和网络构建模型库等。具有良好的扩展性和开放性, 能够工作在常用操作系统Windows和Linux系统平台上,并且能够对网络拓扑结构、网络传输性能进行深入的研究,与其它的网络仿真工具相比,NS对应用数据流的仿真能力尤为突出,从而能够满足了广大研究人员对网络仿真的各种需求。
2.1仿真环境的设置
要想通过仿真,观察到拥塞窗口同步现象,就必须让仿真环境频繁出现网络拥塞现象,因此设计出如图1的仿真环境,源端有若干个节点,目的端有若干个节点,源节点使用TCP协议传输大量的数据给目的节点,中间需要通过两个路由器节点R1和R2。这些节点之间的互连物理链路,都采用droptail队列管理管理机制,传递延迟都为1ms,为了能够产生拥塞,设置路由器节点之间的链路带宽为窄带为1Mbps,其他链路带宽为10Mbps,并设置初始的拥塞窗口为1,慢启动阈值初始值设为20,仿真时间为35ms。由于拥塞窗口直接反映TCP的传输速度,所有通过观察拥塞窗口来研究TCP协议的同步现象。
图1 仿真模拟场景
2.2仿真结果分析
为了更好反应仿真结果,特意进行两个仿真实验的设计,在第一个仿真实验中源端只采用两个发送节点S1和S2,且分别向目的节点也D1和D2发送数据,但是源节点的启动时间不一样,源节点S1首先在0ms启动,而源节点S2在2ms时启动,其仿真的结果如图2所示:
图2 两个节点的拥塞窗口
在第二个仿真实验中源端采用四个发送节点,分别为S1、S2、S3和S4,目的节点也有四个,分别为D1、D2、D3和D4,两两之间进行数据的传递,4个源节点启动时间分别为0ms、2ms、5ms和15ms,其仿真的结果如下图2所示:
图3 四个节点的拥塞窗口
通过仿真实验结果可以发现,在仿真实验一中,源节点S1在源节点S2没有启动时,已启动,并获得较大的拥塞窗口,其值接近30,独自享用整个网络带宽。但随着源节点S2的启动,其源节点S1的拥塞窗口逐渐降低,而节点S2的拥塞窗口在逐渐升高,最后两者达到一个平衡,其拥塞窗口都达到20左右,从而共享整个网络带宽。同样在仿真实验二中可以观察到,当只有一个源节点启动时,它的拥塞窗口最大,其占用的带宽也最大,但随着源节点启动数目的增加,各节点的拥塞窗口也趋于相同,占用的带宽也趋于一致,当四个节点都启动后,各自的拥塞窗口最后都趋于一致,接近10。通过这两个仿真实验可以明显的观察到不论节点什么时候启动,拥塞窗口同步现象最终会发生。
3结语
在没有特殊情况或者相同QoS的情况下,拥塞窗口同步现象会伴随着整个网络。也就是说,虽然由于网络各个节点启动时间不一样,会造成在初始时间时,传输节点的拥塞窗口大小会不相同,从而会造成网络节点之间不能平等的分享网络带宽,但是随着时间推移,拥塞窗口大小会趋于相同,从而使网络中所有传输节点会得到公平而平等网络带宽。
参考文献:
[1]周中伟.TCP拥塞控制研究[J].湖南医科大学学报(社会科学版),2010,12(5):332-333.
[2]孙小俊.高速网络中TCP拥塞控制研究[D].北京:北京邮电大学,2013.
[3]谢希仁.计算机网络[M].北京:电子工业出版社,2013.
[4]王辉. NS2网络模拟器的原理和应用[M]. 西安:西北工业大学出版社,2008.
责任编辑:程艳艳
Research and Simulation on Synchronization of Congestion Window in TCP Protocol
ZHOU Jie
(Software College, Anhui Vocational College of Electronics and Information Technology, Bengbu 233030, China)
Abstract:TCP protocol and congestion window mechanism are used to avoid congestion in computer network,and each transport node may start at different time. However,the synchronization of congestion window will eventually occurs, which allows each node to use network bandwidth equitably. And the simulation results of the simulation software NS2 also reflect this phenomenon.
Keywords:congestion window; synchronization; simulation
中图分类号:TP393
文献标志码:A
文章编号:1009-3907(2016)02-0008-03
作者简介:周杰(1979-),男,汉族,安徽无为人,硕士,安徽电子信息职业技术学院讲师,主要从事计算机网络及性能优化的方向研究
收稿日期:2015-08-31