楊亦彬
摘 要: 為了深入理解編碼TCP的原理,在討論TCP Vegas協(xié)議和網(wǎng)絡(luò)編碼的基本形式的基礎(chǔ)上,分別從無線網(wǎng)絡(luò)發(fā)送端和接收端的角度深入論述了其與網(wǎng)絡(luò)編碼的融合方法以及網(wǎng)絡(luò)編碼層的結(jié)構(gòu)和控制機(jī)理,在最后提出了NS2模擬軟件底層代碼的修改思路來實(shí)現(xiàn)檢測(cè)網(wǎng)絡(luò)編碼TCP性能的目的。
關(guān)鍵詞: TCP協(xié)議; 網(wǎng)絡(luò)編碼; 無線通信; NS2
中圖分類號(hào): TN911.22?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言
現(xiàn)今移動(dòng)數(shù)據(jù)的流量正在快速增長(zhǎng),接下來的5年里移動(dòng)數(shù)據(jù)流量值會(huì)上升超過25倍[1],如此龐大的數(shù)據(jù)傳送量需要更好的通信網(wǎng)絡(luò)。有研究者提出基于線性網(wǎng)絡(luò)編碼的TCP協(xié)議(TCP/NC)的概念,使得TCP協(xié)議在無線傳輸?shù)那闆r下依然可以保持良好的實(shí)際吞吐量。
在美國(guó)麻省理工大學(xué)的測(cè)試中,TCP/NC對(duì)無線傳輸?shù)男视辛舜蠓鹊奶嵘?。在校園WiFi(2%丟包率)的環(huán)境下,傳輸速率從1 Mb/s上升到了16 Mb/s;在快速列車(5%丟包率)的環(huán)境下,傳輸速率從0.5 Mb/s上升到了[2]13.5 Mb/s。可見TCP/NC很適合無線環(huán)境下的網(wǎng)絡(luò)數(shù)據(jù)傳輸?;诖?,TCP/NC對(duì)無線網(wǎng)絡(luò)傳輸?shù)难芯坑泻艽蟮膶?shí)際意義。
1 傳統(tǒng)TCP簡(jiǎn)介
由于TCP/NC的基礎(chǔ)框架是TCP Vegas,有必要了解TCP Vegas的基本運(yùn)行機(jī)制,以便更深入地理解TCP/NC的控制機(jī)理。TCP Vegas與TCP/NC關(guān)系最緊密的兩個(gè)特性是ACK、擁塞控制,下面分別對(duì)二者進(jìn)行簡(jiǎn)要討論。在此之前,這里需要先明確一個(gè)基本概念——往返時(shí)延(RTT)。它所表示的時(shí)間段是從一個(gè)包發(fā)送端送出開始計(jì)時(shí),到發(fā)送端收到接收端發(fā)來的這個(gè)包的ACK確認(rèn)信號(hào)為止。
ACK:TCP Vegas的ACK機(jī)制與較早版本的TCP Reno有了變化和改進(jìn),TCP Reno采用的是triple?ACK,即如果連續(xù)出現(xiàn)三次相同序號(hào)的ACK,那么網(wǎng)絡(luò)就被認(rèn)為已出現(xiàn)擁塞。TCP Vegas的重傳機(jī)制則不需要等到三個(gè)序號(hào)相同的重復(fù)ACK,它在收到重復(fù)ACK時(shí)更加關(guān)注每一個(gè)包RTT,如果RTT超出一定的范圍,則不必等到三次相同的ACK再開始重傳。實(shí)驗(yàn)表明這樣可以至少增加19%的執(zhí)行效果[3]。
擁塞控制:TCP Vegas的擁塞控制同樣基于往返時(shí)間進(jìn)行控制。它設(shè)定了變量Diff,代表了預(yù)期傳送速率和實(shí)際傳送速率的差值;同時(shí)TCP Vegas還定義了另外兩個(gè)變量[α]和[β,]用這些變量實(shí)現(xiàn)對(duì)于窗口大小的控制。
Diff定義式如下:
[Diff=Expected-Actual=WindowSizeBaseRTT-bytestransmittedmeasuredRTT]
[BaseRTT=minimum of all measured RTT]
當(dāng)Diff的數(shù)值小于α?xí)r,系統(tǒng)增大窗口大??;當(dāng)Diff的數(shù)值大于[β]時(shí),系統(tǒng)減小窗口大小。由此可以看出,TCP Vegas通過RTT判斷實(shí)時(shí)網(wǎng)絡(luò)傳輸速率的大小,既保證了網(wǎng)絡(luò)的利用率,又避免了網(wǎng)絡(luò)擁塞的發(fā)生。
在以擁塞為丟包的主要原因的有線鏈路中,TCP Vegas性能良好,而在無線傳輸系統(tǒng)中,丟包的原因主要是信號(hào)的衰減、互擾以及其他物理現(xiàn)象[4],TCP Vegas的Triple ACKs機(jī)制并不再適用(信號(hào)衰減所導(dǎo)致的重復(fù)ACKs會(huì)讓TCP Vegas誤以為是網(wǎng)絡(luò)擁塞造成的,從而減小網(wǎng)絡(luò)窗口,而實(shí)際要做的是增大網(wǎng)絡(luò)窗口來克服信號(hào)衰減),因此需要改進(jìn)TCP Vegas協(xié)議。
網(wǎng)絡(luò)編碼被認(rèn)為適于應(yīng)用在無線網(wǎng)路中。網(wǎng)絡(luò)編碼允許在節(jié)點(diǎn)處混合數(shù)據(jù),而且網(wǎng)絡(luò)編碼已經(jīng)被證明可以有效地提升吞吐量和魯棒性[5]。把TCP Vegas協(xié)議和網(wǎng)絡(luò)編碼組合,可以把網(wǎng)絡(luò)編碼的優(yōu)勢(shì)帶給TCP Vegas協(xié)議,同時(shí)也不會(huì)要求現(xiàn)有的TCP Vegas協(xié)議做很大的改動(dòng)[6]。
2 TCP Vegas在無線環(huán)境下的改進(jìn)模式:
編碼TCP(TCP/NC)
2.1 網(wǎng)絡(luò)編碼簡(jiǎn)介
可以證明在有加性高斯白噪聲的鏈路加入網(wǎng)絡(luò)編碼,可使傳輸速率幾乎達(dá)到上限值[7]。網(wǎng)絡(luò)編碼的重要意義在于它進(jìn)一步壓縮了網(wǎng)絡(luò)信息流,提升吞吐量[8]。下面以一個(gè)典型的例子說明這個(gè)概念。