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