胡 鵬,宋小全,孫 旭,夏 燁
(1.北京跟蹤與通信技術研究所,北京 100094;2.中國衛星海上測控部,江蘇 江陰 214400)
?
基于OMNET++的隨機網絡編碼仿真實現
胡鵬1,宋小全1,孫旭1,夏燁2
(1.北京跟蹤與通信技術研究所,北京 100094;2.中國衛星海上測控部,江蘇 江陰 214400)
隨機網絡編碼具備提高無線傳感器網絡的傳輸可靠性,降低網絡能量消耗等特點,其應用設計缺少網絡仿真驗證方法。在OMNET++仿真平臺上設計了數據包緩存處理機制,并實現了有限域編碼運算。在此基礎上設計了獨立于其他節點模塊的隨機網絡編碼模塊,將其添加到網絡節點模型中。使用該網絡節點模型建立傳感器網絡,在多路徑路由方式下,對應用隨機網絡編碼模塊前后數據包傳輸可靠性、延時和有效吞吐量網絡特性進行評估,為設計應用隨機網絡編碼提供一種仿真設計思路。
隨機網絡編碼;OMNET++;多路徑傳輸;緩存機制;有限域
隨機網絡編碼是一種分布式網絡編碼方式,它能適應拓撲動態變化、無中心節點的網絡。隨機網絡編碼提出推動了網絡編碼走向實用,使得網絡編碼不再受限于確定的網絡拓撲以及集中式的算法[1]。在傳感器網絡中應用隨機網絡編碼能提升網絡的傳輸可靠性[2-5],降低網絡中的能量消耗[6]等。文獻[2-5]都是通過纏繞多路徑模型計算驗證了應用網絡編碼后網絡傳輸可靠性的提升,文獻[6]在OMNET++上通過能量模型計算評估了應用網絡編碼后的能量消耗,文獻[7]提出了一種基于部分網絡編碼的機會路由機制,都是一種數值計算結果,并未實現對數據包的作編碼、緩存和傳輸等仿真處理,未能實現網絡仿真。祝琳[8]針對水聲網絡提出了基于網絡編碼的路由協議,并利用NS2進行了網絡仿真,但并未進行模塊化的設計,難以擴展。本文在OMNET++仿真平臺上設計隨機網絡編碼模塊,添加到網絡中的節點,實現數據包層級的隨機網絡編碼仿真,能對應用隨機網絡編碼的網絡數據包傳輸可靠性、延時和吞吐量等網絡特性進行評估。
1.1OMNET++
OMNET++[6]是一種離散事件仿真器,主要由6個部分組成:仿真內核庫(Simulation Kernel Library,Sim)、網絡描述語言的編譯器(Network Description Compiler,NEDC)、圖形化的網絡編輯器(Graphical Network Description Editor,GNED)、仿真程序的圖形化用戶接口Tkenv、仿真程序的命令行用戶接口Cmdenv和圖形化的向量輸出工具Plove。OMNeT++具有模塊化的結構, OMNeT++的仿真體系結構(箭頭表示2組件之間的交互)如圖1所示。 Sim為嵌入式仿真內核,是處理和運行仿真的核心。當有事件發生時,仿真內核就調用執行模型中的模塊。在Sim和用戶接口CMDENV或TKENV之間是一個通用接口ENVIR,用戶可以通過替換用戶接口來定義仿真的運行環境。可執行模塊是為仿真設置的模塊,包括在模型組件庫中所有組件的實例對象(如模塊、管道等)。模型組件庫包含所有已經編譯好的簡單模塊和復合模塊,仿真模型包含一些常用的網絡協議、應用和通信模型。

圖1 OMNET的高層體系結構
OMNeT++仿真要經歷模型建立、模擬實現和結果分析3個階段[10]。OMNeT++采用混合式的建模方式,同時使用網絡描述(Network Discription,NED)語言和C++進行建模。NED是模塊化的網絡描述語言,包括大量的對組件的描述,如通道、簡單和復合模塊的類型。NED還可以實現動態加載,便于更新仿真模型的拓撲結構。C++用來實現模型的仿真和消息的處理等功能NED文件可以編譯為C++代碼,連接到仿真程序中。OMNeT++中的消息通過CMessage類定義,消息傳輸由簡單模塊完成,有端口傳輸和直接傳輸2種方式。端口傳輸是通過模塊之間的端口和連接,按照一定的規則,將消息逐步傳輸到目的模塊。而直接傳輸是通過仿真內核直接傳輸消息到目的模塊。通過這套機制,可以靈活地使用C++或者OMNeT++本身定義的幾個基本類,就可以實現對復雜網絡模型的仿真。
1.2隨機網絡編碼原理
信源以m為單位,將原始數據包分割,由同一原始數據包分割而來的m小個數據包X1,X2…Xm屬于同一分組,用分組號識別。從有限域Fq中隨機地選擇m個數gi1,gi2,…,gim作為編碼系數,對X1,X2…Xm進行編碼組合,編碼后變成了M(>m)個數據包,源端冗余系數α=M/m ,用Y1,Y2,…,YM表示,即

