周 杰
(安徽電子信息職業技術學院 軟件學院,安徽 蚌埠 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