劉 釗,史迎春
(1.中國電子科技集團公司第20研究所,西安 710068; 2.國防信息學院,武漢 430010)
?
傳輸層網絡編碼性能分析
劉 釗1,史迎春2
(1.中國電子科技集團公司第20研究所,西安 710068; 2.國防信息學院,武漢 430010)
底層網絡隨機丟包導致的傳輸控制協議(TCP)傳輸性能惡化的問題由來已久。為了保障TCP的吞吐量在無線網絡環境下依然能夠保持在較好的性能,通過分析傳輸層網絡編碼(TCP/NC)協議的基本原理,分別利用NS-2搭建了軟件仿真平臺和Wi-Fi開發板搭建了硬件仿真平臺。在2種平臺上分別測試了傳輸層網絡編碼的性能并且分析了TCP的擁塞窗口和吞吐量性能。實驗結果表明:傳輸層網絡編碼能夠有效克服底層的隨機丟包帶來的影響,提升TCP吞吐量。
網絡編碼;傳輸層;吞吐量
自2000年來,Ahlswede[1]等人的研究開創了網絡編碼的新領域。網絡編碼是一種融合了路由和編碼的信息交換技術,它的核心思想是在網絡的各個節點上對各條信道上收到的信息進行線性或者非線性的處理,然后轉發給下游節點,中間節點扮演著編碼器或信號處理器的角色。網絡編碼突破了傳統路由在網絡中傳輸的數據包只能轉發和存儲的限制,它允許網絡中的節點對傳輸的數據包進行編碼和處理,從而使網絡的多播傳輸達到“最大流最小割”理論上的最大傳輸容量。因此,網絡編碼引起了學術界廣泛的重視,從而奠定了網絡編碼在現代網絡通信研究領域的重要地位。
網絡編碼雖然起源于對多播傳輸的研究,但是現今已拓展到網絡研究的許多方面,例如:網絡鏈路傳輸的可靠性,提高網絡吞吐量,提高網絡帶寬利用率,均衡網絡負載和網絡編碼在無線網絡下的研究等。尤其在近幾年來,網絡編碼的研究熱點已經由傳統的有線網絡場景下的網絡編碼技術轉為無線網絡場景下的網絡編碼技術。因為無線鏈路的不可靠性和物理層廣播特性非常適合使用編碼的方法。應用網絡編碼可以解決傳統路由技術無法解決的問題,以提高網絡性能。具體來說,網絡編碼在無線網絡中的應用可以提高網絡的吞吐量,尤其是組播吞吐量;可以減少數據包的傳播次數,降低無線發送能耗;采用隨機網絡編碼,即使網絡部分節點或鏈路失效,最終在目的節點仍然能恢復原始數據,增強網絡的容錯性和魯棒性。
在基于傳輸控制協議/因特網互聯協議(TCP/IP)與802.11協議所組成的協議棧的有損網絡中傳輸的場景下,由J. K. Sundararajan[2-4]等人提出的傳輸層網絡編碼(TCP/NC)協議是在TCP[5]層與IP層之間加入網絡編碼層,通過網絡編碼將下層的丟包掩蓋,使TCP繼續保持良好的傳輸性能而不是主動縮小擁塞窗口降低發送速率,除此之外,TCP/NC協議[6]具有很好的兼容性。當網絡中發送隨機不相關丟包時,尤其在丟包率較大時,能極大地提升TCP的性能。因此,TCP/NC協議必須能夠對抗由于衰落引起的隨機丟包。
本文針對TCP/NC協議進行了軟件和硬件平臺上的仿真實驗,驗證了TCP/NC協議能夠抵抗底層隨機丟包對上層TCP帶來性能下降的影響,仿真結果表明:在這種底層有隨機丟包的網絡中,TCP/NC能夠明顯提升系統吞吐量。
TCP協議即傳輸控制協議,對應于開放式系統互聯(OSI)七層模型中的傳輸層,建立于網絡層之上,它旨在給互聯網提供一種可靠的端到端的字節傳輸流。TCP是當今互聯網廣泛使用的傳輸層協議,除了能夠提供可靠的端到端通信之外,當網絡出現擁塞時,還會主動降低發送速率以使網絡性能盡快恢復。但由于無線信道本身的易誤碼特性,導致其持續存在物理層隨機丟包的情況,當在無線網絡中使用TCP時,協議就容易將這種無線信道誤碼引起的丟包誤認為網絡出現了擁塞,進而主動降低發送速率,最終會將網絡的吞吐量限制在一個較低的水平。
對于協議棧的修改[2]如圖 1。其中添加了網絡編碼層,它位于傳統計算機網絡分層結構中的傳輸層和網絡層之間,其在源端對TCP傳輸的數據進行網絡編碼;在接收端進行網絡解碼,將數據還原成TCP的數據并遞交給TCP-Sink。協議棧中添加的網絡編碼層和新的TCP層合稱TCP/NC層。