這里執行的都是有限域的加法、乘法運算規則。信源把編碼數據包Y1,Y2,…,YM的組標志和相應的編碼系數組成的編碼向量

圖2 隨機網絡編碼原理
應用隨機網絡編碼時需要進行有限域運算,中間節點需要對編碼數據包進行緩存。同時源節點需要通過多條傳輸路徑將編碼數據包傳輸至目的節點,才能在中間節點實現數據包之間的融合。因此我們需要在隨機網絡編碼模塊實現有限域運算,建立緩存及多路徑路由機制。
2.1有限域運算實現
有限域(Finite Field)F:域F中的元素是有限的,又稱為伽羅華域(Galosis Field)。通常計算機領域采用二進制表示,有限域大小記為q,則相應的有限域中記為F2q,包含了2q個元素。與整數域,實數域相比,有如下特點:
① 只包含有限個元素,如F22={0,1,2,3},而所有運算在該域內是封閉的,不會超出這4個數;
② 為保證有限域內的加法和減法的封閉性,采用XOR執行加法和減法;
③ 為保證除法和乘法的封閉性,在執行乘法和除法時采取多項式運算,然后模上本有限域對應的本原多項式。
考慮到有限域運算時需要模上本原多項式,復雜度較高。同時,其運算在域內是封閉的,將任意2個數運算結果通過二維數組記錄,實時計算時就能通過查表方式獲得有限域內的四則運算結果。在此基礎上,實現有限域的矩陣運算,包括矩陣相乘、求逆和求秩。
2.2緩存處理機制


圖3 隨機網絡編碼下的數據包結構
2.3網絡節點模型
網絡節點模型如圖4所示。

圖4 網絡節點模型
網絡仿真時,未添加隨機網絡編碼模塊時節點模型如圖4(a)所示,網絡節點由應用模塊產生數據包,傳遞給路由模塊,路由模塊按照路由協議傳輸給該數據包下一節點的隊列,再經連接鏈路傳遞給下一節點。添加隨機網絡編碼模塊后節點模型如圖4(b)所示,應用模塊產生的數據包首傳遞給網絡編碼模塊進行拆分編碼,再傳遞給路由模塊。鏈路隊列接收到其他節點傳輸過來的數據包后,如果是普通數據包則交付給路由模塊處理;如果是編碼數據包,則交付給網絡編碼模塊進行再編碼后傳遞給路由模塊進行處理,或者解編碼后交給應用模塊處理。網絡編碼模塊獨立于節點其他模塊,能獨立進行數據包編碼、解編碼,只需規范好接口就能與其他模塊連接好。隨機網絡編碼模塊中分組大小,冗余系數,有限域大小都能進行選擇設置,仿真時就能通過調整參數獲得更加適用目標網絡的參數。網絡編碼模塊獨立于其他模塊,在仿真時可以將其添加進不同的網絡節點,選擇不同的應用模塊及路由模塊進行實驗。
通過NED語言建立的網絡場景如圖5所示,定義節點間的連接通道以及節點內部模塊的連接關系。仿真時假設節點間通過鏈路狀態信息的交互,在本地形成了網絡中其他節點的跳數表。源節點傳輸數據包時,在包頭中添加到目的節點的跳數標簽,每轉發一次,條數標簽減1。中間節點接收到數據包后,當判斷自身到目的節點的跳數比數據包中的跳數標簽要小,則進行轉發,從而在數據轉發過程中形成了一種多路徑。如圖6所示,我們在一個矩形區域內部署了26個網絡節點,隨機選取其中2個節點分別為源節點(2號節點)和目的節點(17號節點),形成的多路徑路由如圖中灰色節點(1,7,8,9,12,14,16,18號節點)所示。

圖5 網絡場景
仿真參數設置如下:鏈路傳輸帶寬為2 Mb/s,文件大小為2 MB,原始數據長度為1 024 Bytes,組大小m=4,節點緩沖延時為10 ms,源端冗余系數α=1.25,誤碼率設置從1×10-5~9×10-5變化。
仿真時設置單個原始數據包長度為1 024 Bytes,應用網絡編碼時,將原始數據包拆分為4個長度為256 Bytes的數據包進行編碼處理。源節點與目的節點之間傳輸一個2 MB大小的文件,設置變化的鏈路傳輸誤碼率對傳輸可靠性、延時和有效吞吐量進行統計。同一網絡,在多路徑傳輸方式下,對比應用隨機網絡編碼模塊前后數據包傳輸可靠性、延時和有效吞吐量統計結果如圖6所示。

