劉士賢
(遼寧職業學院計算機系,遼寧鐵嶺112000)
無線網絡中TCP性能分析及改進方案研究
劉士賢
(遼寧職業學院計算機系,遼寧鐵嶺112000)
本文對TCP在無線移動網絡中的性能進行了分析,指出其在無線網絡中的不足,并介紹了當前幾種常用的TCP性能改進方法,最后詳細介紹了ADTCP方案的思想,提出一種新的基于端到端TCP改進方案,有效地提高了TCP在無線網絡中的性能。
無線網絡;ADTCP;端到端;TCP性能改進
傳統的TCP協議是為有線網絡環境而設計的,因此TCP假定網絡擁塞是引起報文丟失的唯一原因,并相應地采取擁塞控制機制。然而在無線網絡中,無線鏈路的高誤碼率和主機的移動切換也經常引起報文丟失,而TCP仍然將這些報文丟失歸咎于網絡擁塞,這種錯誤的推論最終導致無線網絡中TCP性能的嚴重下降。鑒于TCP協議應用的廣泛性,如何提高TCP在無線網絡中的性能成為大家普遍關注的問題。
TCP協議雖然是一個可靠的傳輸層協議,但只適用于有線鏈路和固定主機構成的傳統網絡。而由無線鏈路和移動主機組成的無線網絡打破了TCP的許多假設,導致了TCP性能的下降,它主要有以下幾個缺點:
1.錯誤檢測機制
這個機制不能區別不同類型的錯誤。TCP有一個基本假設,即一旦發生連續的丟包行為,TCP就判斷網絡擁塞。但是這套機制搬到無線環境中會使TCP的性能大大降低,因為丟包現象不一定是擁塞導致的,而可能是移動導致的。
2.錯誤恢復機制
這個機制不能針對無線環境的具體特點(如移動節點的頻繁變動和信道的衰弱)做出相應的行為。
3.協議的策略
這個策略并不考慮到各種性能參數(比如有效的吞吐量和網路開銷)之間的折衷,而是經常把時間浪費在重傳和其他鏈接上。
現階段為了改善TCP在無線網絡中的性能,主要有以下幾種解決方案:端到端的解決方案,分段連接的解決方案,鏈路層解決方案和基于ADTCP的改進方案。
1.端到端的解決方案
(1)TCP SACK(Selective Acknowledge)協議。SACK算法是在Reno算法基礎上進行擴展得來的,它在確認包的包頭中增加了附加域,可以標識沒有被正確接收的一個發送窗口內的多個數據包,從而對數據包進行有選擇地確認和重傳。
(2)TCP-New Reno。New Reno對Reno中的“快速恢復”算法進行了補充。當多個報文在一個窗口中丟失后,TCP可以保持一個快速恢復模式。
(3)聰明代理機制(SMART)。SMART機制與上文提到的SACK基于相同的原理,它使用的SACK中包含了積累的確認和已經成功接收的報文段的序號,當發現序號不連續時,立刻重發。
(4)顯式丟失通告機制(Explicit Loss Notificaiton,簡稱ELN)。ELN協議在ACK中增加了顯式丟失通告選項,它能夠通告發送方數據丟失的真正原因,以區別對待與網絡擁塞有關及其他與網絡擁塞無關的數據丟失。
(5)Freeze-TCP協議。這種改進方案主要用于解決TCP在移動終端進行越區切換時遇到的問題。其原理是由接收方對收到信號的強弱進行判別,預測將要發生的越區切換。
2.分段連接的解決方案
(1)非直接TCP(I-TCP)。這種方法在無線鏈路連接中使用常規的TCP,基站只簡單地在兩個連接間雙向復制報文。
(2)M-TCP(TCP formobile cellular networks)協議。M-TCP主要設計目標是處理無線網絡移動終端頻繁地進行越區切換時碰到的問題,防止發送方進入不必要的慢啟動階段。
(3)無線TCP(W-TCP)。基站使用兩種協議TCP和W-TCP,TCP用于處理有線鏈路數據的傳送,W-TCP則應用于無線鏈路。
3.鏈路層解決方案
鏈路層解決方案是一種試圖從底層(數據鏈路層)來解決TCP性能的方法。對于TCP這樣的可靠傳輸協議,問題產生的主要原因是由于無線媒介的自然屬性不同,所以在產生問題的根部解決問題是比較有效的方法。位于物理層上的鏈路層能夠馬上得到幀丟失的信息,因此能夠比高層協議做出更快的反應。同時,鏈路層協議能夠對物理層進行更有效的控制。還有一個主要優點是它本身非常適應網絡協議的分層結構。鏈路層協議的操作獨立于高層協議,這使得它能廣泛適應各種情況,因此它不必維持每一種連接的狀態。
4.基于ADTCP的改進方案
ADTCP作為一個典型的端到端協議,具有端到端技術的普遍優勢,但是在ADTCP樣本值的判別上,由于其樣本空間中各個樣本權重隨著其歷史的久遠而變小,使得當前時間附近的樣本對于檢測結果影響很大,導致檢測靈敏度的下降,所以針對其不足,做如下改進:
(1)在判別手段上進一步提高,同時盡量減少計算復雜度。CON的判別建立在ADTCP關于IDD檢測的成果上,以提高判別的準確性,能夠反映通路中隊列大小的RTT度量的檢測來推斷CON狀態。因為RTT可以直接從TCP中獲取,CON判別相對于ADTCP中利用IDD和STT的聯合檢測,其計算復雜度稍有減少。
(2)在不同狀態的判別上,需要有所區別,如最主要狀態CON的判別,需要進一步完善,因為判別失誤產生的影響很大;而對于其他的網絡狀態如RTCHG、DISC、CHERR之間的判別應力求簡單,因為這些狀態所對應的措施操作差別不大,誤判帶來的影響較小,也可考慮合并某些狀態,提高CON的判別準確性。
(3)從RTCHG的響應措施來看,可以結合事后的恢復措施,降低檢測手段的時效性要求。對于除了CON以外的其他狀態的判別,對路由更新(RTCHG)和鏈路差錯(CHERR)進行具體區分,而不像ADTCP那樣還要區分連接中斷(DISC)、路由更新(RTCHG)和鏈路差錯(CHERR)三種狀態,因為DISC在這里完全可以看成是中斷事件較長的RTCHG事件。因此,完全可以合并這兩個狀態,有效降低復雜度。
(4)對傳統TCP保持向后兼容,并且盡量做到TCP友好。根據檢測到丟包所用的手段來決定到底采用事前凍結措施還是事后恢復措施。如果丟包是由重復ACK檢測到,說明后續數據包可以到達目的端,通路已經恢復,則執行恢復措施,否則采取事前凍結措施。☉
[1][美]W.R ichard Stevens著.范建華等譯.TCP/IP詳解卷一:協議[M].北京:機械工業出版社,2000:258-289.
[2]David B Hohnson,and Charles Perkins,Mobility Support in IPv6,IETF draft,Nov 2000:98-99.
[3]Brian Van Lceuwen,Juan Espinoza Jr,Peter Scholander: Effective Protocols for Mobile Communications and networking, Jan 1999.
[4]徐雷鳴,龐博,趙耀.NS與網絡模擬[M],北京:人民郵電出版社,2003.
(編輯:隗爽)
book=13,ebook=38
TP393.04
A
1673-8454(2010)13-0013-02