文獻標識碼: A
文章編號: 0258-7998(2013)10-0102-03
TCP Westwood(TCPW)協(xié)議[1]是專門針對無線網(wǎng)絡應用環(huán)境而提出的傳輸控制協(xié)議,它是在TCP Reno協(xié)議的基礎上修改而來的。TCPW通過估算網(wǎng)絡的可用帶寬,對擁塞窗口(cwnd)和慢啟動閾值(ssthresh)進行優(yōu)化控制,在一定程度上改善了傳統(tǒng)TCP協(xié)議在發(fā)生數(shù)據(jù)丟包時所導致的網(wǎng)絡帶寬利用率下降的問題[2]。然而,TCPW算法無法區(qū)分網(wǎng)絡丟包的原因,在高誤碼率、頻繁移動的無線網(wǎng)絡環(huán)境下,往往會由于較多的無線丟包而頻繁調用網(wǎng)絡擁塞控制算法,降低了網(wǎng)絡帶寬利用率[3]。
本文提出一種基于TCPW協(xié)議的改進擁塞控制算法TCPW-J,該算法根據(jù)當前網(wǎng)絡的帶寬估計值的變化情況來推斷網(wǎng)絡丟包發(fā)生的最可能原因,使網(wǎng)絡控制協(xié)議能夠對擁塞情況作出更加準確的判斷,減少在不必要情況下調用網(wǎng)絡擁塞控制算法的次數(shù)。經(jīng)過分析和仿真實驗的驗證,表明TCPW-J能夠較為有效地判斷丟包的原因,提高了TCPW算法對網(wǎng)絡帶寬的利用率。
1 TCPW-J算法
1.1 設計思想
網(wǎng)絡擁塞是一種持續(xù)過載的網(wǎng)絡狀態(tài),網(wǎng)絡擁塞會導致數(shù)據(jù)包丟失、時延增加、吞吐量下降等現(xiàn)象[4]?;谶@些因素,在網(wǎng)絡擁塞狀態(tài)下得到的帶寬估計值(BWE)比正常情況下的要小很多。另一方面,由于無線網(wǎng)絡誤碼率較高等原因而導致的數(shù)據(jù)丟包具有偶然性,并不影響往返時延(RTT),因此發(fā)生無線丟包時,所計算出來的BWE值相對于正常情況下并不會產(chǎn)生較大變化。
基于以上事實和分析,提出的TCPW-J算法對BWE進行持續(xù)觀測,得到TCP連接在一段時間內的BWE變化范圍,并劃分網(wǎng)絡擁塞情況等級。根據(jù)計算的網(wǎng)絡擁塞等級,推斷當前網(wǎng)絡的擁塞情況,并做出恰當?shù)恼{整。
1.2 算法實現(xiàn)
TCPW-J算法持續(xù)計算BWE并記錄其最大和最小值,得到BWE的變化范圍,即:
結合式(1)、式(2),可以看出A∈[0,1]表示了當前帶寬估計值與歷史變化情況相比的大小程度,間接地反映了網(wǎng)絡的擁塞情況。式(2)中的A越小,表明當前網(wǎng)絡帶寬已經(jīng)處于較好的情況,網(wǎng)絡擁塞的可能性較小或趨于穩(wěn)定;反之,A越大則表明網(wǎng)絡擁塞的可能性越大或程度越高。這里將A劃分成三個等級,其等級L越高則表明擁塞可能性越大。
L=1 A∈[0,0.25]2 A∈(0.25,0.5]3 A∈(0.5,1]
根據(jù)上述劃分的擁塞等級范圍,對TCPW的擁塞控制算法進行改進。
新的擁塞控制算法用偽代碼描述如下:
(1) 收到新的ACK之后
if (L==1||L==2)
/*網(wǎng)絡擁塞可能性較小或輕度擁塞*/
if(cwnd>ssthresh) /*擁塞避免*/
cwnd=cwnd+1/cwnd;
else /*慢啟動*/
cwnd=cwnd+1;
endif
else /*網(wǎng)絡擁塞可能性較大*/
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) /*網(wǎng)絡擁塞可能性較小*/
快速重傳;
if(cwnd>ssthresh) /*擁塞避免*/
cwnd=cwnd+1/cwnd;
else /*保持慢啟動*/
cwnd=cwnd+1;
endif
else if(L==2) /*網(wǎng)絡擁塞呈現(xiàn)擁塞趨勢*/
快速重傳;
快速恢復;
else if(L==3) /*網(wǎng)絡擁塞可能性較大*/
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中模擬了一個作為數(shù)據(jù)源的服務器子網(wǎng)(Server Subnet)、一個數(shù)據(jù)訪問子網(wǎng)(Client Subnet)以及IP云(IP Cloud)作為兩者之間傳輸數(shù)據(jù)的混合鏈路。配置FTP服務用于模擬連續(xù)的TCP數(shù)據(jù)傳輸,F(xiàn)TP文件大小為50 MB,數(shù)據(jù)包延遲為0.1 s,兩個子網(wǎng)之間是瓶頸鏈路,最大傳輸速率為10 Mb/s,模擬時間為12 min。
2.1不同誤碼率下的吞吐量分析
表1中給出了三種算法分別在不同誤碼率環(huán)境下的吞吐量統(tǒng)計結果??梢院芮逦乜吹剑谡`碼率較高的環(huán)境下,TCPW-J的吞吐量明顯高于New Reno和TCPW算法。而且隨著誤碼率的提高,TCPW-J相對于TCPW的吞吐量的提升更加明顯,其原因在于TCPW-J算法能夠有效地區(qū)分擁塞丟包和無線丟包,減少了不必要的擁塞窗口調整次數(shù),提高了帶寬的利用率。
在測試友好性的過程中,建立兩個不同的TCP流,分別運行New Reno和TCPW-J協(xié)議。表2給出了這兩種算法在不同誤碼率環(huán)境下的平均吞吐量對比結果。從結果中可以看出,TCPW-J對New Reno是友好的。
本文在TCPW的基礎之上提出了改進算法TCPW-J,根據(jù)帶寬估計值BWE的變化情況劃分擁塞等級,以推測最可能導致丟包的原因,區(qū)分無線丟包和擁塞丟包。仿真實驗結果表明,TCPW-J算法在誤碼率較高的無線網(wǎng)絡環(huán)境下,不僅表現(xiàn)出了更高的網(wǎng)絡帶寬利用率吞吐量,而且保持了良好的公平性和友好性。
參考文獻
[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:協(xié)議[M]. 范建華,等譯. 北京:機械工業(yè)出版社,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.