圖6 仿真結果
仿真結果驗證了應用隨機網絡編碼后的多路徑傳輸方式(Network Coding Based Multipath Routing,NCMR)網絡傳輸可靠性和有效吞吐量都要優于純粹的多路徑傳輸方式(Multipath Routing,MR)。應用隨機網絡編碼后,因為緩存機制的應用,單個數據包的傳輸延時相較于純粹多路徑傳輸方式更長。純粹多路徑傳輸方式,從同一源節點到目的節點,數據包若傳輸成功,則傳輸延時是一樣,但因為傳輸可靠性差,傳輸同樣大小的文件需要更多時間,也就是有效吞吐量更低。
本文在OMNET++仿真平臺上設計了隨機網絡編碼模塊,其添加到網絡節點模型中,并與多路徑傳輸方式對比,驗證了應用隨機網絡編碼后網絡數據包傳輸可靠性、延時和吞吐量等網絡特性能夠改善。隨機網絡編碼模塊獨立于其他節點模塊,可進行參數設置,可設計不同的路由模塊、應用層模塊和鏈路模型進行組合,完成不同應用場景的網絡仿真,為應用隨機網絡編碼提供了一種仿真設計思路。
[1]CHOU P A,WU Y,JAIN K.Practical Network Coding[C]∥Allerton Conference On Communication,Control and Computing,2003:25-35.
[2]GUO Z,XIE P,CUI J H,et al.On Applying Network Coding to Underwater Sensor Networks[C]∥Proceedings of the 1st ACM International Workshop on Underwater Networks.ACM,2006:109-112.
[3]YANG Yu-wang,ZHONG Chun-shan,SUN Ya-min,et al.Network Coding Based Reliable Disjoint and Braided Multipath Routing for Sensor Networks[J].Journal of Network and Computer Applications,2010,33(4):422-432.
[4]趙煒,唐振民,紀淑標,等.基于網絡編碼的傳感網多徑模型分析[J].計算機工程與設計,2012,33(3):875-879.
[5]宋小全,胡鵬,孫旭.基于局部重傳和網絡編碼的可靠性傳輸機制[J].北京郵電大學學報,2014,37(4):51-55.
[6]WANG Lei,YANG Yu-wang,ZHAO Wei.Network Coding-based Multipath Routing for Energy Efficiency in Wireless Sensor Networks[J].Journal on Wireless Communicaitons and Networking,2012(1):1-15.
[7]鄔晨,何加銘,曾興斌,等.一種新的基于部分網絡編碼的機會路由機制[J].無線電通信技術,2014,40(2):24-27.
[8]祝琳,江志浩,李迅.基于網絡編碼技術的水聲網絡路由協議研究[J].無線電通信技術,2016,42(1):24-27.
[9]夏鋒.OMNET++網絡仿真[M].北京:清華大學出版社,2013.
[10]趙永利,張杰.OMNET++與網絡仿真[M].北京:人民郵電出版社,2012.
胡鵬男,(1989—),碩士研究生。主要研究方向:無線網絡、網絡編碼。
宋小全男,(1969—),博士,研究員。主要研究方向:雷達工程、信息網絡。
Simulation of Random Network Coding on OMNET++ Platform
HU Peng1,SONG Xiao-quan1,SUN Xu1,XIA Ye2
(1.BeijingInstituteofTrackingandTelecommunicationTechnology,Beijing100094,China;2.ChinaSatelliteMaritimeTrackingandControlDepartment,JiangyinJiangsu214400,China)
The application of RNC (Random Network Coding) can improve the transmission reliability and reduce energy consumption for wireless sensor network.But network simulation method is lacking for the application and design of RNC.Packets buffer mechanism is designed and finite field calculation is implemented on OMNET++ platform.Based on this work,a RNC module is designed,which is independent of other node modules.The RNC module is applied into network node model which is used to establish a sensor network.Applying multipath routing,the packet transmission reliability,delay and efficient throughput are evaluated with/without application of RNC.Our work provides a network simulation method for the application of RNC.
random network coding;OMNET++;multipath transmission;buffer mechanism;finite field
10.3969/j.issn.1003-3106.2016.10.04
2016-06-29
航天系統部重點預研基金資助項目(GFZX0303010801)。
TP391.4
A
1003-3106(2016)10-0016-04
引用格式:胡鵬,宋小全,孫旭,等.基于OMNET++的隨機網絡編碼仿真實現[J].無線電工程,2016,46(10):16-19.