?

一種航空移動通信中TCP網絡編碼方法

2012-07-31 07:35揚,徐
中國民航大學學報 2012年6期
關鍵詞:誤碼包率解碼

宋 揚,徐 楨

(北京航空航天大學電子信息工程學院,北京 100083)

在航空移動通信中為用戶提供語音和數據移動通信業務在技術上已經日趨成熟,需求也在不斷增加。由于飛機的高速移動性帶來的大多普勒頻移和航空移動通信環境的復雜性造成了非常高的隨機誤碼和突發誤碼。

TCP協議提供端到端的可靠傳輸,主要適用低誤碼率的環境。在高誤碼的航空移動通信系統中,現有的TCP協議性能急劇下降。因為地面網絡有極低的誤碼率,傳統TCP將所有的丟包都認為是擁塞造成的,而在移動的飛機通信中存在高隨機誤碼和突發誤碼,如果將誤碼丟包作為擁塞進行處理,勢必造成數據發送速率頻繁減小,嚴重影響吞吐量[1],所以高誤碼率是必須克服的問題。

網絡編碼[2]技術2000首次提出,極大地提高了有線網絡的吞吐量和可靠性,隨后新的網絡編碼算法(如隨機線性網絡編碼[2],應用于實際的網絡編碼方法如COPE[4])大量涌現。

J.K.Sundararajan等人在2009年首先提出了適應TCP傳輸的網絡編碼協議TCP/NC[5],該協議巧妙利用了編碼數據的無差異性,大大提高了TCP在無線環境中的性能。然而,該協議不能直接應用到航空移動通信領域,因為協議的成功實現需要依賴與對丟包率進行準確估計,這在航空移動通信高隨機誤碼和突發誤碼的環境中很難實現。鑒于這種局限性,本文提出了一種具有丟失感知的TCP編碼方法,通過接收端反饋丟失信息:第一,避免對鏈路丟包率的估計;第二,使編碼包丟失與冗余添加取得同步,防止無效冗余的出現,從而節約帶寬,提高吞吐量;第三,及時的冗余補齊,獲得比TCP/NC更低的解碼等待時延。

1 TCP/NC的基本思想和分析

1.1 TCP/NC基本規則

TCP/NC的主要思想是在TCP層和IP層之間添加一個網絡編碼層,具體操作參見文獻[6]。為了獲得更好的兼容性,選擇TCP-Vegas[7-8]作為傳輸層協議。

1.2 TCP/NC協議分析

為確保編解碼操作成功實現,TCP/NC協議需要對端到端丟包率做出較為準確的估計。假定端到端丟包率為pe,冗余因子理論最優R=1/(1-pe)。而由于航空移動通信的隨機誤碼和突發誤碼,導致pe的估計異常困難,冗余因子選擇對傳輸性能至關重要,選擇較小就無法掩蓋丟失,選擇較大又會造成冗余的浪費,兩者都會造成協議性能下降。因此,這種冗余添加方式并不適用于航空移動通信。

2 具有丟失感知的網絡編碼方法

2.1 方法主要內容

本文提出了一種具有有丟失感知的改進編碼方法TCP/NCLA。方法通過接收端反饋丟失信息的方法,使發送端可以針對性的發送冗余編碼包來補齊丟失,消除了原協議冗余發送與數據包丟失不同步所帶來的矛盾。通過這種方式,避免了對鏈路丟失概率的估計,可以更好的適應隨時變化的網絡狀況,避免了盲目發送冗余數據包導致的帶寬的浪費,提高傳輸性能。下面介紹對編碼包包頭的修改。

新方法修改了部分條目,并為與新編碼方法相關的條目分配了空間。包括數據包傳輸原因(TX_REASON),其中TX_REASON=0代表正常傳輸,TX_REASON=1代表由于超時而重傳,TX_REASON=2代表由于收到重復ACK而重傳;編碼窗口base(TX_BASE),即編碼窗口中最早的數據包的序列號值;編碼窗口大?。‥NCODED NUM),即編碼窗口中原始數據包的個數;編碼系數向量 (CODING COEFFICIENT VECTOR),即在有限域 GF(28)中隨機產生的編碼系數[4],每個系數占用1個字節,最大可存儲12個編碼向量,即最多編碼12個數據包;與ACK包相關的丟失標志(TCP_FLAG),其中TCP_FLAG=1標志存在丟失,需要發送冗余編碼包;刪除標志(DELETE_FLAG),其中DELETE_FLAG=1標志解碼成功,可以刪除編碼窗口中已解碼原始數據包等。如圖1,左邊為TCP包頭,右邊為修改后的編碼包頭。

圖1 TCP包頭和修改的TCP/NCLA包頭Fig.1 Header structure of TCP and NC layers

2.2 偽碼算法描述