圖1 TCP/NC協議棧
網絡編碼層主要負責對 TCP 層遞交的數據包進行網絡編解碼,通過增加協議層這種跨層[7-8]的思想結合網絡編碼,并且保持TCP與 IP的接口不發生任何改動。將網絡編碼用于解決TCP與有損無線網絡的這種思想非常具有創新性,這給如何解TCP在無線網絡下性能衰退嚴重的問題帶來了新思路。當前網絡編碼在無線網絡中的研究主要集中于介質訪問控制子層協議(MAC)[9-11]以下,針對其在傳輸層中的研究工作還較少。
傳輸層網絡編碼的算法主要包含2個部分:編碼端算法;解碼端算法。
(1) TCP/NC編碼流程
TCP/NC網絡編碼的編碼端流程:
步驟1,設置變量num為0。
步驟2,等待狀態:如果下面任何事件發生,則按照下面方法響應;否則,等待。
步驟3,當數據包從TCP發送端來。
① 如果數據包是一個用于建立連接的控制數據包,將其直接傳遞給IP層,并且返回等待狀態。
② 如果數據包還沒有加入編碼窗口,將其加入網絡編碼窗口。
③ 設置num=num+R(R是網絡編碼冗余因子)。
④ 重復下面子步驟次:
(a) 用網絡編碼窗口中的數據包產生一個隨機線性組合。
(b) 將網絡編碼數據包的隨機系數和編碼信息加入網絡編碼頭。
(c) 將數據包傳輸給IP層。
(d)num=num-1。
⑤ 返回等待狀態。
步驟4.確認字符(ACK)從接收端到達:將被確認的數據包從編碼緩存中移除,并且將ACK傳遞給TCP發送端。
上述為TCP/NC的編碼流程,對于編碼端接到的數據包只有2種情況:一種是從TCP發送端接到的數據包;一種是從接收端發送的ACK。按照上述流程對數據包進行操作,繪制成流程圖如圖2所示。

圖2 發送端流程圖
(2) TCP/NC解碼流程
TCP/NC網絡編碼、解碼端流程:
步驟1,等待狀態:如果下面任何事件發生,則按照下面方法響應;否則,等待。
步驟2,當ACK是從TCP-Sink到達:如果ACK確認的是一個建立鏈接的控制數據包,將其直接傳遞給IP層,然后再返回等待狀態;否則,忽略當前ACK。
步驟3,當數據包是從源端發送來。
① 將網絡編碼的頭從編碼數據包中移除,將編碼系數向量從包頭中取出。
② 將網絡編碼的編碼向量作為一個行向量加入解碼系數矩陣,并且用高斯-約旦消元法處理接收到的數據包。
③ 將負載加入解碼緩存,如果任何一個數據包可以解碼,則將其傳遞給TCP-Sink并從緩存中移除。
④ 產生新的TCP確認序號。
上述為TCP/NC的解碼流程,對于編碼端接到的數據包只有3種情況:一種是從發送端接到的編碼數據;一種是從TCP-Sink發送來的ACK;還有一種是負責信令交互的數據包。按照上述流程對數據包進行操作,繪制成流程圖如圖3所示。

圖3 接收端流程圖
3.1 軟件平臺仿真實驗結果
仿真實驗均是在NS-2平臺下完成的。在本實驗中,應用層采用FTP從10 s開始傳輸,到90 s傳輸結束。設置數據包大小為1 000字節,TCP的擁塞窗口為50。
仿真實驗所使用線型拓撲如圖4所示。

圖4 仿真實驗使用的線性網絡拓撲
TCP-NC在丟包率為5%,10%,20%,R為不同值時,TCP/NC的有效吞吐量分別如圖5~圖7所示。
從圖 5、圖 6和圖 7的理論分析得到的冗余因


圖5 丟包率為5%,R為不同值時TCP/NC的有效吞吐量

圖6 丟包率為10%,R為不同值時TCP/NC的有效吞吐量

圖7 丟包率為20%,R為不同值時TCP/NC的有效吞吐量
圖 8驗證了TCP/NC算法應用于一般無線系統的有效性,即當物理信道存在一定丟包率的情況下,系統的有效吞吐量還能保持在一個比較高的水平,而沒有出現非常劇烈的波動。

圖8 系統在不同丟包率情況下,TCP&TCP/NC有效吞吐量
如圖9所示,擁塞窗口的大小應該是與有效吞吐量是保持一致的。將上面實驗結果曲線與之前的吞吐量曲線進行對比,可以發現兩者的趨勢基本一致。

