(1.廣州海格通信集團股份有限公司 廣州 510663)(2.武漢大學電子信息學院 武漢 430072)
一種高效的Ad Hoc網絡鏈路層數據級聯方法*
索思亮1黎卓南2
(1.廣州海格通信集團股份有限公司 廣州 510663)(2.武漢大學電子信息學院 武漢 430072)
在Ad Hoc網絡條件下,受接入層效率及高誤碼率等客觀因素影響,鏈路層傳輸性能較低。針對這一問題,提出了一種高效的鏈路層數據級聯方法,使發端的數據既能更好地匹配接入層協議,得到較高的吞吐量,又能減少高誤碼率對傳輸性能的影響。理論及仿真結果表明:與傳統的數據級聯方法相比,該方法可獲得更高的鏈路層吞吐量,提升了Ad Hoc網絡鏈路層的傳輸性能。
Ad Hoc網絡;鏈路層;數據級聯
ClassNumberTN929.5
Ad Hoc網絡是一種無線多跳復雜拓撲網絡[1~4],具有組網靈活、抗毀性強、支持用戶的移動性和動中通、易于快速部署等特點,在商業、軍事等領域獲得了廣泛的應用[5~8]。
目前商業上的鏈路層數據級聯方法大多是針對單跳網絡P2P或PMP通信場景設計的,常用的方法有兩種,一種是采用TLV(Type-Length-Value)封裝,通過增加類型頭和長度的方式來級聯數據幀;另一種是采用SLIP(Serial Line Internet Protocol)封裝,通過增加數據幀頭、幀尾識別符來級聯數據。不管采用哪種數據級聯方法,均不能較好地適配Ad Hoc網絡的多跳拓撲環境。
本文提出一種高效的Ad Hoc網絡鏈路層數據級聯方法,該方法借鑒了TLV封裝方法的思想,結合多跳網絡的實際需求進行改進,從而獲得更高的數據傳輸效率。
如前所述,數據級聯方法主要有SLIP封裝和TLV封裝兩種類型,下面分別介紹兩種方式的實現方式及優缺點。
2.1 SLIP封裝方法
SLIP封裝方法[9]是傳統的用于串口通信的鏈路層數據封裝方法。總體思路是通過END(C0H)標識數據幀的起始和結束,對于數據幀中與END編碼相同的內容,轉義成兩個字節ESC(DBH)和DCH,對于數據幀中與ESC編碼相同的內容,轉義成兩個字節ESC和DDH。
SLIP封裝下的數據級聯格式如圖1所示。

圖1 SLIP封裝數據級聯格式
SLIP封裝方法的優點在于實現簡單,開銷小,可適配MTU;缺點在于在高誤碼率條件下可能出現錯誤拼接分片數據的問題,導致傳輸速率下降。
2.2 TLV封裝方法
目前已提出多種TLV封裝方法,總體思路是在原始數據之前加入類型(或標識)和長度等字段,用以告知收端如何將級聯后的數據解級聯成原始數據。
方法1提出級聯數據封裝格式如圖2所示。

圖2 TLV-1封裝數據級聯格式
方法2[10]提出級聯數據封裝格式如圖3所示。