發送端:發送端需要回應2種類型的事件—TCP層到達的數據包和IP層到達的ACKs包。

1)等待狀態

如果以下的事件發生,則按照如下規則進行響應;否則,保持等待狀態。

2)TCP到達數據包

a.如果到達的是用于連接管理的控制包,則將控制包傳輸給IP層并返回等待狀態。如果到達的數據包TX_REASON為0,則將數據包加入編碼窗口。

b.重復以下步驟TCP_FLAG+1次:

產生編碼窗口中數據包的線性聯合;添加編碼包頭,即隨機線性編碼包所對應的編碼向量,編碼包中編碼的原始數據包的個數ENCODED_NUM以及TX_BASE;將編碼包發送到IP層,記錄當前傳輸時間。

c.如果到達的數據包的傳輸原因TX_REASON為1或2,則重復以上步驟一次。

d.如果發送編碼包時,編碼窗口大小超出了事先設定的閾值T,再次重復以上步驟。

e.返回等待狀態。

3)從IP層到達ACK包

移除ACK包編碼包頭,提取標志位DELETE_FLAG和TCP_FLAG;若DELETE_FLAG=1,刪除編碼窗口中已解碼的原始數據包;更新當前接收時間,向TCP提交ACK包;返回等待狀態。

接收端:接收端需要回應兩種類型的事件—IP層到達的數據包和TCP sink到達的ACKs。

1)設置接收矩陣的秩

Rank:=0,接收端本地base值初試化。

2)等待狀態

如果以下的事件發生,則按照如下規則進行響應;否則,保持等待狀態。

3)從TCP sink到達的ACK包

如果ACK包是用于連接管理的控制包,則將控制包傳輸給IP層,然后返回等待狀態。否則忽略該ACK。

4)從發送端到達數據包

a.移除編碼包頭,提取編碼系數向量,加入解碼矩陣作為新一行,對解碼矩陣進行高斯消去法,更新矩陣的秩Rank;提取TX_BASE值,并更新本地base;提取ENCODED_NUM。

b.如果編碼包是更新的,Rank=Rank+1。

c.產生一個新的ACK,序列號為最新一個可見的數據包的序列號;如果ENCODED_NUM==Rank,表明當前解碼窗口解碼成功,DELETE_FLAG=1;如果ENCODED_NUM>Rank,表明傳輸過程中出現丟失,設置TCP_FLAG=1。

d.如果編碼包是非更新的,則表明該編碼包為無效冗余或該編碼包的編碼向量與解碼矩陣線性相關:若為第一種情況,則忽略不進行任何操作;若為后一種情況,則效果等同于該包丟失,設置TCP_FLAG=1。

e.對解碼緩存區中的編碼包進行解碼,將解碼出的原始數據包傳遞給TCP sink,最終返回等待狀態。

2.3 方法完整性描述

為保證方法的完整性,還需要一些相應的適應性調整。

a.在傳輸過程中,回復的ACK可能出現丟失,而其中可能包含丟失信息,TCP對于丟失的ACK可能會判斷為超時而重傳。當編碼窗口收到重傳的原始數據包時,不會再將該數據包加入到編碼窗口中,而是將編碼窗口中的數據包線性聯合發送一次。

b.接收端接收到編碼包,提取編碼向量加入到解碼矩陣中,對矩陣進行高斯消去,若該編碼包不是更新包(innovative packet),則按照出現丟失進行處理。

c.發送端編碼窗口根據經驗值選擇一個窗口大小閾值T,當超過該值則自動添加冗余發送。該措施是為了防止出現ACK丟失可能造成的冗余不足。

2.4 TCP網絡編碼方法時延評價

對于TCP網絡編碼方法,由于網絡編碼產生的原始數據包解碼等待時延是不可忽略的。接收端每當有數據包被看見則回復ACK,而從數據包被看見到能夠解碼會造成一定的時延,即解碼等待時延,該時延對于網絡編碼方法是無法避免的,且直接影響到TCP端到端的投遞時延。

本文采用原始數據包從產生時刻tis到解碼矩陣滿秩的時刻tid的平均值作為時延的評價指標。即原始數據包端到端平均投遞時延

3 仿真實驗

仿真性能分析是在NS2中實現的。仿真環境配置如下:仿真模型為飛機與地面基站直接通信,飛機距離基站 7 000 m;TCP 層使用的版本為 TCP-Vegas,Vegas參數選擇α=3,β=5,γ=2;數據包大小1 000字節;鏈路緩存區大小設置為50個數據包;每次仿真的持續時間為300 s,仿真結果是運行至少10次取平均值得到的結果。

3.1 吞吐量性能分析

針對 TCP-Vegas,TCP/NC 和 TCP/NCLA 3 種 方法,本文研究了吞吐量隨鏈路丟包率的變化情況。端到端的丟包率從0%~20%變化,如圖2,顯示了3種方法吞吐量的變化情況。

