楊亦彬
摘 要: 為了深入理解編碼TCP的原理,在討論TCP Vegas協議和網絡編碼的基本形式的基礎上,分別從無線網絡發送端和接收端的角度深入論述了其與網絡編碼的融合方法以及網絡編碼層的結構和控制機理,在最后提出了NS2模擬軟件底層代碼的修改思路來實現檢測網絡編碼TCP性能的目的。
關鍵詞: TCP協議; 網絡編碼; 無線通信; NS2
中圖分類號: TN911.22?34 文獻標識碼: A 文章編號: 1004?373X(2014)03?0015?04
Theoretical research and application methods of network coding TCP
YANG Yi?bin
(Beijing Institute of Technology, Beijing 100081, China)
Abstract: To understand the theory of Network Coding TCP in depth, based on the discussion on basic form of TCP Vegas protocol and networking, the fusion method with networking coding, the structure and control mechanism of networking coding layer is expounded from the point of wireless network sender and receiver. A strategy to modify the code in NS2 is proposed, to realize the simulation of TCP/NC performance.
Keywords: TCP protocol; network coding; wireless communication; NS2
0 引 言
現今移動數據的流量正在快速增長,接下來的5年里移動數據流量值會上升超過25倍[1],如此龐大的數據傳送量需要更好的通信網絡。有研究者提出基于線性網絡編碼的TCP協議(TCP/NC)的概念,使得TCP協議在無線傳輸的情況下依然可以保持良好的實際吞吐量。
在美國麻省理工大學的測試中,TCP/NC對無線傳輸的效率有了大幅度的提升。在校園WiFi(2%丟包率)的環境下,傳輸速率從1 Mb/s上升到了16 Mb/s;在快速列車(5%丟包率)的環境下,傳輸速率從0.5 Mb/s上升到了[2]13.5 Mb/s。可見TCP/NC很適合無線環境下的網絡數據傳輸。基于此,TCP/NC對無線網絡傳輸的研究有很大的實際意義。
1 傳統TCP簡介
由于TCP/NC的基礎框架是TCP Vegas,有必要了解TCP Vegas的基本運行機制,以便更深入地理解TCP/NC的控制機理。TCP Vegas與TCP/NC關系最緊密的兩個特性是ACK、擁塞控制,下面分別對二者進行簡要討論。在此之前,這里需要先明確一個基本概念——往返時延(RTT)。它所表示的時間段是從一個包發送端送出開始計時,到發送端收到接收端發來的這個包的ACK確認信號為止。
ACK:TCP Vegas的ACK機制與較早版本的TCP Reno有了變化和改進,TCP Reno采用的是triple?ACK,即如果連續出現三次相同序號的ACK,那么網絡就被認為已出現擁塞。TCP Vegas的重傳機制則不需要等到三個序號相同的重復ACK,它在收到重復ACK時更加關注每一個包RTT,如果RTT超出一定的范圍,則不必等到三次相同的ACK再開始重傳。實驗表明這樣可以至少增加19%的執行效果[3]。
擁塞控制:TCP Vegas的擁塞控制同樣基于往返時間進行控制。它設定了變量Diff,代表了預期傳送速率和實際傳送速率的差值;同時TCP Vegas還定義了另外兩個變量[α]和[β,]用這些變量實現對于窗口大小的控制。
Diff定義式如下:
[Diff=Expected-Actual=WindowSizeBaseRTT-bytestransmittedmeasuredRTT]
[BaseRTT=minimum of all measured RTT]
當Diff的數值小于α時,系統增大窗口大小;當Diff的數值大于[β]時,系統減小窗口大小。由此可以看出,TCP Vegas通過RTT判斷實時網絡傳輸速率的大小,既保證了網絡的利用率,又避免了網絡擁塞的發生。
在以擁塞為丟包的主要原因的有線鏈路中,TCP Vegas性能良好,而在無線傳輸系統中,丟包的原因主要是信號的衰減、互擾以及其他物理現象[4],TCP Vegas的Triple ACKs機制并不再適用(信號衰減所導致的重復ACKs會讓TCP Vegas誤以為是網絡擁塞造成的,從而減小網絡窗口,而實際要做的是增大網絡窗口來克服信號衰減),因此需要改進TCP Vegas協議。
網絡編碼被認為適于應用在無線網路中。網絡編碼允許在節點處混合數據,而且網絡編碼已經被證明可以有效地提升吞吐量和魯棒性[5]。把TCP Vegas協議和網絡編碼組合,可以把網絡編碼的優勢帶給TCP Vegas協議,同時也不會要求現有的TCP Vegas協議做很大的改動[6]。
2 TCP Vegas在無線環境下的改進模式:
編碼TCP(TCP/NC)
2.1 網絡編碼簡介
可以證明在有加性高斯白噪聲的鏈路加入網絡編碼,可使傳輸速率幾乎達到上限值[7]。網絡編碼的重要意義在于它進一步壓縮了網絡信息流,提升吞吐量[8]。下面以一個典型的例子說明這個概念。