史士杰
中國礦業(yè)大學(xué)信息與電氣工程學(xué)院,江蘇徐州 221116
基于opnet的TCP Veno性能研究和仿真
史士杰
中國礦業(yè)大學(xué)信息與電氣工程學(xué)院,江蘇徐州 221116
由于傳輸介質(zhì)的不同,傳統(tǒng)擁塞控制算法在無線網(wǎng)絡(luò)中出現(xiàn)了性能退化,TCP Veno通過檢測鏈路中積壓數(shù)據(jù)包大小來判斷丟包的性質(zhì),進而對傳統(tǒng)擁塞控制算法進行改進。通過OPNET仿真,該算法下的吞吐量、網(wǎng)絡(luò)利用率、公平性、友好性均比Reno得到提高。
OPNET;TCP VENO;TCP Reno;擁塞控制
鑒于TCP/IP協(xié)議在有線網(wǎng)絡(luò)中的良好表現(xiàn),傳統(tǒng)擁塞控制協(xié)議在無線通信網(wǎng)絡(luò)以及混合網(wǎng)絡(luò)中得到了越來越廣泛的應(yīng)用。然而,由于傳輸介質(zhì)的差異,傳統(tǒng)TCP擁塞控制協(xié)議并不能在無線網(wǎng)絡(luò)中獲得較好的效果。因此,要想使TCP在無線網(wǎng)絡(luò)中具有良好的表現(xiàn),就必須對傳統(tǒng)的TCP傳輸協(xié)議進行改進。
傳統(tǒng)的擁塞控制機制有4個階段:慢啟動、擁塞避免、快速重傳和快速恢復(fù)。在慢啟動階段開始,將擁塞窗口初始化為1,發(fā)送端每收到一個ACK,擁塞窗口增加1,擁塞窗口以指數(shù)速度遞增。當擁塞窗口達到慢啟動閾值時,進入擁塞避免階段,此時發(fā)送端每隔一個往返時延使擁塞窗口增加1,即采取線性速度增加擁塞窗口。在上述過程中,若接收端收到3個或以上重復(fù)ACK,則認為網(wǎng)絡(luò)中出現(xiàn)擁塞,進入快速重傳和快速恢復(fù)階段,直至收到新的ACK確認,結(jié)束快速恢復(fù)。
顯然,TCP Reno將丟包原因全部歸于擁塞,這是由于傳統(tǒng)的擁塞控制協(xié)議是基于有線網(wǎng)絡(luò)的良好傳輸介質(zhì)設(shè)計的,而無線網(wǎng)傳輸介質(zhì)具有高時延、高誤碼、強干擾等特性,丟包的大部分原因不是由于擁塞所致。此時TCP Reno 仍將丟包歸因于擁塞,不能準確計算網(wǎng)絡(luò)的實時可用帶寬,只是盲目的降低擁塞窗口,減少發(fā)送端發(fā)送的數(shù)據(jù)量?;诖耍琓CP Veno提出了能區(qū)分丟包原因的擁塞控制算法。
Veno采用類似Vegas的機制來判斷網(wǎng)絡(luò)的擁塞狀態(tài),通過判斷丟包的性質(zhì)進而采取不同的擁塞控制策略。當網(wǎng)絡(luò)處于真正的擁塞時,采用Reno的擁塞控制機制,當丟包是由誤碼等原因產(chǎn)生的隨即丟包時,則采用另一種擁塞控制機制。
Veno通過計算網(wǎng)絡(luò)中數(shù)據(jù)報的積壓狀況來判斷網(wǎng)絡(luò)的狀態(tài)。設(shè)積壓的數(shù)據(jù)報大小為N,則有:
其中Actural為發(fā)送端實際發(fā)送速率,RTT為網(wǎng)絡(luò)當前往返時延,BaseRTT為網(wǎng)絡(luò)測到的最小往返時延,實際應(yīng)用中Actural=cwnd/RTT,cwnd為擁塞窗口大小。整理得到N的計算公式:
Veno將N的大小作為判斷網(wǎng)絡(luò)是否擁塞的依據(jù),設(shè)定一個門限值β,當N超過β時,說明連路中數(shù)據(jù)包積壓嚴重,判定連接處于擁塞狀態(tài),若此時發(fā)生丟包則采用類似Reno的控制機制;當N小于β時,即使發(fā)送端檢測到丟包,也認定連接正常,判定丟包為其他原因造成的隨即丟包,采取不同于Reno的擁塞控制算法。實驗表明,β取3較合理[1]。
TCP Veno是對Reno的改進算法,也采用4個階段來實現(xiàn)擁塞控制。
慢啟動和超時重傳階段同Reno。
擁塞避免階段:當檢測到丟包非擁塞所致,則每收到一個新ACK確認,使cwnd增加1。當檢測到丟包為擁塞所致,則每收到2個新ACK確認,使cwnd增加1。
快速重傳和快速恢復(fù):當收到3個或以上重復(fù)ACK確認,若N<β,認為網(wǎng)絡(luò)不夠擁塞,判定丟包為隨即丟包,將擁塞閾值置為4*cwnd/5,將cwnd=ssthresh+3,重傳丟失的包;若N>β,則認為網(wǎng)絡(luò)出現(xiàn)擁塞,將擁塞閾值置為cwnd/2,將cwnd=ssthresh+3,重傳丟失的包。采用新策略的TCP Veno算法能使擁塞窗口更長時間地保持在較大范圍,更有利于提高網(wǎng)絡(luò)吞吐量和利用率。
鑒于OPNET良好的仿真性能,本仿真在OPNET原有Reno代碼上進行修改來實現(xiàn)改進算法。
設(shè)定丟包率為0.5%,一條鏈接為Veno,一條鏈接為Reno。由仿真結(jié)果可知,和Reno相比,VENO的發(fā)送端能一直保持較大的擁塞窗口,獲得較大的吞吐量和帶寬利用率。這是因為新算法中擁塞窗口的設(shè)置是基于RTT的計算獲得的,它能反映出網(wǎng)絡(luò)的實況,避免了Reno中降低窗口的盲目性。在一定程度上減小了擁塞窗口的抖動,使發(fā)送速率更穩(wěn)定性。設(shè)置不同丟包率,VENO均能表現(xiàn)出比Reno更好的性能。
算法的友好性是指:該算法算法影響其它版本TCP連接獲取資源的程度。仿真表明,在0.5%丟包率時Veno和Reno連接連接具有相似的競爭力。因此,Veno算法具有很好的友好性。當設(shè)置不同的丟包率時,Veno均能表現(xiàn)出良好的友好性。
公平性是指:同種協(xié)議的不同連接,不同往返延時對獲取資源的影響。此問題存在于所有算法中,但協(xié)議應(yīng)盡量減小它。仿真表明,丟包率為0.5%時Veno在公平性方面表現(xiàn)更好。另外,在丟包率為0~5%的范圍內(nèi)進行仿真,VENO均表現(xiàn)出比Reno更好的公平性。
TCP Veno利用隊列中積壓數(shù)據(jù)包的大小來判別丟包的原因,進而采取不同的措施來調(diào)整發(fā)送窗口,避免了盲目的減小擁塞窗口。本仿真以0.5%丟包率為典型環(huán)境進行仿真,結(jié)果表明,Veno在各方面均表現(xiàn)良好。
另外,該算法是基于Reno的改進,與其他TCP協(xié)議有很好的共存性和可實施性。該算法在穩(wěn)定性方面還存在一些問題,這是今后需要改進的地方。
[1]Cheng Peng Fu and Soung C.Liew. TCP Veno: TCP Enhancement for Transmission Over Wireless Access Networks[J].IEEE Journal of Selected Areas in Communications,2003(2).
[2]C.P.Fu,“TCP VENO:End-to End Condestion Control Over Heterogeneous Networks,”Ph.D.dissertaion,The Chinese Univ.Hong Kong,2001.
[3]王文博,張金文.OPNET Modeler與網(wǎng)絡(luò)仿真.北京:人民 郵電出版社,2003.
[4]謝希仁.計算機網(wǎng)絡(luò)[M].大連:大連理工大學(xué)出版社, 2003.
[5]黃遠江,李世銀,郭晶,蔣海明,李堯.基于OPNET的TCP 擁塞控制仿真.電腦知識與技術(shù),2008(35).
TP393
A
1674-6708(2010)21-0182-02
史士杰,所在院校:中國礦業(yè)大學(xué)在讀碩士,研究方向:無線網(wǎng)絡(luò)