史士杰
中國礦業大學信息與電氣工程學院,江蘇徐州 221116
基于opnet的TCP Veno性能研究和仿真
史士杰
中國礦業大學信息與電氣工程學院,江蘇徐州 221116
由于傳輸介質的不同,傳統擁塞控制算法在無線網絡中出現了性能退化,TCP Veno通過檢測鏈路中積壓數據包大小來判斷丟包的性質,進而對傳統擁塞控制算法進行改進。通過OPNET仿真,該算法下的吞吐量、網絡利用率、公平性、友好性均比Reno得到提高。
OPNET;TCP VENO;TCP Reno;擁塞控制
鑒于TCP/IP協議在有線網絡中的良好表現,傳統擁塞控制協議在無線通信網絡以及混合網絡中得到了越來越廣泛的應用。然而,由于傳輸介質的差異,傳統TCP擁塞控制協議并不能在無線網絡中獲得較好的效果。因此,要想使TCP在無線網絡中具有良好的表現,就必須對傳統的TCP傳輸協議進行改進。
傳統的擁塞控制機制有4個階段:慢啟動、擁塞避免、快速重傳和快速恢復。在慢啟動階段開始,將擁塞窗口初始化為1,發送端每收到一個ACK,擁塞窗口增加1,擁塞窗口以指數速度遞增。當擁塞窗口達到慢啟動閾值時,進入擁塞避免階段,此時發送端每隔一個往返時延使擁塞窗口增加1,即采取線性速度增加擁塞窗口。在上述過程中,若接收端收到3個或以上重復ACK,則認為網絡中出現擁塞,進入快速重傳和快速恢復階段,直至收到新的ACK確認,結束快速恢復。
顯然,TCP Reno將丟包原因全部歸于擁塞,這是由于傳統的擁塞控制協議是基于有線網絡的良好傳輸介質設計的,而無線網傳輸介質具有高時延、高誤碼、強干擾等特性,丟包的大部分原因不是由于擁塞所致。此時TCP Reno 仍將丟包歸因于擁塞,不能準確計算網絡的實時可用帶寬,只是盲目的降低擁塞窗口,減少發送端發送的數據量。基于此,TCP Veno提出了能區分丟包原因的擁塞控制算法。
Veno采用類似Vegas的機制來判斷網絡的擁塞狀態,通過判斷丟包的性質進而采取不同的擁塞控制策略。當網絡處于真正的擁塞時,采用Reno的擁塞控制機制,當丟包是由誤碼等原因產生的隨即丟包時,則采用另一種擁塞控制機制。
Veno通過計算網絡中數據報的積壓狀況來判斷網絡的狀態。設積壓的數據報大小為N,則有:

其中Actural為發送端實際發送速率,RTT為網絡當前往返時延,BaseRTT為網絡測到的最小往返時延,實際應用中Actural=cwnd/RTT,cwnd為擁塞窗口大小。整理得到N的計算公式:

Veno將N的大小作為判斷網絡是否擁塞的依據,設定一個門限值β,當N超過β時,說明連路中數據包積壓嚴重,判定連接處于擁塞狀態,若此時發生丟包則采用類似Reno的控制機制;當N小于β時,即使發送端檢測到丟包,也認定連接正常,判定丟包為其他原因造成的隨即丟包,采取不同于Reno的擁塞控制算法。實驗表明,β取3較合理[1]。
TCP Veno是對Reno的改進算法,也采用4個階段來實現擁塞控制。
慢啟動和超時重傳階段同Reno。
擁塞避免階段:當檢測到丟包非擁塞所致,則每收到一個新ACK確認,使cwnd增加1。當檢測到丟包為擁塞所致,則每收到2個新ACK確認,使cwnd增加1。
快速重傳和快速恢復:當收到3個或以上重復ACK確認,若N<β,認為網絡不夠擁塞,判定丟包為隨即丟包,將擁塞閾值置為4*cwnd/5,將cwnd=ssthresh+3,重傳丟失的包;若N>β,則認為網絡出現擁塞,將擁塞閾值置為cwnd/2,將cwnd=ssthresh+3,重傳丟失的包。采用新策略的TCP Veno算法能使擁塞窗口更長時間地保持在較大范圍,更有利于提高網絡吞吐量和利用率。
鑒于OPNET良好的仿真性能,本仿真在OPNET原有Reno代碼上進行修改來實現改進算法。
設定丟包率為0.5%,一條鏈接為Veno,一條鏈接為Reno。由仿真結果可知,和Reno相比,VENO的發送端能一直保持較大的擁塞窗口,獲得較大的吞吐量和帶寬利用率。這是因為新算法中擁塞窗口的設置是基于RTT的計算獲得的,它能反映出網絡的實況,避免了Reno中降低窗口的盲目性。在一定程度上減小了擁塞窗口的抖動,使發送速率更穩定性。設置不同丟包率,VENO均能表現出比Reno更好的性能。
算法的友好性是指:該算法算法影響其它版本TCP連接獲取資源的程度。仿真表明,在0.5%丟包率時Veno和Reno連接連接具有相似的競爭力。因此,Veno算法具有很好的友好性。當設置不同的丟包率時,Veno均能表現出良好的友好性。
公平性是指:同種協議的不同連接,不同往返延時對獲取資源的影響。此問題存在于所有算法中,但協議應盡量減小它。仿真表明,丟包率為0.5%時Veno在公平性方面表現更好。另外,在丟包率為0~5%的范圍內進行仿真,VENO均表現出比Reno更好的公平性。
TCP Veno利用隊列中積壓數據包的大小來判別丟包的原因,進而采取不同的措施來調整發送窗口,避免了盲目的減小擁塞窗口。本仿真以0.5%丟包率為典型環境進行仿真,結果表明,Veno在各方面均表現良好。
另外,該算法是基于Reno的改進,與其他TCP協議有很好的共存性和可實施性。該算法在穩定性方面還存在一些問題,這是今后需要改進的地方。
[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與網絡仿真.北京:人民 郵電出版社,2003.
[4]謝希仁.計算機網絡[M].大連:大連理工大學出版社, 2003.
[5]黃遠江,李世銀,郭晶,蔣海明,李堯.基于OPNET的TCP 擁塞控制仿真.電腦知識與技術,2008(35).
TP393
A
1674-6708(2010)21-0182-02
史士杰,所在院校:中國礦業大學在讀碩士,研究方向:無線網絡