《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于帶寬估計的TCPW改進(jìn)算法
基于帶寬估計的TCPW改進(jìn)算法
來源:電子技術(shù)應(yīng)用2013年第10期
金林珠1, 庫流亨2
1. 武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢430081; 2. 華北計算機系統(tǒng)工程研究所,,北京100083
摘要: TCP Westwood(TCPW)協(xié)議在誤碼率較高、帶寬不穩(wěn)定的無線網(wǎng)絡(luò)環(huán)境下,,已經(jīng)表現(xiàn)出比傳統(tǒng)TCP更為優(yōu)越的性能,,但它不能區(qū)分丟包的原因,在帶寬利用率及性能上仍顯不足,。針對此問題,,提出了TCPW改進(jìn)算法TCPW-J,基于帶寬估計值的變化情況劃分網(wǎng)絡(luò)擁塞等級,,以區(qū)分擁塞丟包和無線丟包,。仿真結(jié)果表明,TCPW-J算法提高了網(wǎng)絡(luò)帶寬利用率,,并保持了較好的公平性和友好性,。
中圖分類號: TN915.04
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)10-0102-03
Enhanced TCPW scheme based on bandwidth estimation
Jin Linzhu1, Ku Liuheng2
1. College of Information Science and Engineering, Wuhan University of Science and Technology, Wuhan 430081, China; 2. National Computer System Engineering Research Institute of China, Beijing 100083, China
Abstract: TCP Westwood (TCPW) has shown more superior performance than traditional TCP protocol in the error rate is high, unstable bandwidth wireless network environment. But it can not distinguish the reason of packet loss. Its bandwidth utilization, and performance is still insufficient. For this problem, the proposed the TCPW improved algorithm TCPW-J divided the network congestion level based on bandwidth estimation, to distinguish between congestion losses and wireless packet loss. Simulation results show the TCPW-J algorithm improves network bandwidth utilization, and maintains good fairness and friendliness.
Key words : transmission control protocol; TCP westwood; congestion control; wireless network

    TCP Westwood(TCPW)協(xié)議[1]是專門針對無線網(wǎng)絡(luò)應(yīng)用環(huán)境而提出的傳輸控制協(xié)議,它是在TCP Reno協(xié)議的基礎(chǔ)上修改而來的,。TCPW通過估算網(wǎng)絡(luò)的可用帶寬,,對擁塞窗口(cwnd)和慢啟動閾值(ssthresh)進(jìn)行優(yōu)化控制,在一定程度上改善了傳統(tǒng)TCP協(xié)議在發(fā)生數(shù)據(jù)丟包時所導(dǎo)致的網(wǎng)絡(luò)帶寬利用率下降的問題[2],。然而,,TCPW算法無法區(qū)分網(wǎng)絡(luò)丟包的原因,在高誤碼率,、頻繁移動的無線網(wǎng)絡(luò)環(huán)境下,,往往會由于較多的無線丟包而頻繁調(diào)用網(wǎng)絡(luò)擁塞控制算法,降低了網(wǎng)絡(luò)帶寬利用率[3],。

    本文提出一種基于TCPW協(xié)議的改進(jìn)擁塞控制算法TCPW-J,該算法根據(jù)當(dāng)前網(wǎng)絡(luò)的帶寬估計值的變化情況來推斷網(wǎng)絡(luò)丟包發(fā)生的最可能原因,,使網(wǎng)絡(luò)控制協(xié)議能夠?qū)砣闆r作出更加準(zhǔn)確的判斷,減少在不必要情況下調(diào)用網(wǎng)絡(luò)擁塞控制算法的次數(shù)。經(jīng)過分析和仿真實驗的驗證,,表明TCPW-J能夠較為有效地判斷丟包的原因,,提高了TCPW算法對網(wǎng)絡(luò)帶寬的利用率。