圖3 TLV-2封裝數據級聯格式
其中,方法1(TLV-1)的優點在于實現簡單;缺點在于無法準確適配鏈路層MTU,且開銷較大;方法2(TLV-2)的優點在于開銷較小,可插入高優先級數據;缺點在于無法級聯多個目標數據。
本文借鑒方法2的設計思路,在其基礎上加以改進,增加對多個目標數據級聯的功能,設計實現了優化級聯方法(TLV-N)。
在Ad Hoc網絡環境下,鏈路層需同時處理由應用層產生的數據和由網絡層轉發的數據,所以處理多目標數據的概率較高;另一方面,Ad Hoc網絡的信道資源緊缺,接入層通常采用分布式的信道分配方法,從而導致鏈路層發送數據的機會較少。綜合兩方面的因素,本文提出的TLV-N方法在TLV-2方法的基礎上,增加了多目標數據級聯的功能,可有效提升Ad Hoc網絡下鏈路層傳輸的效率。
另一方面,為更好適配Ad Hoc物理層傳輸條件,修改TLV-2方法的長度標識及級聯標識的配置,長度標識改為2字節且可以省略,級聯標識僅在報頭開始處添加,減少報頭開銷,以提升傳輸效率。下面分別介紹本方法在發送和接收兩端的處理流程。
3.1 發送端處理流程
1)在發送端處理流程中,由上層傳遞下來的數據包稱為SDU(Service Data Unit,服務數據單元),由鏈路層處理并往下層傳遞的數據包稱為PDU(Protocol Data Unit,協議數據單元)。一個PDU可包含一個或多個SDU,也可包含不完整的SDU。
2)每個PDU在報文開始處添加序列號(Sequence Number)和級聯字段(Cascade Filed),序列號用于收端識別空中是否有丟包,級聯字段用于收端識別后續的是長度標識還是數據內容。
3)發送端的具體處理流程主要分為兩個分支,一個是待發送緩存中沒有剩余分片數據,另一個是待發送緩存中含有上次發送剩余的分片數據。因為兩個分支的后續處理流程大致相當,所以下面只介紹第一個分支的處理流程。該分支處理流程分為四個場景,分別是完整發送一個SDU、級聯發送多個SDU、不完整發送一個SDU、級聯發送多個完整的SDU和一個不完整的SDU。
(1)完整發送一個SDU處理較為簡單,序列號順序遞增(其它場景處理與此相同),級聯字段置為單包標識,后續緊跟的是SDU目標地址,不需要長度標識即可完成PDU的封裝;
(2)級聯發送多個SDU時,級聯字段置為級聯標識,后續緊跟的是第一個SDU的目標地址和長度標識,后續每個SDU前均帶一個目標地址和長度標識;
(3)不完整發送一個SDU是由于鏈路層MTU小于SDU長度所致,遇到這種情況,級聯字段置為分片標識,后續緊跟的是目標地址,其后的長度標識設置成特殊標識;
(4)最后一個場景下,級聯字段置為級聯標識,完整SDU級聯方法與場景二相同,最后一個不完整SDU處理與場景三相同。

圖4 數據級聯發送端處理流程
3.2 接收端處理流程
1)接收端處理流程首先需要判斷接收的數據序號是否連續,如果序號不連續,則需要將接收緩存中的數據包刪除,因該原分片數據的后續內容已經丟失。
2)接著根據級聯字段的值分為三個分支,分別是接收單包數據分支、接收級聯數據分支和接收分片數據分支。
(1)級聯字段為單包標識時,收到的數據是完整的一包SDU,將目的地址為本機的SDU內容提取出來并發往上層即可;
(2)級聯字段為級聯標識時,收到的數據是多包SDU集合,將目的地址為本機的SDU分別解級聯出來并發往上層,需注意判斷最后一包的SDU是否為完整數據,若非完整數據則需將分片內容存入對應源地址的接收緩存;
(3)級聯字段為分片標識時,收到的數據是以分片數據起始的,若分片數據的目的地址為本機,則將其與對應緩存中的數據拼接起來,如果后續有其它級聯數據,則需繼續處理,處理方式與分支二相同。

圖5 數據級聯接收端處理流程
3.3 數據PDU格式

圖6 鏈路層級聯數據格式
使用Matlab仿真工具研究在模擬Ad Hoc環境下四種數據級聯方法的鏈路層性能,主要考察多目標節點下的鏈路層吞吐量和無線誤碼條件下的鏈路層誤幀率。
4.1 鏈路層吞吐量
綜合兩方面的因素,Ad Hoc網絡下的鏈路層數據級聯方法需具備較強的多目標數據處理能力,而吞吐量指標是該能力的有效反映。
仿真程序以隨機產生的多目標數據為仿真輸入,驗證各方法的性能。如圖7所示,橫坐標是業務負荷,這里采用的是歸一化方式,1表示滿負荷發送業務;縱坐標是各級聯方法的吞吐量,也采用歸一化方式表示。
由圖可知,隨著業務負荷的增大,各級聯方法的吞吐量也在增加,但增加幅度有所區別。本文提出的TLV-N方法由于引入了多目標數據級聯處理,在吞吐量方面顯著優于其它方法。