圖9 TCP&TCP/NC在不同丟包率下的擁塞窗隨時間變化
3.2 硬件平臺仿真實驗結果
如圖10所示是用于實現及測試TCP/NC的
Wi-Fi開發板所搭建成的硬件仿真平臺示意圖。開發板的主要組成為:ARM Stm32f103單片機、RS232串口、JTAG/JLINK接口和Wi-Fi模塊。該開發板使用Keli uVeison4軟件編譯源代碼,通過JTAG/JLINK接口將編譯好的程序下載到開發板。電腦和開發板通過RS232串口線連接,從而可以利用電腦上的串口調試工具觀察運行信息。

圖10 硬件系統示意圖
在有丟包網絡環境下的TCP/NC和TCP的性能比較。實驗中設置丟包率p為2%,發送窗口與有效傳輸速率如圖 11與圖 12所示。
從圖 11可以看出,在有隨機丟包的網絡環境下,TCP/NC發送窗口的大小仍然能夠達到且維持在最大發送窗口,而TCP會因為丟包而產生發送窗口大小的波動。從圖 12可以看出,在有隨機丟包的網絡環境下,TCP/NC仍然有一個比較穩定的有效傳輸速度。
同樣,在設置丟包率為2%的條件下,還研究了不同冗余因子R對TCP/NC吞吐量性能的影響。
通過圖13與之前軟件平臺仿真實驗的結果(如圖 5~圖 7的結果)對比來看,能得到相同的結論。

圖11 有丟包網絡環境下的TCP/NC和TCP的發送窗口
本文基于J.K.Sundararajan等人提出的TCP/NC協議的研究基礎之上,分別在利用NS-2所搭建的軟件仿真平臺與Wi-Fi開發板搭建的硬件仿真平臺上對TCP/NC的性能進行了仿真與性能分析。實驗結果表明:TCP/NC能夠有效克服底層隨機丟

圖12 有丟包網絡環境下的TCP/NC和TCP的有效傳輸速率

圖13 不同冗余度R條件下TCP/NC的平均吞吐量曲線
包造成TCP傳輸性能劇烈下降的問題,而且提升效果顯著,解決問題辦法新穎,并且與現有協議棧的兼容性較好。
[1] AHLSWEDE R,CAI N,LI S Y,et al.Network information flow[J].Information Theory,IEEE Transactions on,2000,46(4):1204-1216.
[2] SUNDARARAJAN J K,SHAH D,MEDARD M,et al.Network coding meets TCP[C]//International Conference on Computer Communications,Vols 1-5,2009:280-288.
[3] SUNDARARAJAN J K,JAKUBCZAK S,MEDARD M,et al.Interfacing network coding with TCP:an implementation[J].Mathematics,2009(3):280-288.
[4] SUNDARARAJAN J K,SHAH D,MEDARD M,et al.Network coding meets TCP:theory and implementation[J].Proceedings of The IEEE,2011,99 (3):490-512.
[5] ALMQUIST P.Transmission control protocol[J].International Request for Comment,1981,2(4):595-599.[6] KIM M,MEDARD M,BARROS J.Modeling network coded TCP throughput:a simple model and its validation[C]//Institute for Computer Sciences,Social-informatics and Telecommunications Engineering,2011:131-140.
[7] SRIVASTAVA V,MOTANI M.Cross-layer design:a survey and the road ahead[J].Communications Magazine,IEEE,2005,43 (12):112-119.
[8] LIN X,SHROFF N B,SRIKANT R.A tutorial on cross-layer optimization in wireless networks[J].Selected Areas in Communications,IEEE Journal on,2006,24(8):1452-1463.
[9] BYERS J W,LUBY M,MITZENMACHER M.A digital fountain approach to asynchronous reliable multicast[J].Selected Areas in Communications,IEEE Journal on,2002,20 (8):1528-1540.
[10]MACKAY D J.Fountain codes[J]:Communications,IEE Proceedings,2005,152(6):1062-1068.
[11]SHOKROLLAHI A.Raptor codes[J].Information Theory,IEEE Transactions on,2006,52 (6):2551-2567.
Performance Analysis on Transmission Control Protocol Layer with Network Coding
LIU Zhao1,SHI Ying-chun2
(1.The 20th Research Institute of CETC,Xi'an 710068,China;2.PLA Academy of National Defense Information,Wuhan 430010,China)
The long-standing problem is that the transmission performance deterioration of transmission control protocol (TCP) caused by random packet loss in lower layer network.In order to guarantee the TCP throughput still maintain good performance in wireless network environment,this paper analyzes the basic principle of transmission control protocol layer with network coding (TCP/NC) protocol,separately uses NS-2 to construct software simulation platform and Wi-Fi development board to construct hardware simulation platform,tests the TCP/NC performance and analyzes the congestion window and throughput of TCP.The experimental results show that TCP/NC can effectively overcome the impact of random packet loss in lower layer and improve the TCP throughput.
network coding;transmission layer;throughput
2016-01-19
TN915.04
A
CN32-1413(2016)04-0092-07
10.16426/j.cnki.jcdzdk.2016.04.021