1 TCPW-J算法
1.1 設(shè)計思想

    網(wǎng)絡(luò)擁塞是一種持續(xù)過載的網(wǎng)絡(luò)狀態(tài),,網(wǎng)絡(luò)擁塞會導(dǎo)致數(shù)據(jù)包丟失,、時延增加、吞吐量下降等現(xiàn)象[4],?;谶@些因素,在網(wǎng)絡(luò)擁塞狀態(tài)下得到的帶寬估計值(BWE)比正常情況下的要小很多,。另一方面,,由于無線網(wǎng)絡(luò)誤碼率較高等原因而導(dǎo)致的數(shù)據(jù)丟包具有偶然性,并不影響往返時延(RTT),,因此發(fā)生無線丟包時,,所計算出來的BWE值相對于正常情況下并不會產(chǎn)生較大變化。
   基于以上事實和分析,,提出的TCPW-J算法對BWE進(jìn)行持續(xù)觀測,,得到TCP連接在一段時間內(nèi)的BWE變化范圍,并劃分網(wǎng)絡(luò)擁塞情況等級,。根據(jù)計算的網(wǎng)絡(luò)擁塞等級,,推斷當(dāng)前網(wǎng)絡(luò)的擁塞情況,并做出恰當(dāng)?shù)恼{(diào)整,。
1.2 算法實現(xiàn)
    TCPW-J算法持續(xù)計算BWE并記錄其最大和最小值,,得到BWE的變化范圍,即:
    
     結(jié)合式(1),、式(2),,可以看出A∈[0,1]表示了當(dāng)前帶寬估計值與歷史變化情況相比的大小程度,間接地反映了網(wǎng)絡(luò)的擁塞情況,。式(2)中的A越小,,表明當(dāng)前網(wǎng)絡(luò)帶寬已經(jīng)處于較好的情況,網(wǎng)絡(luò)擁塞的可能性較小或趨于穩(wěn)定,;反之,,A越大則表明網(wǎng)絡(luò)擁塞的可能性越大或程度越高。這里將A劃分成三個等級,,其等級L越高則表明擁塞可能性越大,。
    L=1  A∈[0,0.25]2  A∈(0.25,0.5]3  A∈(0.5,1]
    根據(jù)上述劃分的擁塞等級范圍,對TCPW的擁塞控制算法進(jìn)行改進(jìn)。
    新的擁塞控制算法用偽代碼描述如下:
    (1) 收到新的ACK之后
         if (L==1||L==2)    
                     /*網(wǎng)絡(luò)擁塞可能性較小或輕度擁塞*/
        if(cwnd>ssthresh)    /*擁塞避免*/
                 cwnd=cwnd+1/cwnd;
            else        /*慢啟動*/
                 cwnd=cwnd+1;
             endif
        else            /*網(wǎng)絡(luò)擁塞可能性較大*/
        ssthresh=(BWE*RTTmin)/seg_size;
             if(cwnd>ssthresh)        
                 cwnd=cwnd+(1/cwnd)/2;
                              /*減慢cwnd增長速度*/
             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            /*保持慢啟動*/
                 cwnd=cwnd+1;
             endif
    else if(L==2)    /*網(wǎng)絡(luò)擁塞呈現(xiàn)擁塞趨勢*/
             快速重傳;
             快速恢復(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仿真平臺對New Reno,、TCPW以及TCP-J算法在混合鏈路上進(jìn)行仿真,如圖1所示,。

    在圖1中模擬了一個作為數(shù)據(jù)源的服務(wù)器子網(wǎng)(Server Subnet),、一個數(shù)據(jù)訪問子網(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,兩個子網(wǎng)之間是瓶頸鏈路,,最大傳輸速率為10 Mb/s,,模擬時間為12 min。
2.1不同誤碼率下的吞吐量分析
     表1中給出了三種算法分別在不同誤碼率環(huán)境下的吞吐量統(tǒng)計結(jié)果,??梢院芮逦乜吹剑谡`碼率較高的環(huán)境下,,TCPW-J的吞吐量明顯高于New Reno和TCPW算法,。而且隨著誤碼率的提高,TCPW-J相對于TCPW的吞吐量的提升更加明顯,,其原因在于TCPW-J算法能夠有效地區(qū)分擁塞丟包和無線丟包,,減少了不必要的擁塞窗口調(diào)整次數(shù),提高了帶寬的利用率,。

 

 

    在測試友好性的過程中,建立兩個不同的TCP流,,分別運行New Reno和TCPW-J協(xié)議。表2給出了這兩種算法在不同誤碼率環(huán)境下的平均吞吐量對比結(jié)果,。從結(jié)果中可以看出,,TCPW-J對New Reno是友好的,。

    本文在TCPW的基礎(chǔ)之上提出了改進(jìn)算法TCPW-J,,根據(jù)帶寬估計值BWE的變化情況劃分擁塞等級,以推測最可能導(dǎo)致丟包的原因,,區(qū)分無線丟包和擁塞丟包,。仿真實驗結(jié)果表明,TCPW-J算法在誤碼率較高的無線網(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].  范建華,等譯. 北京:機械工業(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。