阮文靈,曾培峰
(東華大學 計算機科學與技術學院,上海 201620)
無線傳感網(wǎng)絡中RPL路由協(xié)議研究及性能分析
阮文靈,曾培峰
(東華大學 計算機科學與技術學院,上海 201620)
詳細介紹了無線傳感網(wǎng)絡中的RPL(IPv6 Routing Protocol for Low-Power and Lossy Networks)路由協(xié)議,從仿真環(huán)境、參數(shù)設定、仿真場景設計等方面對RPL路由協(xié)議的仿真進行了分析。利用cooja模擬器對RPL路由協(xié)議進行了仿真,并針對分組遞交率和平均功耗兩個性能指標對RPL路由協(xié)議進行性能評估。仿真結果表明,RPL路由協(xié)議在分組遞交率方面適用于各個場景,并能很好地適應網(wǎng)絡的動態(tài)變化;在功耗方面不適用于樹型空間位置的場景,并且對于動態(tài)變化的網(wǎng)絡會大大增加平均功耗。
RPL路由協(xié)議;網(wǎng)絡仿真;cooja模擬器;分組遞交率;平均功耗
隨著網(wǎng)絡的發(fā)展,物聯(lián)網(wǎng)[1]已經(jīng)成為繼互聯(lián)網(wǎng)之后的發(fā)展趨勢。作為物聯(lián)網(wǎng)的重要組成部分,無線傳感網(wǎng)絡由于受到處理能力、內(nèi)存容量、電量等限制,其路由協(xié)議設計充滿挑戰(zhàn)?;ヂ?lián)網(wǎng)工程任務組(Internet Engineering Task Force, IETF)建立低功耗有損網(wǎng)絡路由工作組(Routing over Lossy and Low-power Networks, ROLL)來解決這一問題,提出一種新的路由協(xié)議RPL,即IPv6 Routing Protocol for Low-Power and Lossy Networks[2]。
本文首先介紹了RPL路由協(xié)議的原理,分析了控制路由報文發(fā)送頻率的Trickle算法[3],其次用cooja[4]對不同場景進行了仿真,并根據(jù)仿真結果分析了RPL路由協(xié)議的性能,接著驗證了Trickle算法,最后進行了總結。
RPL路由協(xié)議是一種距離矢量路由協(xié)議,它根據(jù)目標函數(shù)(Objective Function,OF)構建以目的節(jié)點(根節(jié)點)為導向的有向無環(huán)圖(Destination-Oriented Directed Acyclic Graph,DODAG)。每個非根節(jié)點通過目標函數(shù)計算出一個Rank值,表明自己與根節(jié)點之間的距離關系。目前常用的目標函數(shù)有OF0(Objective Function Zero)[5]、MRHOF(The Minimum Rank with Hysteresis Objective Function)[6]和ETX(Expected Transmission Count)[7]。三種控制報文用于RPL路由協(xié)議,分別是DODAG信息請求報文(DODAG Information Solicitation,DIS)、DODAG信息對象報文(DODAG Information Object,DIO)和目的廣告對象報文(Destination Advertisement Object,DAO)。DIS報文用于未加入網(wǎng)絡的節(jié)點向網(wǎng)絡中的節(jié)點主動尋求DIO報文,并尋求加入網(wǎng)絡;DIO報文攜帶了一些配置參數(shù),如RPLInstanceID、DODAGID、Rank等,讓未加入網(wǎng)絡的節(jié)點能夠發(fā)現(xiàn)RPL實例并學習這些配置參數(shù),選擇父節(jié)點,主要用于向上路由的建立;DAO報文攜帶一些路由前綴信息,主要用于向下路由的建立。
1.1 DODAG構建過程
整個DODAG的構建可以分為兩個部分,第一部分是向上路由的構建,第二部分是向下路由的構建。
如圖1所示,向上路由的構建過程從根節(jié)點(6LoWPAN Border Router,6LBR)開始,6LBR廣播DIO報文,它攜帶著自己節(jié)點的信息RPLInstanceID、DODAGID、Rank等,在它傳輸范圍內(nèi)的6LRA(6LoWPAN Router A)收到該DIO報文后,選擇6LBR作為父節(jié)點并加入該DODAG。6LRA具有路由功能,它會根據(jù)目標函數(shù)計算rank值并更新收到的DIO報文,并廣播出去,在它傳輸范圍內(nèi)的6LRB收到該DIO報文后,選擇6LRA作為父節(jié)點并加入該DODAG。在6LRB加入DODAG后的某一時刻,6LN(6LoWPAN NODE)主動廣播DIS報文,尋求加入某個DODAG。6LRB收到該DIS報文后,給6LN回復DIO報文,讓6LN選擇6LRB作為父節(jié)點并加入DODAG。至此整個DODAG的向上路由就建立了。向下路由通過DAO報文來構建。6LRA在收到6LBR的DIO報文后,回復6LBR DAO報文,6LBR收到后將6LRA的前綴信息加入到路由表項中。6LRB收到6LRA的DIO報文后,回復6LRA DAO報文,6LRA處理該DAO報文后并向自己的父節(jié)點6LBR回復DAO報文,6LBR收到該DAO報文后將6LRB的前綴信息加入路由表項中。因此,DAO報文的處理工程是從子節(jié)點發(fā)送自己的父節(jié)點,父節(jié)點在處理后依次發(fā)送給自己的父節(jié)點,直到發(fā)送到根節(jié)點為止,根節(jié)點包含了所有節(jié)點的前綴信息。
圖1 DODAG構建過程
1.2 Trickle算法
Trickle算法是RPL路由協(xié)議中一個重要的組成部分,它用來控制DIO報文的發(fā)送頻率。Trickle算法運用了自適應傳輸周期機制,保證網(wǎng)絡中路由信息一致時,發(fā)送較少的路由報文;而不一致時迅速發(fā)送大量的路由報文,從而快速更新路由信息,保證一致性。
為了實現(xiàn)上述自適應傳輸周期的機制,Trickle算法使用了3個配置參數(shù):最小時隙Imin表示DIO報文發(fā)送間隔的最小范圍;最大時隙Imax表示DIO報文發(fā)送間隔的最大范圍;常數(shù)k用于表征DIO報文是否發(fā)送。Trickle算法還使用了3個變量:當前時隙I,表示DIO報文當前的發(fā)送間隔;當前時隙的時間點t,表示只有到達當前時隙中的時間點t,DIO報文才有可能發(fā)送;一致性計數(shù)器c,用于與常數(shù)k比較,根據(jù)比較結果決定是否發(fā)送DIO報文。
Trickle算法的具體執(zhí)行步驟如下:
(1)Trickle算法開始執(zhí)行時,首先把當前時隙I隨機置成[Imin,Imax]中的一個時隙,并且開始第一個時隙;
(2)當一個時隙開始時,把一致性計數(shù)器c重置成0,并把時間點t設為當前時隙I中大于等于I/2、小于等于I的一個隨機時間點;
(3)當監(jiān)聽到一致性消息時,增加計數(shù)器c;
(4)在時間點t,當計數(shù)器c小于常數(shù)k時,發(fā)送DIO消息,否則不發(fā)送DIO消息;
(5)當時隙I過期后,時隙I=I×2,當I>Imax時,I置成Imax,并判斷下一時隙是否有效,若有效返回步驟(2),否則結束;
(6)當監(jiān)聽到不一致性消息并且I>Imin時,重置I為Imin,當I=Imin時,什么也不做,并判斷下一時隙是否有效,若有效返回步驟(2),否則結束。
2.1 仿真環(huán)境
使用cooja對RPL路由協(xié)議進行仿真,cooja是基于Contiki操作系統(tǒng)[8]的模擬器。
2.2 仿真參數(shù)
圖2 UDMG類型
在仿真實驗中,使用的目標函數(shù)為ETX(Expected Transmission Count)。ETX指一個節(jié)點成功傳輸一個數(shù)據(jù)包給目的節(jié)點需要傳輸?shù)拇螖?shù)。無線介質(zhì)類型是UDMG類型,如圖2所示,內(nèi)部的圓區(qū)域代表了節(jié)點1能從其他節(jié)點接收包的范圍,其中的百分比分別代表了從不同節(jié)點接收包的成功率,它隨著與節(jié)點1的距離增大而減小。外部的圓區(qū)域為受到無線干擾的范圍。設置接收包的范圍為50 m,受到干擾的范圍是100 m,發(fā)送包的成功率為100%,接收包的成功率根據(jù)節(jié)點間的距離確定。
仿真時間為15 min,節(jié)點的類型為sky類型,并且只有1個根節(jié)點。在不同空間位置關系的節(jié)點圖仿真實驗中,有30個具有路由功能的節(jié)點;在動態(tài)增減節(jié)點的仿真實驗中,在第5 min時動態(tài)減少或增加10個有路由功能的節(jié)點。這些節(jié)點分布在200 m×200 m的正方形區(qū)域內(nèi)。
為了對仿真結果進行分析,需要使用評估RPL路由協(xié)議的性能指標[9],使用分組遞交率和平均功耗作為評估的指標。
3.1 不同空間位置關系的節(jié)點圖仿真
為了評估RPL路由協(xié)議在不同的拓撲情況下的性能,根據(jù)根節(jié)點與路由節(jié)點的關系,設計了4種不同空間位置關系的節(jié)點圖,如圖3所示。
圖3 不同場景下的節(jié)點圖
圖4顯示了15 min內(nèi)不同場景下發(fā)送給根節(jié)點包的數(shù)量和根節(jié)點接收包的數(shù)量,圖5根據(jù)圖4的數(shù)據(jù)計算出了分組遞交率。根據(jù)圖4,不同空間位置節(jié)點圖發(fā)送給根節(jié)點的包的總數(shù)基本相同,為420左右。根據(jù)圖5,格子型的分組遞交率最高,為98.81%,而樹型的分組遞交率最低,為95.44%,但是相差都不是特別大,并且包的遞交率都達到了95%以上。根據(jù)上述結果,在分組遞交率方面RPL路由協(xié)議在靜態(tài)的不同場景下都有較好的表現(xiàn)。
圖5 分組遞交率
圖6顯示了15 min內(nèi)除根節(jié)點之外的其他所有節(jié)點的功耗的平均值。根據(jù)圖6,樹型的平均功耗最大,為3.14 mW,格子型的平均功耗最小,為1.79 mW。樹型的平均功耗遠遠大于其他三種情況下的平均功耗。根據(jù)上述結果,在平均功耗方面PRL路由協(xié)議對于樹型位置關系表現(xiàn)得并不是很好,而其他三種場景下有較好的表現(xiàn)。
圖6 在15 min內(nèi)不同位置關系的平均功耗
3.2 動態(tài)增減節(jié)點的仿真
為了評估RPL路由協(xié)議在動態(tài)變化拓撲中的性能,設計了動態(tài)增減節(jié)點的場景。節(jié)點隨機關系的場景是最常見的場景,因此動態(tài)增減節(jié)點的仿真使用隨機關系場景。
圖7顯示了15 min內(nèi)不同條件下發(fā)送給根節(jié)點包的數(shù)量和根節(jié)點接收包的數(shù)量,圖8根據(jù)圖7的數(shù)據(jù)計算出了分組遞交率。根據(jù)圖7,在第5 min時動態(tài)加入節(jié)點的場景下,其他路由節(jié)點發(fā)送給根節(jié)點和根節(jié)點接收包的數(shù)量都比原來的要多,而動態(tài)減少節(jié)點的情況下都比原來的要少;但都少于一開始靜態(tài)相同位置相同數(shù)目節(jié)點的場景,說明節(jié)點個數(shù)影響發(fā)送給根節(jié)點和根節(jié)點接收包的數(shù)量。根據(jù)圖8,在第5 min時動態(tài)加入和減少節(jié)點的場景與靜態(tài)相同位置相同數(shù)目節(jié)點場景相比,包遞交率相差不大,說明動態(tài)增減節(jié)點對包遞交率影響很小,RPL路由協(xié)議能夠很好地適應網(wǎng)絡的動態(tài)變化。
圖7 在15 min內(nèi)發(fā)送給根節(jié)點和根節(jié)點接收包數(shù)量
圖8 分組遞交率
圖9顯示了15 min內(nèi)不同場景的平均功耗。根據(jù)圖9,在第5 min時動態(tài)加入和減少節(jié)點的場景與靜態(tài)相同位置相同數(shù)目節(jié)點場景相比,平均功耗都大大增加,說明了在功耗方面,RPL路由協(xié)議對于動態(tài)變化的網(wǎng)絡會大大增加節(jié)點的平均功耗。
圖9 15 min內(nèi)不同場景的平均功耗
3.3 Trickle算法的仿真
為了驗證Trickle算法能夠有效控制DIO報文的發(fā)送頻率,在網(wǎng)絡維持不變時增大DIO報文的發(fā)送間隔,在網(wǎng)絡發(fā)送變化時能夠迅速減小DIO報文發(fā)送的間隔,從而維護網(wǎng)絡。使用圖2進行了仿真,圖10顯示了仿真結果。
圖10 Trickle算法的仿真
圖中橫坐標代表時間節(jié)點,縱坐標代表時隙的大小。圖中顯示了三個階段,第一階段網(wǎng)絡沒有發(fā)生變化,因此每次當前時隙I到期后,I變成了I×2(I×2 本文對RPL路由協(xié)議進行了詳細的介紹,并對靜態(tài)場景及動態(tài)增減節(jié)點情況下的RPL路由協(xié)議性能進行了深入評估。從仿真結果得出以下結論: (1)對于不同靜態(tài)場景,分組遞交率都在95%以上,并且相差不大,RPL路由協(xié)議對各種節(jié)點布局都適用;對于動態(tài)增減節(jié)點,分組遞交率與靜態(tài)相比相差不大,RPL路由協(xié)議能適應網(wǎng)絡的動態(tài)變化。 (2)對于不同靜態(tài)場景,樹型位置關系的平均功耗遠大于其他關系的平均功耗,RPL路由協(xié)議對于樹型位置關系并不特別合適;對于動態(tài)增減節(jié)點,RPL路由協(xié)議會大大增加平均功耗。 (3)Trickle算法能夠有效地控制路由報文的發(fā)送。 [1] GUBBI J, BUYYA R, MARUSIC S, et al. Internet of Things (IoT): a vision, architectural elements, and future directions[J]. Future Generation Computer Systems, 2013, 29(7):1645-1660. [2] WINTER T, THUBERT P, BRANDT A, et al. RPL: IPv6 routing protocol for low-power and lossy networks[S]. Internet: RFC 6550, 2012. [3] LEVIS P, CLAUSEN T, HUI J, et al. The trickle algorithm[S]. Internet: RFC 6206, 2011. [4] OSTERLIND F, DUNKELS A, ERIKSSON J, et al. Cross-level sensor network simulation with COOJA[C]. Proceedings of 31st IEEE Conference on Local Computer Networks, Tampa,FL: IEEE, 2006: 641-648. [5] THUBERT P. RPL objective function zero[S]. Internet: RFC 6552, 2012. [6] GNAWALI O, LEVIS P. The minimum rank with hysteresis objective function[S]. Internet: RFC 6719, 2012. [7] GNAWALI O, LEVIS P. The ETX objective function for RPL[S]. Internet: draft-gnawali-roll-etxof-00, 2010. [8] DUNKELS A, GRONVALL B, VOIGT T. Contiki-a lightweight and flexible operating system for tiny networked sensors[C]. Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks, 2004. IEEE, 2004:455-462. [9] TRIPATHI J, DE OLIVEIRA J, VASSEUR J P. Performance evaluation of routing protocol for low power and lossy networks[S]. Internet: RFC 6687, 2012. Study and performance analysis of RPL routing protocol in WSN Ruan Wenling, Zeng Peifeng (College of Computer Science and Technology, University of Donghua, Shanghai 201620, China) RPL(IPv6 Routing Protocol for Low-Power and Lossy Networks) routing protocol in WSN(Wireless Sensor Networks) is presented in detail. The simulation of RPL routing protocol is analysed in aspects of simulation environment, parameters setting and simulation scenarios design. RPL routing protocol is simulated by using cooja simulator, performance of RPL routing protocol is evaluated according to the two performance indexes of the packet delivery ratio and the average power consumption. The simulation result indicates that in packet dilivery ratio, RPL routing protocol adapts to diffent scenarios and dynamic changes of the network well, in average power consumption, RPL routing protocol is not suitable for the scenario of tree type space position, and will increase the average power consumption greatly for dynamic changes of the network. RPL routing protocol; network simulation; cooja simulator; packet dilivery ratio; average power consumption TP391.9 A 10.19358/j.issn.1674- 7720.2017.03.019 阮文靈,曾培峰.無線傳感網(wǎng)絡中RPL路由協(xié)議研究及性能分析[J].微型機與應用,2017,36(3):63-66. 2016-10-08) 阮文靈(1992-),男,碩士研究生,主要研究方向:無線傳感協(xié)議、物聯(lián)網(wǎng)。 曾培峰(1964-),男,博士,教授,主要研究方向:計算機網(wǎng)絡與通信、嵌入式系統(tǒng)。4 結束語