圖7 鏈路層吞吐量仿真結果
4.2 鏈路層誤幀率
Ad Hoc環境下的無線誤碼率較高,從而可能導致某些分片數據的丟失,在這種情況下,數據級聯方法是否具備容錯能力,減少鏈路層誤幀率,是關鍵考核指標之一。
仿真程序以隨機產生的多目標數據為仿真輸入,并設定無線丟包率為橫軸坐標。由圖可知,隨著無線丟包率的逐漸增大,各級聯方法的鏈路層誤幀率也在逐步增加,SLIP方法由于不具備錯誤糾正能力,所以誤幀率較高,而TLV的三種方法在誤幀率方面基本相當。

圖8 鏈路層誤幀率仿真結果
針對傳統的鏈路層數據級聯方法不能有效匹配Ad Hoc網絡的需求,本文在傳統方法的基礎上,提出了一種高效的鏈路層數據級聯方法,通過設計多目標數據級聯處理、解級聯容錯處理等措施,提升了其在Ad Hoc網絡下的性能。仿真結果表明,本方法在多目標數據業務條件下比傳統方法獲得了更高的吞吐量,在無線誤碼條件下也維持了較低的誤幀率,提升了Ad Hoc網絡鏈路層性能。
[1]王金龍,王呈貴,吳啟暉.Ad Hoc移動無線網絡[M].北京:國防工業出版社,2004.
[2]陳林星,等.移動Ad Hoc網絡:自組織分組無線網絡技術[M].北京:電子工業出版社,2012.
[3]任品毅,五熠晨.移動Ad Hoc網絡[M].西安:西安交通大學出版社,2012.
[4]于宏毅.無線移動自組織網[M].北京:人民郵電出版社,2005.
[5]盛敏.移動Ad Hoc網絡關鍵技術研究[D].西安:西安電子科技大學,2003.
[6]張蕾.Ad Hoc綜述[J].電子科學技術評論,2005(5):35-38.
[7]王英健,武永華,姚尹雄.移動Ad Hoc網絡的QoS保障技術綜述[J].計算機應用研究,2004(4):4-7.
[8]盧先領,孫亞民,周靈,等.Ad Hoc無線網絡跨層設計綜述[J].計算機科學,2007(10):24-26.
[9]于世潔,徐勇航,張帆.UDP協議在微小衛星通信上的分析與實現[J].計算機科學,2013(1):22-25.
[10]丁穎哲,王艷紅,胡灝.一種數據分段級聯和重組方法.中國.CN1780291A[P].2006-05-31.
AnEfficientLinkLayerDataCascadeMethodofAdHocNetwork
SUO Siliang1LI Zhuonan2
(1.Guangzhou Haige Communications Group Incorporated Company, Guangzhou 510663)
(2.School of Electronic Information, Wuhan University, Wuhan 430072)
In the Ad Hoc network condition, by the low efficiency of MAC Layer and the high BER of wireless factors, the performance of Link Layer is low.To solve this problem, an efficient method is proposed.This method achieves high throughput by good matching, and also reduces the influence of high BER.According to the theory and simulation result, compared with traditional methods, this method can achieve higher link layer throughput;upgrade the performance in Ad Hoc network.
Ad Hoc network, link layer, data cascade
2014年1月11日,
:2014年2月24日
索思亮,男,碩士,工程師,研究方向:自組織網絡協議研究。黎卓南,男,研究方向:無線通信網絡研究。
TN929.5DOI:10.3969/j.issn1672-9730.2014.07.022