, ,,
(1.中國電子科技集團公司 第五十四研究所,石家莊 050081;2.微波散射通信專業(yè)部,石家莊 050081)
隨著“網絡中心戰(zhàn)”、“網電一體戰(zhàn)”[1]概念的提出,自組網在組網通信中扮演著越來越重要的角色,逐步成為當前數字化戰(zhàn)場通信的首選裝備,是各國戰(zhàn)術互聯網的重要技術[2]。
在早期通信過程中,抗干擾多為設備級的抗干擾,一般認為只要設備的抗干擾性能達到某種程度就自然解決了抗干擾問題。而在自組網應用環(huán)境中,客觀或人為的電磁干擾會直接影響傳輸路徑的建立和數據分組的發(fā)送,直觀地導致丟包現象的出現,并且干擾范圍和強度的不規(guī)則性常常導致通信節(jié)點對之間路徑傳輸受到限制甚至產生路徑失敗。網絡層的入侵能夠在底層設備檢測正常的情況下造成傳輸路徑中斷、網絡癱瘓,進而無法滿足上層業(yè)務對網絡的需求,具有很強的隱蔽性和破壞性。因此,在傳統物理層、鏈路層的抗干擾技術之外,研究網絡層相應的抗干擾措施[3]具有十分重要的意義。
本文基于自組網實際應用中的抗干擾、抗截獲需求,提出一種多路由冗余傳輸算法,融合多徑路由協議和冗余編碼的特點,源節(jié)點處對數據包進行冗余編碼,利用多徑路由發(fā)現的多條傳輸路徑并行傳輸編碼包,中間節(jié)點負責編碼包的轉發(fā),目的節(jié)點只需收到足夠數量的編碼包即可譯碼恢復出全部原始信息。
本文利用OPNET Modeler平臺對實際網絡環(huán)境進行仿真建模,充分模擬通信過程中因電磁干擾而產生的丟包現象,以及在無線空間對鏈路的偵聽,測試通信節(jié)點對之間的數據傳輸情況與偵聽節(jié)點的數據包偵收數量。試驗表明,多路由冗余傳輸算法能有效降低干擾丟包帶來的影響,提高信息傳輸的可靠性,增強網絡的抗干擾和抗截獲性能。
本文提出的多路由冗余傳輸算法首先利用MP-OLSR(Multipath Optimized Link State Routing)[4]路由協議計算得到源節(jié)點到目的節(jié)點的多條傳輸路徑;當有通信需求時,源節(jié)點處對原始信息進行冗余編碼,再利用計算得到的多條傳輸路徑并行傳輸編碼包,中間節(jié)點只負責數據包的轉發(fā);由于采用了冗余編碼,目的節(jié)點只需要接收到足夠數量的編碼包即可譯碼恢復出全部信息,無需接收全部編碼包,能有效抵抗干擾丟包給信息傳輸帶來的影響;另外,由于采用了多徑路由機制,即使敵方在無線空間內的偵聽到了某條鏈路的傳輸信息,也只能獲得部分編碼包,不足以恢復出完整的原始信息。多路由冗余傳輸算法框架圖如圖1所示。
圖1 多路由冗余傳輸算法框架圖
其中:①源節(jié)點將原始信息分為K個原始數據包;②對K個原始數據包進行冗余編碼得到N個編碼包;③無線空間傳輸,出現丟包;④目的節(jié)點處根據接收到的數據包恢復出K個原始數據包;⑤獲取全部原始信息。
目前的多徑路由協議大多數是在典型單徑路由協議的基礎上針對數據傳輸可靠性、路由容錯能力和擁塞控制等需求進行改進得到的。MP-OLSR路由協議最早由易甲子等人提出[5],繼承了OLSR協議適用于大規(guī)模網絡的特點,支持進行分簇設計。作為OLSR路由協議的擴展版本,MP-OLSR協議保留了OLSR協議中基本的路由控制消息和拓撲信息處理機制,核心機制在于采用多徑Dijkstra算法計算傳輸路徑[5]。
多徑Dijkstra算法:
多徑Dijkstra算法的基本思想是多次迭代使用Dijkstra算法,在每次迭代中發(fā)現一條源節(jié)點s到目的節(jié)點d的路徑,每次迭代之后增加已使用過的鏈路與節(jié)點的權值,避免求出已有的路徑。與標準的Dijkstra算法不同,多徑Dijkstra算法使用了兩個成本函數以產生節(jié)點分離(Node Disjoint)或者鏈路分離[3](Link Disjoint)的多條鏈路,基本算法流程如下:
圖2 多徑Dijkstra算法流程
該算法基于圖G=(V,E,C)點(s,d)∈e2和一個正整數N。數組(P1,P2,...PN)是由標準Dijkstra算法得到的從點s到達點d的最短路徑。GetPath(SourceTreei,n)從源樹SourceTreei中得到的到達節(jié)點n的最短路徑;Reverse(e)返回鏈路e的反向鏈路;Head(e)返回鏈路e的兩個頂點。當使用跳數HopCount作為權值時,C取默認值1[6]。
fp和fe是兩個成本函數:fp增加上一條最短路徑中的每一段鏈路的權值,fe增加上一條路徑所經過的節(jié)點的權值,二者共同作用決定下一條路徑的計算。不同的fp和fe組合決定所得路徑是鏈路相異還是節(jié)點相異。
多徑Dijkstra算法的舉例如圖3所示,其中設置成本函數fp=3c,fe=2c,c=1:
圖3 多徑Dijkstra算法舉例
1)第一次計算時,得到最短路徑S→A→D,路徑總權值為2;
2)第一次計算完成后,成本函數fp增加鏈路S→A與A→D的權值,fe增加鏈路A→B和A→D的權值;
3)第二次計算時,得到最短路徑S→B→C→D,路徑總權值為3;
4)第二次計算完成后,成本函數fp增加鏈路S→B、S→C和C→D的權值,fe增加鏈路B→A和C→A的權值;
5)第三次計算時,得到最短路徑S→A→C→D,路徑總權值為10。
本文提出的多路由冗余傳輸算法中,冗余編碼負責將K個原始數據包編碼為N個編碼數據包(N>K)。在此介紹噴泉碼的基本概念[6]:該種編碼可以將K個原始數據分組生成任意數量的編碼分組,接收端只要收到其中任意M(M>K)個編碼分組即可譯碼以較高的概率成功恢復出全部原始分組??紤]到噴泉碼與本文提出多路由冗余傳輸算法中冗余編碼算法具有高度的契合性,本文中即以噴泉碼作為冗余編碼算法進行分析研究。
LT(Luby Transform)碼是一種實用型噴泉碼,編譯碼方法簡單,編譯碼復雜度和譯碼開銷較低,編碼冗余度可以根據需要設置,靈活可控。LT碼編碼分組的產生流程如下:
1)根據設計的度函數分布Ω隨機選取編碼分組的度數d;
2)從K個原始分組中等概率地隨機選取d個;
3)將這d個原始分組模二和,生成一個編碼分組;
4)重復(1)(2)(3)步驟,直到產生所需數量的編碼分組。
LT碼性能的關鍵在于選擇合理的度分布函數Ω以產生編碼矩陣[7]。目前公認的在仿真性能中比較好的兩種度分布函數分別為理想孤波分布(Ideal Soliton Distribution,ISD)和魯棒孤波分布(Robust Soliton Distribution,RSD)[8]。
理想孤波分布:定義ρ(d)為:
(1)
(2)
其中:
(3)
魯棒孤波分布:
(4)
(5)
(6)
(7)
把函數τ(i)與ρ(i)相加并作歸一化處理即可得到魯棒孤波分布函數μ(i):
β=∑i(ρ(i)+τ(i))
(8)
(9)
其中為接收端接收到M個編碼數據分組時譯碼失敗的概率;M=Kβ為以至少以1-ε的概率成功譯碼時所需要接收到的數據編碼分組數量;θ為小于1的任意常數。
當以魯棒孤波分布作為LT碼的編碼度分布函數時,能夠以接近最少數量的編碼數據分組恢復所有的原始數據分組。在M.Luby的經典理論[9]中,研究討論了以魯棒孤子分布作為度函數時,若需要較好地還原信源信息,接收端需要接收到M個已編碼的信息數據包[8]?;诖耍疚难芯恐屑匆贼敯艄虏ǚ植甲鳛長T碼的編碼度分布函數,同時以目的節(jié)點接收到數據包數量來判定目的節(jié)點是否能夠正確恢復全部原始信息。
目前主流的網絡仿真軟件主要有OPNET、NS2、OMNET、Qualnet等[10]。OPNET軟件最初由麻省理工大學的兩個博士創(chuàng)立,作為一款商業(yè)軟件其操作界面方便友好,內置豐富的庫函數和模型庫,既有各種基本模塊以供調用,也支持用戶根據需要自定制模塊。另外,OPNET采用離散時間驅動的模擬機制,較之于時間驅動,計算效率有很大的提高。
本文中提出的多路由冗余傳輸算法擬基于OPNET軟件系列中的OPNET Modeler平臺進行建模分析。
本文中網絡模型及主要網絡參數配置如圖所示如圖4和表1所示。
圖4 網絡域模型
各節(jié)點的節(jié)點域模型設計如圖5所示,主要包括應用層模塊(src、sink),序列號分配模塊(assign),數據包編碼模塊(code_buffer),路由控制層(route),數據鏈路層模塊(mac_TDMA),和物理層模塊(rr_0、rt_0、RX、TX),其中:
表1 網絡主要參數配置
圖5 節(jié)點域模型
1)src、sink:模擬通信過程中的上層業(yè)務;
2)assign:對src產生的數據包封裝序列號,以及添加控制域字段;
3)code_buffer:對原始數據包進行冗余編碼;
4)route:路由協議控制報文處理模塊,負責計算數據分發(fā)路徑;
5)mac_TDMA:數據鏈路層協議模塊,采用TDMA協議;
6)rr_0、rt_0、RX、TX:無線收發(fā)信機組及收發(fā)天線,實現信號的接收和發(fā)送。
引入冗余度參數σ:
(10)
其中:N為編碼生成包數量,K為原始數據包數量??紤]到丟包數量與實際網絡規(guī)模和原始數據包數量有關,試驗中統計了圖4所示的16節(jié)點網絡中采用多路由冗余傳輸算法時源節(jié)點發(fā)送不同原始數據包數量對應目的節(jié)點接收到的數據包數量,如圖6所示。
圖6 冗余度與收包數量關系
由圖6可知,當冗余度σ=0即不采用冗余編碼時,目的節(jié)點接收到的數量小于解碼所需包的數量,即由于干擾丟包現象的存在,目的節(jié)點無法恢復全部原始數據。當冗余度σ分別為45.0%、50.0%、55.0%時,對比可知:當σ=45.0%時,只有當原始數據包數量較大時,才能保證接收包的數量大于解碼所需的數據包數量,不具有穩(wěn)定的解碼恢復數據能力;當σ=50.0%或σ=55.5%時,對于不同數量的原始包,目的節(jié)點接收包數量均大于解碼所需的數據包數量,即目的節(jié)點能夠完整地恢復出全部原始信息。在下文多路由冗余傳輸算法仿真過程中的冗余度σ即設置為50.0%,此時原始數據包數量與解碼所需數據包數量對應關系如表2所示。
表2 解碼所需編碼包與原始數據包數量對應關系
在仿真過程中,設置原始數據包數量分別為K=20和K=50,統計對比了傳統單徑OLSR協議與多路由冗余傳輸算法下通信節(jié)點對之間收發(fā)包數量與監(jiān)聽節(jié)點偵聽包數量情況。
圖7 OLSR協議中收發(fā)包情況
由圖7可知,采用傳統單徑OLSR協議情況下,當原始數據包數量K=20和K=50時,目的節(jié)點接收到的數據包數量分別為18包和48包,兩種情形下因干擾產生的丟包數為2包。由于源節(jié)點不采用任何冗余編碼措施直接發(fā)送原始數據包,目的節(jié)點必須接收到全部數據包才能正確恢復全部原始信息。因此由于丟包現象的存在,目的節(jié)點不能完全恢復出全部原始信息。
圖8 多路由冗余傳輸算法中收發(fā)包情況
由圖8可知,采用多路由冗余傳輸算法情況下,當原始數據包數量K=20和K=50時,編碼包數量分別為N=30和N=75(σ=50.0%),目的節(jié)點接收到的數據包數量分別為29包和69包,產生的丟包數分別為1包和6包。由于當所有原始數據包產生完畢后才開始編碼包的產生與發(fā)送,因此編碼包發(fā)送時間略滯后于原始數據包的產生。由表2可知,即使存在丟包現象,目的節(jié)點仍能夠收到足夠的編碼包恢復出原始信息,驗證了多路由冗余傳輸算法的抗干擾性能。
圖9為通信過程中設置的監(jiān)聽節(jié)點(monitor)的偵聽包情況。由圖可知,監(jiān)聽節(jié)點偵聽數據包數量分別為10包和26包。由表2可知,監(jiān)聽節(jié)點截獲的數據包數量遠遠不足以恢復出全部原始信息,同時由于源節(jié)點處采用了冗余編碼措施,此時截獲的數據包只是部分編碼包,不具有任何原始數據的直接信息,驗證了多路由冗余傳輸算法的抗截獲性能。
圖9 監(jiān)聽節(jié)點偵聽包情況
本文針對自組網通信系統中抗干擾、抗截獲性能需求提出了一種多路由冗余傳輸算法,該算法有效融合了多徑路由協議和冗余編碼的特點,具有無需重傳的優(yōu)點,增加了網絡數據傳輸的容錯率。經試驗證明,與傳統的單徑路由協議相比,該算法能有效提高網絡的抗干擾、抗截獲性能,保證通信傳輸的可靠性。另外,有關冗余度的與網絡節(jié)點數的關系以及多路由冗余傳輸算法下MAC層協議機制等問題,需要進一步研究分析。
[1] 楊同茂. 軍事通信抗干擾技術的發(fā)展現狀及趨勢[J]. 通信技術, 2014, 47(7): 704-712.
[2] 秦 茜, 宋志群, 劉玉濤. 一種固定分配與動態(tài)競爭結合的MAC層協議算法[J]. 無線電工程, 2017, 47(2): 15-19.
[3] 王嘉欣. 移動Ad Hoc網絡抗干擾可靠路由技術[D]. 成都: 電子科技大學, 2013.
[4] Yi J, Adnane A, David S,et al. Multipath optimized link state routing for mobile ad hoc networks[J]. Ad Hoc Networks. 2011(9):28-47.
[5] 文 靜. MP-OLSR在船舶自組網中的優(yōu)化研究[D]. 廣州: 華南理工大學, 2014.
[6] 姜 博, 晏 堅, 蔣衛(wèi)東. 噴泉碼及其在通信網絡中的應用[J]. 數字通信世界. 2007, 10: 64-67.
[7] 時琳川, 徐松毅, 杜文舉. 噴泉碼在窄帶通信中的研究[J]. 無線電通信技術. 2017, 43(1): 19-22.
[8] 錢晉希. LT碼編譯碼算法優(yōu)化及應用研究[D]. 哈爾濱: 哈爾濱工程大學, 2013.
[9] Mackay D J C. Fountain Codes[C]. IEEE Proceeding-Communications, 2005: 1062-1068.
[10] 胡志偉, 梁加紅, 陳 凌, 等. 移動自組網仿真技術研究綜述[J]. 系統仿真學報, 2011, 23(1): 1-6.