文獻標識碼: A
文章編號: 0258-7998(2013)10-0102-03
TCP Westwood(TCPW)協議[1]是專門針對無線網絡應用環境而提出的傳輸控制協議,它是在TCP Reno協議的基礎上修改而來的。TCPW通過估算網絡的可用帶寬,對擁塞窗口(cwnd)和慢啟動閾值(ssthresh)進行優化控制,在一定程度上改善了傳統TCP協議在發生數據丟包時所導致的網絡帶寬利用率下降的問題[2]。然而,TCPW算法無法區分網絡丟包的原因,在高誤碼率、頻繁移動的無線網絡環境下,往往會由于較多的無線丟包而頻繁調用網絡擁塞控制算法,降低了網絡帶寬利用率[3]。
本文提出一種基于TCPW協議的改進擁塞控制算法TCPW-J,該算法根據當前網絡的帶寬估計值的變化情況來推斷網絡丟包發生的最可能原因,使網絡控制協議能夠對擁塞情況作出更加準確的判斷,減少在不必要情況下調用網絡擁塞控制算法的次數。經過分析和仿真實驗的驗證,表明TCPW-J能夠較為有效地判斷丟包的原因,提高了TCPW算法對網絡帶寬的利用率。
1 TCPW-J算法
1.1 設計思想
網絡擁塞是一種持續過載的網絡狀態,網絡擁塞會導致數據包丟失、時延增加、吞吐量下降等現象[4]。基于這些因素,在網絡擁塞狀態下得到的帶寬估計值(BWE)比正常情況下的要小很多。另一方面,由于無線網絡誤碼率較高等原因而導致的數據丟包具有偶然性,并不影響往返時延(RTT),因此發生無線丟包時,所計算出來的BWE值相對于正常情況下并不會產生較大變化。
基于以上事實和分析,提出的TCPW-J算法對BWE進行持續觀測,得到TCP連接在一段時間內的BWE變化范圍,并劃分網絡擁塞情況等級。根據計算的網絡擁塞等級,推斷當前網絡的擁塞情況,并做出恰當的調整。
1.2 算法實現
TCPW-J算法持續計算BWE并記錄其最大和最小值,得到BWE的變化范圍,即:
結合式(1)、式(2),可以看出A∈[0,1]表示了當前帶寬估計值與歷史變化情況相比的大小程度,間接地反映了網絡的擁塞情況。式(2)中的A越小,表明當前網絡帶寬已經處于較好的情況,網絡擁塞的可能性較小或趨于穩定;反之,A越大則表明網絡擁塞的可能性越大或程度越高。這里將A劃分成三個等級,其等級L越高則表明擁塞可能性越大。
L=1 A∈[0,0.25]2 A∈(0.25,0.5]3 A∈(0.5,1]
根據上述劃分的擁塞等級范圍,對TCPW的擁塞控制算法進行改進。
新的擁塞控制算法用偽代碼描述如下:
(1) 收到新的ACK之后
if (L==1||L==2)
/*網絡擁塞可能性較小或輕度擁塞*/
if(cwnd>ssthresh) /*擁塞避免*/
cwnd=cwnd+1/cwnd;
else /*慢啟動*/
cwnd=cwnd+1;
endif
else /*網絡擁塞可能性較大*/
ssthresh=(BWE*RTTmin)/seg_size;
if(cwnd>ssthresh)
cwnd=cwnd+(1/cwnd)/2;
/*減慢cwnd增長速度*/
else
cwnd=cwnd+1;
endif
endif
(2) 收到重復的ACK之后
if(3 DUPACKs are received)
if (L==1) /*網絡擁塞可能性較小*/
快速重傳;
if(cwnd>ssthresh) /*擁塞避免*/
cwnd=cwnd+1/cwnd;
else /*保持慢啟動*/
cwnd=cwnd+1;
endif
else if(L==2) /*網絡擁塞呈現擁塞趨勢*/
快速重傳;
快速恢復;
else if(L==3) /*網絡擁塞可能性較大*/
ssthresh=(BWE*RTTmin)/seg_size;
if(cwnd>ssthresh)
cwnd=ssthresh;
endif
endif
endif
2 仿真結果與分析
采用OPNET Modeler 14.5仿真平臺對New Reno、TCPW以及TCP-J算法在混合鏈路上進行仿真,如圖1所示。
在圖1中模擬了一個作為數據源的服務器子網(Server Subnet)、一個數據訪問子網(Client Subnet)以及IP云(IP Cloud)作為兩者之間傳輸數據的混合鏈路。配置FTP服務用于模擬連續的TCP數據傳輸,FTP文件大小為50 MB,數據包延遲為0.1 s,兩個子網之間是瓶頸鏈路,最大傳輸速率為10 Mb/s,模擬時間為12 min。
2.1不同誤碼率下的吞吐量分析
表1中給出了三種算法分別在不同誤碼率環境下的吞吐量統計結果。可以很清晰地看到,在誤碼率較高的環境下,TCPW-J的吞吐量明顯高于New Reno和TCPW算法。而且隨著誤碼率的提高,TCPW-J相對于TCPW的吞吐量的提升更加明顯,其原因在于TCPW-J算法能夠有效地區分擁塞丟包和無線丟包,減少了不必要的擁塞窗口調整次數,提高了帶寬的利用率。
在測試友好性的過程中,建立兩個不同的TCP流,分別運行New Reno和TCPW-J協議。表2給出了這兩種算法在不同誤碼率環境下的平均吞吐量對比結果。從結果中可以看出,TCPW-J對New Reno是友好的。
本文在TCPW的基礎之上提出了改進算法TCPW-J,根據帶寬估計值BWE的變化情況劃分擁塞等級,以推測最可能導致丟包的原因,區分無線丟包和擁塞丟包。仿真實驗結果表明,TCPW-J算法在誤碼率較高的無線網絡環境下,不僅表現出了更高的網絡帶寬利用率吞吐量,而且保持了良好的公平性和友好性。
參考文獻
[1] CLAUDIO C, MARIO G, SAVERIO M, et al. TCP westwood: end-to-end congestion control for wired/wireless networks[J]. Wireless Networks Journal, 2002(8):467-469.
[2] LOW SH, PAGANINI F, DOYLE J C. Internet congestion control [J]. IEEE Control Systems Magazine, 2002,22(1):28-43.
[3] CHEN J, PAGANINI F, WANG R. Fluid-flow analysis of TCP westwood with RED[A]. Proceedings of the IEEE GLOBECOM 2003, 2003:4064-4068.
[4] (美)STEVENS W R著.TCP/IP詳解,卷1:協議[M]. 范建華,等譯. 北京:機械工業出版社,2000:226-243.
[5] JAIN R, CHIU D, HAWE W. A quantitative measure of fairness and discrimination for resource allocation in shared systems[Z]. DEC Research Report TR-301.1984.