金林珠,庫流亨
(1.武漢科技大學 信息科學與工程學院,湖北 武漢 430081;2.華北計算機系統(tǒng)工程研究所,北京 100083)
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)境下,往往會由于較多的無線丟包而頻繁調(diào)用網(wǎng)絡擁塞控制算法,降低了網(wǎng)絡帶寬利用率[3]。
本文提出一種基于TCPW協(xié)議的改進擁塞控制算法TCPW-J,該算法根據(jù)當前網(wǎng)絡的帶寬估計值的變化情況來推斷網(wǎng)絡丟包發(fā)生的最可能原因,使網(wǎng)絡控制協(xié)議能夠?qū)砣闆r作出更加準確的判斷,減少在不必要情況下調(diào)用網(wǎng)絡擁塞控制算法的次數(shù)。經(jīng)過分析和仿真實驗的驗證,表明TCPW-J能夠較為有效地判斷丟包的原因,提高了TCPW算法對網(wǎng)絡帶寬的利用率。
網(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連接在一段時間內(nèi)的BWE變化范圍,并劃分網(wǎng)絡擁塞情況等級。根據(jù)計算的網(wǎng)絡擁塞等級,推斷當前網(wǎng)絡的擁塞情況,并做出恰當?shù)恼{(diào)整。
TCPW-J算法持續(xù)計算BWE并記錄其最大和最小值,得到BWE的變化范圍,即:
再根據(jù)最新的BWE估算值,得到當前網(wǎng)絡帶寬估計值與最大值之間的差值在變化范圍中所占的比率:
結(jié)合式(1)、式(2),可以看出 A∈[0,1]表示了當前帶寬估計值與歷史變化情況相比的大小程度,間接地反映了網(wǎng)絡的擁塞情況。式(2)中的A越小,表明當前網(wǎng)絡帶寬已經(jīng)處于較好的情況,網(wǎng)絡擁塞的可能性較小或趨于穩(wěn)定;反之,A越大則表明網(wǎng)絡擁塞的可能性越大或程度越高。這里將A劃分成三個等級,其等級L越高則表明擁塞可能性越大。
根據(jù)上述劃分的擁塞等級范圍,對TCPW的擁塞控制算法進行改進。
新的擁塞控制算法用偽代碼描述如下:
(1)收到新的ACK之后
(2)收到重復的ACK之后
采用 OPNET Modeler 14.5仿真平臺對 New Reno、TCPW以及TCP-J算法在混合鏈路上進行仿真,如圖1所示。
圖1 模擬網(wǎng)絡拓撲結(jié)構(gòu)
在圖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。
表1中給出了三種算法分別在不同誤碼率環(huán)境下的吞吐量統(tǒng)計結(jié)果。可以很清晰地看到,在誤碼率較高的環(huán)境下,TCPW-J的吞吐量明顯高于New Reno和TCPW算法。而且隨著誤碼率的提高,TCPW-J相對于TCPW的吞吐量的提升更加明顯,其原因在于TCPW-J算法能夠有效地區(qū)分擁塞丟包和無線丟包,減少了不必要的擁塞窗口調(diào)整次數(shù),提高了帶寬的利用率。
表1 不同誤碼率環(huán)境下的平均吞吐量對比 (kb/s)
圖2中給出了TCPW和TCPW-J算法在誤碼率為3%的環(huán)境下吞吐量的對比結(jié)果。容易看出,TCPW-J的吞吐量比TCPW提高了不少,傳輸效率更高。
在圖1的模擬網(wǎng)絡拓撲結(jié)構(gòu)中,同時建立5對TCP傳輸流,用于對比三種算法的公平性。公平性系數(shù)采用Jain公式[5]來計算,其定義為:
圖2 鏈路誤碼率3%時吞吐量對比結(jié)果
其中,xi表示第 i個連接的吞吐量,n為連接數(shù),F(x)越接近1則表明公平性越好。圖3中顯示了三種算法在相同誤碼率條件下的公平性系數(shù)對比,可以看出,TCPW-J的公平性與New Reno、TPCW算法相近,都具有良好的公平性。
圖3 不同鏈路延遲條件下的公平系數(shù)對比
在測試友好性的過程中,建立兩個不同的TCP流,分別運行New Reno和TCPW-J協(xié)議。表2給出了這兩種算法在不同誤碼率環(huán)境下的平均吞吐量對比結(jié)果。從結(jié)果中可以看出,TCPW-J對New Reno是友好的。
表2 不同誤碼率環(huán)境下的平均吞吐量比較 kb/s
本文在TCPW的基礎之上提出了改進算法TCPWJ,根據(jù)帶寬估計值BWE的變化情況劃分擁塞等級,以推測最可能導致丟包的原因,區(qū)分無線丟包和擁塞丟包。仿真實驗結(jié)果表明,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.