周 杰
(安徽電子信息職業(yè)技術(shù)學(xué)院 軟件學(xué)院,安徽 蚌埠 233030)
?
TCP協(xié)議中擁塞窗口同步現(xiàn)象的研究與仿真
周杰
(安徽電子信息職業(yè)技術(shù)學(xué)院 軟件學(xué)院,安徽 蚌埠 233030)
摘要:采用TCP協(xié)議并使用擁塞窗口機(jī)制避免網(wǎng)絡(luò)擁塞的計(jì)算機(jī)網(wǎng)絡(luò),網(wǎng)絡(luò)中的各個(gè)傳輸節(jié)點(diǎn)可能它們啟動(dòng)時(shí)間不同。但最終會(huì)出現(xiàn)擁塞窗口同步現(xiàn)象,使得各個(gè)節(jié)點(diǎn)能夠平等的使用網(wǎng)絡(luò)帶寬。并且仿真軟件NS2的模擬結(jié)果也反應(yīng)了這一現(xiàn)象。
關(guān)鍵詞:擁塞窗口;同步現(xiàn)象;仿真
0引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用和普及,當(dāng)今計(jì)算機(jī)網(wǎng)絡(luò)體系中90%以上信息主要采用TCP協(xié)議進(jìn)行傳輸,并且傳輸?shù)臄?shù)據(jù)量也越來越龐大,因而必然會(huì)出現(xiàn)網(wǎng)絡(luò)擁塞的情況。于是,采用TCP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)必然要采用相應(yīng)的控制算法去避免擁塞以及解決擁塞。TCP協(xié)議主要的控制算法有TCP-Tahoe、TCP-Reno、TCP-Vegas和TCP-SACK[1]等等,這些算法很好的解決了網(wǎng)絡(luò)擁塞的問題,并且這些算法都普遍讓傳輸節(jié)點(diǎn)使用擁塞窗口(cwnd)來控制信息量的傳輸。這也就確定了節(jié)點(diǎn)傳輸?shù)乃俣?,及傳輸帶寬。這種采用擁塞窗口控制數(shù)據(jù)量的方法,普遍讓人認(rèn)為,因?yàn)榫W(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)啟動(dòng)時(shí)間可能會(huì)不同,使得每個(gè)節(jié)點(diǎn)采用的擁塞窗口也不一樣,也就使得每個(gè)節(jié)點(diǎn)分得的網(wǎng)絡(luò)帶寬不一樣,但實(shí)際上并非這樣。
1擁塞窗口同步現(xiàn)象
根據(jù)TCP協(xié)議的網(wǎng)絡(luò)擁塞控制算法[2],傳輸節(jié)點(diǎn)每收到一個(gè)確認(rèn)報(bào)文,及經(jīng)過一個(gè)回路響應(yīng)時(shí)間(RTT),其自身的擁塞窗口的值就會(huì)增加1,使得每個(gè)節(jié)點(diǎn)的擁塞窗口在不斷增加,擁有的帶寬也在不斷增加,直到有報(bào)文在網(wǎng)絡(luò)中出現(xiàn)遺失。當(dāng)傳輸節(jié)點(diǎn)檢測(cè)到網(wǎng)絡(luò)上出現(xiàn)遺失報(bào)文時(shí),節(jié)點(diǎn)就會(huì)將網(wǎng)絡(luò)擁塞窗口降為原來的1/2。這樣每個(gè)傳輸節(jié)點(diǎn)都會(huì)在這一時(shí)刻將擁塞窗口的值減半,并釋放出原來使用的帶寬,然后再次進(jìn)行快速恢復(fù),即每收到一個(gè)確認(rèn)報(bào)文,其自身的擁塞窗口的值就會(huì)增加1,這樣傳輸節(jié)點(diǎn)會(huì)持續(xù)重復(fù)這個(gè)過程。以兩個(gè)啟動(dòng)時(shí)間一前一后的傳輸節(jié)點(diǎn)為例,在這個(gè)過程中,啟動(dòng)較早的前節(jié)點(diǎn),開始將擁有較大擁塞窗口,并占有較大的網(wǎng)絡(luò)帶寬,而啟動(dòng)較晚的后節(jié)點(diǎn),開始將擁有較小擁塞窗口,并占有較少的網(wǎng)絡(luò)帶寬,當(dāng)出現(xiàn)擁塞時(shí),前后節(jié)點(diǎn)都會(huì)將自己的擁塞窗口降為原來的1/2,從而使得擁有較大擁塞窗口的前節(jié)點(diǎn)將會(huì)釋放出較多帶寬,而擁有較小擁塞窗口的后節(jié)點(diǎn)將會(huì)釋放出較少帶寬。這樣反復(fù)進(jìn)行下去,經(jīng)過一段夠長的時(shí)間后,前后傳輸節(jié)點(diǎn)最后會(huì)慢慢地趨于擁有相同的擁塞窗口,從而擁有相同的網(wǎng)絡(luò)帶寬。
因此,當(dāng)網(wǎng)絡(luò)中有許多傳輸節(jié)點(diǎn)同時(shí)在網(wǎng)絡(luò)上競(jìng)爭帶寬時(shí),這些傳輸節(jié)點(diǎn)的擁塞窗口在經(jīng)過一段時(shí)間后都會(huì)逐漸趨于一致,從而共享了網(wǎng)絡(luò)帶寬。這種經(jīng)過長時(shí)間,最后會(huì)趨于一致的現(xiàn)象可稱之為“擁塞窗口同步現(xiàn)象”。雖然這種情況具有許多理想化的假設(shè),例如沒有對(duì)特殊節(jié)點(diǎn)進(jìn)行特殊要求,傳輸?shù)男畔⒂芯哂邢嗤腝oS的要求[3]。但他也表現(xiàn)出:在理想情況下,TCP協(xié)議除了具有擁塞控制的機(jī)制外,也可讓彼此競(jìng)爭的傳輸節(jié)點(diǎn)公平的分享網(wǎng)絡(luò)上的帶寬
2擁塞窗口同步現(xiàn)象的仿真
對(duì)于擁塞窗口同步現(xiàn)象的仿真,必須采用專用的仿真軟件進(jìn)行仿真,從而才能得出準(zhǔn)確的數(shù)據(jù),達(dá)到仿真的效果,為此選用著名的網(wǎng)絡(luò)仿真軟件NS2[4]。
NS2是英文全稱為network simulator 2,該仿真器采用離散事件系統(tǒng)仿真,是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器。它由UC Berkeley大學(xué)研究開發(fā)而成,其開發(fā)語言使用Otcl和C++語言。NS2網(wǎng)絡(luò)仿真器的構(gòu)成主要包括網(wǎng)絡(luò)組件對(duì)象庫、網(wǎng)絡(luò)仿真事件調(diào)度庫和網(wǎng)絡(luò)構(gòu)建模型庫等。具有良好的擴(kuò)展性和開放性, 能夠工作在常用操作系統(tǒng)Windows和Linux系統(tǒng)平臺(tái)上,并且能夠?qū)W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)傳輸性能進(jìn)行深入的研究,與其它的網(wǎng)絡(luò)仿真工具相比,NS對(duì)應(yīng)用數(shù)據(jù)流的仿真能力尤為突出,從而能夠滿足了廣大研究人員對(duì)網(wǎng)絡(luò)仿真的各種需求。
2.1仿真環(huán)境的設(shè)置
要想通過仿真,觀察到擁塞窗口同步現(xiàn)象,就必須讓仿真環(huán)境頻繁出現(xiàn)網(wǎng)絡(luò)擁塞現(xiàn)象,因此設(shè)計(jì)出如圖1的仿真環(huán)境,源端有若干個(gè)節(jié)點(diǎn),目的端有若干個(gè)節(jié)點(diǎn),源節(jié)點(diǎn)使用TCP協(xié)議傳輸大量的數(shù)據(jù)給目的節(jié)點(diǎn),中間需要通過兩個(gè)路由器節(jié)點(diǎn)R1和R2。這些節(jié)點(diǎn)之間的互連物理鏈路,都采用droptail隊(duì)列管理管理機(jī)制,傳遞延遲都為1ms,為了能夠產(chǎn)生擁塞,設(shè)置路由器節(jié)點(diǎn)之間的鏈路帶寬為窄帶為1Mbps,其他鏈路帶寬為10Mbps,并設(shè)置初始的擁塞窗口為1,慢啟動(dòng)閾值初始值設(shè)為20,仿真時(shí)間為35ms。由于擁塞窗口直接反映TCP的傳輸速度,所有通過觀察擁塞窗口來研究TCP協(xié)議的同步現(xiàn)象。
圖1 仿真模擬場(chǎng)景
2.2仿真結(jié)果分析
為了更好反應(yīng)仿真結(jié)果,特意進(jìn)行兩個(gè)仿真實(shí)驗(yàn)的設(shè)計(jì),在第一個(gè)仿真實(shí)驗(yàn)中源端只采用兩個(gè)發(fā)送節(jié)點(diǎn)S1和S2,且分別向目的節(jié)點(diǎn)也D1和D2發(fā)送數(shù)據(jù),但是源節(jié)點(diǎn)的啟動(dòng)時(shí)間不一樣,源節(jié)點(diǎn)S1首先在0ms啟動(dòng),而源節(jié)點(diǎn)S2在2ms時(shí)啟動(dòng),其仿真的結(jié)果如圖2所示:
圖2 兩個(gè)節(jié)點(diǎn)的擁塞窗口
在第二個(gè)仿真實(shí)驗(yàn)中源端采用四個(gè)發(fā)送節(jié)點(diǎn),分別為S1、S2、S3和S4,目的節(jié)點(diǎn)也有四個(gè),分別為D1、D2、D3和D4,兩兩之間進(jìn)行數(shù)據(jù)的傳遞,4個(gè)源節(jié)點(diǎn)啟動(dòng)時(shí)間分別為0ms、2ms、5ms和15ms,其仿真的結(jié)果如下圖2所示:
圖3 四個(gè)節(jié)點(diǎn)的擁塞窗口
通過仿真實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),在仿真實(shí)驗(yàn)一中,源節(jié)點(diǎn)S1在源節(jié)點(diǎn)S2沒有啟動(dòng)時(shí),已啟動(dòng),并獲得較大的擁塞窗口,其值接近30,獨(dú)自享用整個(gè)網(wǎng)絡(luò)帶寬。但隨著源節(jié)點(diǎn)S2的啟動(dòng),其源節(jié)點(diǎn)S1的擁塞窗口逐漸降低,而節(jié)點(diǎn)S2的擁塞窗口在逐漸升高,最后兩者達(dá)到一個(gè)平衡,其擁塞窗口都達(dá)到20左右,從而共享整個(gè)網(wǎng)絡(luò)帶寬。同樣在仿真實(shí)驗(yàn)二中可以觀察到,當(dāng)只有一個(gè)源節(jié)點(diǎn)啟動(dòng)時(shí),它的擁塞窗口最大,其占用的帶寬也最大,但隨著源節(jié)點(diǎn)啟動(dòng)數(shù)目的增加,各節(jié)點(diǎn)的擁塞窗口也趨于相同,占用的帶寬也趨于一致,當(dāng)四個(gè)節(jié)點(diǎn)都啟動(dòng)后,各自的擁塞窗口最后都趨于一致,接近10。通過這兩個(gè)仿真實(shí)驗(yàn)可以明顯的觀察到不論節(jié)點(diǎn)什么時(shí)候啟動(dòng),擁塞窗口同步現(xiàn)象最終會(huì)發(fā)生。
3結(jié)語
在沒有特殊情況或者相同QoS的情況下,擁塞窗口同步現(xiàn)象會(huì)伴隨著整個(gè)網(wǎng)絡(luò)。也就是說,雖然由于網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)啟動(dòng)時(shí)間不一樣,會(huì)造成在初始時(shí)間時(shí),傳輸節(jié)點(diǎn)的擁塞窗口大小會(huì)不相同,從而會(huì)造成網(wǎng)絡(luò)節(jié)點(diǎn)之間不能平等的分享網(wǎng)絡(luò)帶寬,但是隨著時(shí)間推移,擁塞窗口大小會(huì)趨于相同,從而使網(wǎng)絡(luò)中所有傳輸節(jié)點(diǎn)會(huì)得到公平而平等網(wǎng)絡(luò)帶寬。
參考文獻(xiàn):
[1]周中偉.TCP擁塞控制研究[J].湖南醫(yī)科大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2010,12(5):332-333.
[2]孫小俊.高速網(wǎng)絡(luò)中TCP擁塞控制研究[D].北京:北京郵電大學(xué),2013.
[3]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2013.
[4]王輝. NS2網(wǎng)絡(luò)模擬器的原理和應(yīng)用[M]. 西安:西北工業(yè)大學(xué)出版社,2008.
責(zé)任編輯:程艷艷
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
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1009-3907(2016)02-0008-03
作者簡介:周杰(1979-),男,漢族,安徽無為人,碩士,安徽電子信息職業(yè)技術(shù)學(xué)院講師,主要從事計(jì)算機(jī)網(wǎng)絡(luò)及性能優(yōu)化的方向研究
收稿日期:2015-08-31