圖2 吞吐量與端到端丟包率關系Fig.2 Throughput vs.loss rate end-to-end

通過仿真結果可以看出,TCP-Vegas隨端到端丟包率的上升,吞吐量下降較快,說明TCP協議對于無線鏈路中的丟失比較敏感,丟失將直接導致發送端降低發送速率;在端到端丟包率較小時,TCP-Vegas的性能優于編碼方法,原因是編碼所造成的少許時延影響到傳輸性能,當丟失率進一步上升,兩種編碼方法與TCP-Vegas相比,吞吐量都有較大的提升;TCP/NCLA與TCP/NC相比吞吐量又有一定的提升,且隨著鏈路丟失率的增加,優勢更加明顯,如當鏈路丟失率為20%時,吞吐量提高21.24%。新方法之所以會有吞吐量的提高,是因為它采取了丟失反饋的機制,避免了冗余的浪費;若發送端發送了冗余編碼包,鏈路并未發生丟包,則接收端將它判斷為無效冗余,該冗余并未起到傳輸新數據的作用,卻占據了帶寬,造成了帶寬的浪費。

3.2 端到端平均投遞時延分析

對于端到端平均投遞時延,仿真結果如圖3,兩種編碼方法都隨著鏈路丟失率增加,端到端平均投遞時延逐漸增加,原因是隨著鏈路丟失率的增加,解碼矩陣的秩逐漸增加,需要的解碼等待時間也逐漸增加;TCP/NCLA與TCP/NC相比,端到端的平均投遞時延相對較小,平均降低約25.48%,原因是新方法能夠及時補齊丟失,而使解碼矩陣的秩保持在較小的水平,從而使解碼等待時延也較小,因而平均投遞時延也較小。

圖3 端到端平均投遞時延與端到端丟包率關系Fig.3 Delivery delay vs.loss rate end-to-end

4 結語

本文基于TCP/NC協議提出了一種適用于航空移動通信的具有丟失感知的新方法TCP/NCLA。

1)新方法將TCP網絡編碼應用到航空移動通信領域,并根據航空移動通信的特點進行適應性調整,很大程度上改善了航空移動通信中高突發誤碼和高隨機誤碼導致的吞吐量下降的問題。

2)新方法使用丟失反饋的方法,不再需要預知鏈路丟失率,在一定程度上解決了原方法由于包丟失與冗余添加的不同步性所導致的吞吐量與理論上限存在較大差距的缺陷。

3)改進后的方法使冗余添加更加及時,使解碼等待時間大大縮短,從而縮短了端到端的平均投遞時延。

TCP的網絡編碼方法要在實際中應用需要注意很多問題,TCP/NCLA在提高吞吐量和降低時延方面有所改善,然而還存在一些難題,如降低解碼復雜度等,這些都是在以后的工作中重點研究的方向。

[1]HANBALI A AL,ALTMAN E,NAINP.A Survey of TCP Over ad Hoc Networks[J].IEEE Communications Surveys&Tutorials,2005,7(3):22-36.

[2]AHLSWEDE R,CAI N,LI S-Y R,et al.Network information flow[J].IEEE Trans Inform Theory,2000,46(4):12.4-1216.

[3]KATTI S,RAHUL H,HU W,et al.XORs in the air:Practical wireless network coding[J].ACM SIGCOMM Computer Communication Review,2006,36(4):243-254.

[4]SUNDARARAJAN J K,SHAH D,MEDARD M,et al.Network Coding Meets TCP[C].Proceedings of IEEE INFOCOM,2009.

[5]SUNDARARAJAN J K,JAKUBCZAK S,MEDARD M,et al.BARROS J.Interfacing Network Coding With TCP:An Implementation[C].Proceedings of IEEE INFOCOM,2010.

[6] BRAKMO L S,PETERSONL L.TCP Vegas:End to end congestion avoidance on a global internet[J].IEEE JSAC,1995,13(8):1465-1480.

[7]SHIHADA B,ZHANG Q,HO P-H,et al.A novel implementation of TCP Vegas for optical burst switched networks[J].Optical Switching and Networking,2010,7(3):115-126.

[8] Network Simulator-ns-2[EB/OL].[2012-05-08].http://www.isi.edu/nsnam/ns/.

猜你喜歡
誤碼包率解碼
《解碼萬噸站》
支持向量機的船舶網絡丟包率預測數學模型
一種基于噴泉碼的異構網絡發包算法*
電磁線疊包率控制工藝研究
解碼eUCP2.0
ZPW-2000A電碼化軌道電路誤碼問題分析及解決方案
NAD C368解碼/放大器一體機
Quad(國都)Vena解碼/放大器一體機
一種基于CAN總線的誤碼測試方法
IEEE 802.15.4協議無線傳感器網絡干擾測試?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合