摘 要:現(xiàn)有的低功耗有損網(wǎng)絡路由協(xié)議RPL以跳數(shù)為唯一的路徑選擇度量,這樣會導致Sink節(jié)點周邊位置的節(jié)點數(shù)據(jù)壓力過大,從而過早將其電量耗盡。為了更好地平衡網(wǎng)絡能耗,緩解Sink周邊節(jié)點的壓力,文章在原路由協(xié)議的基礎上,提出了考慮節(jié)點剩余能量的路徑選擇策略;即在路徑選擇時綜合跳數(shù)和節(jié)點能量兩方面因素,讓數(shù)據(jù)盡量從能量充裕的節(jié)點傳輸。經(jīng)計算機仿真驗證:改進后的路由協(xié)議對平衡網(wǎng)絡能耗、延長網(wǎng)絡整體的生命長度具有較為顯著的改善。
關鍵詞:無線傳感網(wǎng)絡;RPL;IP;能量路由
中圖分類號:TP393 文獻標志碼:A 文章編號:2095-1302(2014)01-0057-03
0 引 言
低功耗有損網(wǎng)絡路由協(xié)議 (RPL)是IETF的ROLL(Routing Over Low power and Lossy networks )工作組,專門針對低功耗有損網(wǎng)絡LLN(Low power and Lossy network)新提出來的路由協(xié)議[1]。低功耗有損網(wǎng)絡是由功率、存儲空間、處理能力等資源受限的嵌入式設備所組成的網(wǎng)絡。它們可以通過多種鏈路連接,比如IEEE 802.15.4、藍牙、低功率Wi-Fi,甚至低功耗電力線通信(PLC)等等。ROLL將LLN網(wǎng)絡的應用主要劃分為四個領域[2]:城市網(wǎng)絡(包括智能電網(wǎng)應用)、建筑自動化、工業(yè)自動化以及家庭自動化,并且分別制定了針對四個應用領域的路由需求[3-6]。由于LLN的獨特性,傳統(tǒng)的IP路由協(xié)議,比如OSPF、IS-IS、AODV、OLSR,無法滿足其獨特的路由需求,因此ROLL工作組制定了RPL協(xié)議,其協(xié)議標準RFC6550[1]發(fā)布于2012年3月。
本論文首先介紹了RPL的應用場景及基本原理,并在路徑選擇策略中加入了對節(jié)點剩余能量的考慮;最后通過仿真驗證了改進后的路由協(xié)議的性能。
1 RPL協(xié)議工作原理
RPL是一個矢量路由協(xié)議,通過構建有向非循環(huán)圖(DAG)來形成拓撲結構,加入DAG中的節(jié)點自動形成一條指向根節(jié)點的路徑。RPL主要為數(shù)據(jù)匯聚型的場景設計,即數(shù)據(jù)流量由葉節(jié)點指向根節(jié)點。當然RPL也擴展支持多點對點(MP2P)和點對點(P2P)的應用場景。
圖1所示為典型的DAG結構。其中的每一個節(jié)點至少有一條指向根節(jié)點的路徑。
1.1 DODAG的形成
DODAG(Destination Oriented Directed Acyclic Graph)是面向目的地的有向非循環(huán)圖的簡稱,可以視為物理網(wǎng)絡上的邏輯路由拓撲。
RPL中定義了由多種ICMPv6消息來控制拓撲的形成。DIO消息用于通告有關DODAG的參數(shù),例如DODAGID、目標函數(shù)(OF)、DODAG版本號等[1]。其中OF規(guī)定了拓撲建立及最優(yōu)父節(jié)點的選擇方式,規(guī)定了節(jié)點級別的計算方法,是路徑選擇的首要參考標準。級別決定了節(jié)點在DODAG中的相對位置,主要用于避免回路。DAO消息是用來建立從根節(jié)點到葉節(jié)點的“向下”的路徑。根據(jù)節(jié)點的存儲能力,RPL協(xié)議中將節(jié)點類型定義為可存儲型和非存儲型,兩者的區(qū)別在于是否存儲有路由表信息。在圖1中,當D節(jié)點要和E節(jié)點通信時,如果B節(jié)點和C節(jié)點是非存儲型,那么必須先追溯到根節(jié)點A,查找路由,即路徑為D—C—B—A—B—C—E。若C為可存儲型節(jié)點,則只需追溯到共同的祖先節(jié)點即可找到路由,即路徑為D—C—E。DIS消息用于向鄰居節(jié)點請求DODAG信息。當一個孤立的節(jié)點沒有收到任何DIO消息的時候,可通過DIS向周圍節(jié)點請求DODAG信息。收到DIS消息的節(jié)點會反饋DIO消息給DIS源節(jié)點。
如圖1所示,首先A節(jié)點通過DIO消息廣播自己創(chuàng)建的DODAG信息,收到DIO消息的節(jié)點根據(jù)OF來決定是否應該加入該DODAG;加入之后然后再向自己周圍的節(jié)點繼續(xù)廣播DIO消息;這樣一層一層地建立拓撲結構。當節(jié)點加入DODAG之后,就自動創(chuàng)建一條“向上”匯聚到根節(jié)點的路徑?!跋蛳隆钡穆窂絼t由DAO消息完成。
1.2 定時器管理
RPL中使用細流算法[7]來控制DIO消息的發(fā)送。細流算法是一個適應性的機制,用來限制控制協(xié)議的開銷。與傳統(tǒng)IP網(wǎng)絡不同,LLN網(wǎng)絡有著非常有限的資源,必須盡可能的減少控制協(xié)議消息所占的比例,但同時又必須要維護好網(wǎng)絡結構。當網(wǎng)絡改變時,節(jié)點會以較高的頻率發(fā)送控制包;當網(wǎng)絡趨于穩(wěn)定時,則控制流的速率減少。算法中定義了控制消息發(fā)送間隔參數(shù)I,當網(wǎng)絡很穩(wěn)定時,則I成倍的增加;而網(wǎng)絡有動蕩時,則發(fā)送間隔迅速降為最小值,高頻率的發(fā)送控制消息以修復網(wǎng)絡。
本文借助Contiki系統(tǒng)中的Cooja模擬器,對RPL協(xié)議進行了仿真。圖2所示為節(jié)點布局圖,并在圖3中以節(jié)點5為例展示了DIO消息的發(fā)送控制過程。從圖3中可以看到,當網(wǎng)絡剛形成逐步趨于穩(wěn)定的時候,DIO消息發(fā)送間隔成倍增加;圖3中23:00和01:20附近陡峭的轉(zhuǎn)折點表明此時監(jiān)測到節(jié)點5和網(wǎng)絡存在不一致性,迅速將控制消息發(fā)送間隔調(diào)至最小值以迅速修復網(wǎng)絡。
1.3 環(huán)路避免機制
RPL中規(guī)定,在沿著葉節(jié)點到根節(jié)點的路徑上,節(jié)點級別必須是遞減的[1],即父節(jié)點的級別必須小于子節(jié)點的級別。當節(jié)點在網(wǎng)絡中位置發(fā)生改變時,必須根據(jù)父節(jié)點重新計算自己的級別。假設節(jié)點N的最優(yōu)父節(jié)點為P,P的級別為R(P),那么N的級別R(N)計算公式為:
R(N)=R(P)+ rank_increase
rank_increase為子節(jié)點和父節(jié)點級別的差值,其算法在OF中有定義。
節(jié)點的級別在環(huán)路避免中有著重要的意義。RPL協(xié)議也通過在包頭上設定標志位來附帶路由控制數(shù)據(jù),以避免數(shù)據(jù)包被循環(huán)轉(zhuǎn)發(fā)。
2 考慮節(jié)點剩余能量的RPL協(xié)議
2.1 RPL協(xié)議原始路由方案
目標函數(shù)決定了RPL協(xié)議的路徑選擇方式。目前RPL的官方文件中,只明確定義了零目標函數(shù)(OF0)[8],即以跳數(shù)(HC)為最佳路徑選擇的唯一標準,而其他的目標函數(shù)則由開發(fā)者根據(jù)需求靈活定義。比如對鏈路可靠性要求較高的應用,可將鏈路質(zhì)量作為路由選擇的首要考慮標準;而對能量受限的環(huán)境則可以定義在路徑中盡量避開電池供電節(jié)點。在文檔RFC6551[9]中,提出了多種可供開發(fā)者參考的路由度量。
在選擇路徑時,若只考慮跳數(shù)因素,必然會導致Sink周邊節(jié)點數(shù)據(jù)壓力過大,從而使關鍵節(jié)點能量過早消耗而死亡。文獻[10]將網(wǎng)絡的生命長度定義為第一個節(jié)點死亡的時間。對于能量受限的低功耗有損網(wǎng)絡,如何平衡能量消耗,延長網(wǎng)絡整體壽命,是協(xié)議要考慮的重要因素。
2.2 優(yōu)化之后的RPL路由方案
目前已有多種針對無線傳感網(wǎng)絡能量優(yōu)化的路由協(xié)議,比如分級能量路由協(xié)議LEACH和TEEN,以數(shù)據(jù)為中心的能量有效路由協(xié)議DD和SPIN,還有基于地理位置的路由協(xié)議GPSR和GEAR等[11]。 但這些協(xié)議都很難實現(xiàn)和RPL協(xié)議的融合。RPL協(xié)議是通過在container metric中,定義路徑選擇時所考慮的參數(shù),然后再以一定的方式將所需要考慮的參數(shù)相結合,從而確定一個合理的路徑選擇方案。
本篇論文中采取的是跳數(shù)(HC)和節(jié)點能量(EN)相結合的方式。結合方式有兩種[12],一種是Lex,一種是Add。Lex是指優(yōu)先考慮跳數(shù),只有在跳數(shù)相同的情況下,才考慮節(jié)點能量;而Add則是采取兩種參數(shù)綜合考慮的方式,按照一定的比例相結合,即:
其中:
本文對這兩種不同的結合方式做了仿真對比。
2.3 RPL協(xié)議改進前后的仿真對比
仿真工具采用的是美國UIUC大學開發(fā)的針對無線傳感網(wǎng)絡研究的J-Sim平臺,該平臺基于Java語言,和NS2相比具有內(nèi)存消耗小、仿真速度快、有更好的可擴展性等優(yōu)點。本文仿真了傳感網(wǎng)絡數(shù)據(jù)收集的場景。在100×100的區(qū)域里,規(guī)則的布置有100個節(jié)點,圖4所示是網(wǎng)絡節(jié)點布局圖和OF0的拓撲結構,其中最左上側(cè)的0號節(jié)點為數(shù)據(jù)匯聚節(jié)點,右下側(cè)的49-99和94-98這11個節(jié)點為傳感器數(shù)據(jù)采集節(jié)點。數(shù)據(jù)從右下側(cè)的11個源節(jié)點發(fā)送到左上側(cè)的0號節(jié)點。由于該網(wǎng)絡具有對稱性,1和10對稱,2和20對稱等,對稱節(jié)點的能量消耗基本一致。本文中重點仿真了具有代表性的1、2、11、12、22這幾個關鍵節(jié)點的能量消耗情況。
對于OF0,由于跳數(shù)是路徑選擇的唯一標準,節(jié)點位置固定的網(wǎng)絡,其拓撲結構也相對保持不變。圖4即為這種情況下的拓撲結構。由圖4中可以看到,節(jié)點1和節(jié)點10承載了大部分的數(shù)據(jù)量,幾乎任何從下側(cè)或者右側(cè)源節(jié)點發(fā)過來的數(shù)據(jù)都要經(jīng)過這兩個節(jié)點轉(zhuǎn)發(fā)到Sink節(jié)點。而節(jié)點11,則只有來自源節(jié)點99的數(shù)據(jù)由它轉(zhuǎn)發(fā)。
圖5所示是系統(tǒng)節(jié)點能耗圖。其中圖5(a)為OF0方案下部分節(jié)點能量消耗圖。從圖中可以看出,最關鍵的節(jié)點1和節(jié)點10,能量很快就消耗殆盡。而節(jié)點11,則能耗相對較少。這對節(jié)點位置固定的網(wǎng)絡是很不利的,會使數(shù)據(jù)量較大的節(jié)點在短期內(nèi)能量迅速消耗完而死亡,而其他非位置關鍵節(jié)點,則一直被閑置。造成網(wǎng)絡能耗分布極其不均勻,能量利用率不高。
接下來可以仿真跳數(shù)和節(jié)點剩余能量相結合的路徑選擇方式,圖5(b)為跳數(shù)和能量按照2∶8的比例加權所得到的能耗結果。從圖5(b)可以看出,節(jié)點1、10和11的能耗更為均衡,第一個節(jié)點死亡的時間大為延長。跳數(shù)和節(jié)點剩余能量相結合的路徑選擇方式,能一定程度上改善以跳數(shù)為唯一度量所造成了能量消耗不均的情況,從而延長關鍵節(jié)點的生命長度。仿真中也能看到,最佳路徑的拓撲圖一直處于動態(tài)變化,原先經(jīng)過節(jié)點1和節(jié)點10到達匯聚節(jié)點的數(shù)據(jù),有一部分從節(jié)點11分流,從而緩解節(jié)點1和節(jié)點10的壓力。
(a) HC路徑選擇方案節(jié)點能耗 (b) HC+EN路徑選擇方案節(jié)點能耗
本文也仿真了跳數(shù)(HC)和節(jié)點能量(EN)按照Lex的結合方式,即優(yōu)先考慮最小跳數(shù),當跳數(shù)相同的時候再考慮節(jié)點能量,以及在Add結合方式下按0.8HC+0.2EN和0.2HC+0.8EN的不同比例相結合的情況對比。最后得出的結論是,兩種不同的結合方式對網(wǎng)絡能耗均衡都有一定程度的改善;而Add的結合方式能耗更為均衡,且剩余能量所占的比例越高,改善的效果越為顯著。圖6所示是在不同路由策略下,關鍵節(jié)點能耗的對比情況。
4 結 語
本文描述了RPL協(xié)議的基本原理,并且對原路由協(xié)議的路徑選擇策略進行了改進,在只考慮跳數(shù)的基礎上,加入節(jié)點剩余能量的考慮,從而平衡了網(wǎng)絡能耗,延長網(wǎng)絡整體壽命。由于RPL是近幾年新提出的協(xié)議,隨著實踐的不斷深入,越來越多的新問題被提出,還有很大的研究空間。RPL協(xié)議在物聯(lián)網(wǎng)領域有著廣闊的應用前景,值得廣大學者進一步深入研究。
5 致 謝
本論文的工作得到了實驗室項目的大力支持。感謝國家自然科學基金(61271257),北京市自然科學基金(4122034)和教育部博士點基金(20120005110007)對本文研究工作的支持。
參 考 文 獻
[1]WINTER T. RFC6550 RPL: routing protocol for low power and lossy networks [S]. USA: Internet Engineering Task Force, 2012.
[2]VASSEUR J P, DUNKELS A.基于IP的物聯(lián)網(wǎng)架構、技術與應用[M]. ,田輝,徐貴保,譯.北京:人民郵電出版社,2011.
[3]DOHLER M. RFC 5548 routing requirements for urban low-power and lossy networks [S]. Internet Engineering Task Force, 2009.
[4]PISTER K. RFC5673 industrial routing requirements in low-power and lossy networks [S]. Internet Engineering Task Force, 2009.
[5]BRANDT A. RFC5826 home automation routing requirements in low-power and lossy networks[S]. Internet Engineering Task Force, 2010.
[6]MARTOCCI J. RFC5867 building automation routing requirements in low-power and lossy networks [S]. Internet Engineering Task Force, 2010.6
[7]LEVIS P. The trickle algorithm draft-ietf-roll-trickle-08 [S]. Internet Engineering Task Force, 2011.
[8]THUBERT P. RFC6552 objective function zero for the routing protocol for low-power and lossy networks (RPL) [S]. Internet Engineering Task Force, 2012.
[9]VASSEUR JP. RFC6551 routing metrics used for path calculation in low-power and lossy networks [S]. Internet Engineering Task Force, 2012.
[10]廖夢澤.無線傳感器網(wǎng)絡生命期最優(yōu)化[D].上海:上海交通大學,2010.
[11]王珺.無線傳感器網(wǎng)絡能量有效性的研究[D]. 南京:南京大學,2012.
[12] KARKAZIS P, LELIGOU H C, SARAKIS L, et al. Design of primary and composite routing metrics for RPL-compliant Wireless Sensor Networks [C]// Proceedings of 2012 International Conference on Telecommunications and Multimedia. Chania: TEMU, 2012: 13-18.