綦聲波 吳學(xué)英
摘要:在無線傳感器網(wǎng)絡(luò)中,節(jié)點的處理能力、存儲能力和能量都受硬件限制較大。RPL路由協(xié)議是由IETF RoLL工作組專門為低功耗有損網(wǎng)絡(luò)提出的IPv6路由協(xié)議。該文詳細介紹了RPL路由協(xié)議的拓撲結(jié)構(gòu)、路由構(gòu)建及安全機制。最后通過Contiki自帶的Cooja仿真工具對路由協(xié)議進行模擬仿真,驗證了該路由協(xié)議在無線傳感器網(wǎng)絡(luò)中的高效性。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);RPL路由協(xié)議;Cooja仿真工具
中圖分類號:TN92 文獻標識碼:A 文章編號:1009-3044(2017)05-0211-03
Abstract: In Wireless Sensor Networks,the nodes processing capability,storage capacity and energy are limited by the hardware.The RPL routing protocol is an IPv6 routing protocol proposed by the IETF RoLL working group and specifically designed for Low-power and Lossy Networks.This paper introduces the RPL routing protocol topology,routing construction and security mechanisms. Finally,the routing protocol is simulated by Cooja simulation tool,and the efficiency of the routing protocol in wireless sensor network is verified.
Key words: Wireless Sensor Network; RPL routing protocol; Cooja
傳統(tǒng)上基于現(xiàn)場總線傳輸網(wǎng)絡(luò)的監(jiān)測技術(shù)存在著設(shè)備搭建復(fù)雜度高、拓展性受地域影響較大等缺點?;?LoWPAN技術(shù)搭建的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN),借由物聯(lián)網(wǎng)的概念以全IP的方式實現(xiàn)傳感器節(jié)點與互聯(lián)網(wǎng)互聯(lián),具有易于布置、易于維護、易于拓展等優(yōu)點。
無線傳感器網(wǎng)絡(luò)是由許多散布于工作區(qū)的節(jié)點組成,在監(jiān)測地域自組織的構(gòu)成網(wǎng)絡(luò)。設(shè)備受體積所限,普遍具有處理能力差、傳輸速率低、能量儲備有限等問題,網(wǎng)絡(luò)連接也存在高丟包率、低數(shù)據(jù)傳輸和不穩(wěn)定等特性。為了減少組網(wǎng)開銷,維護網(wǎng)絡(luò)拓撲結(jié)構(gòu)穩(wěn)定,IETF RoLL工作組提出了RPL路由協(xié)議。RPL路由協(xié)議通過交換距離矢量構(gòu)造一個有向無環(huán)圖(Directed Acyclic Graph,DAG),節(jié)點通過廣播方式與其余節(jié)點互相交換信息,計算最優(yōu)路徑,有效防止路由環(huán)路問題。
本文詳述了無線節(jié)點通過RPL路由協(xié)議組網(wǎng)的拓撲結(jié)構(gòu),路由的建立過程,安全機制等,最后通過Contiki系統(tǒng)的Cooja工具模擬無線網(wǎng)絡(luò)環(huán)境,進行了仿真并驗證其性能。
1 簡述
RPL是基于Ipv6而設(shè)計的距離矢量路由協(xié)議。基于有向無環(huán)圖的拓撲概念,通過使用目標函數(shù)(Object Function,OF)和度量集合構(gòu)建以目的節(jié)點為導(dǎo)向的有向無環(huán)圖(Destination Oriented Directed Acyclic Graph,DODAG)。最優(yōu)路徑依賴于目標函數(shù)的約束條件和度量。
1.1 無線網(wǎng)絡(luò)拓撲結(jié)構(gòu)
與日常有線網(wǎng)絡(luò)的點到點傳輸不同的是,無線傳感器網(wǎng)絡(luò)受地域環(huán)境限制,一般沒有預(yù)先設(shè)定好的拓撲結(jié)構(gòu),無線節(jié)點必須自己去發(fā)現(xiàn)其他的節(jié)點并根據(jù)RPL規(guī)則建立通信。RPL路由把網(wǎng)絡(luò)內(nèi)的所有無線節(jié)點向外的信道匯集到一個或者多個指定的出入口,外部的信息也從這些出入口分發(fā)到網(wǎng)絡(luò)里面的節(jié)點。因此,整個無線網(wǎng)絡(luò)被視為一個DAG圖,RPL路由協(xié)議將這個DAG圖分割為多個DODAG圖,每個DODAG圖含有一個root節(jié)點(出入口,可以接收或發(fā)送外網(wǎng)信息)。
2.1 DODAG的形成和向上路由的建立
在節(jié)點上電開始工作之前,根據(jù)實際應(yīng)用環(huán)境指定不同的節(jié)點分別作為root節(jié)點和node節(jié)點。上電之后,root節(jié)點會向臨近的所有節(jié)點廣播DIO消息,不同的root節(jié)點可能同時廣播DIO消息,有時會造成一個節(jié)點同時收到多個DIO消息,這時接收節(jié)點會根據(jù)DIO消息中攜帶的信息,通過比對Rank值、目標函數(shù)以及根據(jù)路由選擇度量標準量化的ETX值選擇是否加入該DODAG圖。當(dāng)節(jié)點加入該DODAG圖后,root節(jié)點隨即成為這個節(jié)點的父節(jié)點。當(dāng)父節(jié)點確定之后,該節(jié)點會對自己DIO消息中的路由方面的信息進行修改,然后將含有新路由消息的DIO消息向臨近自己的其他節(jié)點發(fā)送。如此循環(huán),其他的節(jié)點也會收到許多DIO消息,通過同樣方法確定自己的父節(jié)點。在路由建立時,節(jié)點的下一跳都為其父節(jié)點,至此向上的路由建立起來。
2.2 向下路由的建立
向下路由的構(gòu)建存在著兩種模式:Storing Mode和Non-Storing Mode。在構(gòu)建過程中node節(jié)點可以保留向下的路由信息的模式為Storing Mode,而只有root節(jié)點能保存的模式為Non-Storing Mode。
在Storing Mode下,節(jié)點通過比較上一級多個節(jié)點發(fā)送的DIO消息,確定自己的父節(jié)點,會對父節(jié)點發(fā)送DAO消息進行回復(fù)。父節(jié)點收到DAO消息,處理其前綴信息,并在路由表上加入一條路由項,從而更新了整個路由表。當(dāng)這個父節(jié)點完成該步驟后,它會向自己上一級的父節(jié)點發(fā)送DAO消息包,如此循環(huán)直至整個向下路由建立起來。
而在Non-Storing Mode下,節(jié)點處理DIO消息后向root節(jié)點直接回復(fù)DAO消息,而其父節(jié)點不會接收這些消息,只是這些消息要經(jīng)父節(jié)點轉(zhuǎn)發(fā)。最后當(dāng)root節(jié)點收到所有節(jié)點發(fā)過來的DAO消息后,就會建立到所有節(jié)點的路由表。
3 安全機制
3.1 環(huán)路避免和檢測
在傳統(tǒng)網(wǎng)絡(luò)中,由于節(jié)點位置和拓撲位置不同步,可能導(dǎo)致臨時環(huán)路的產(chǎn)生。環(huán)路可能導(dǎo)致丟失數(shù)據(jù)包、堵塞鏈路等問題,因此要求迅速檢測出環(huán)路。但在無線傳感器網(wǎng)絡(luò)中,環(huán)路對整個網(wǎng)絡(luò)的影響是有限的,相反如果采取較大的措施避免環(huán)路反而會導(dǎo)致節(jié)點能量消耗與路由混亂。因此RPL協(xié)議允許環(huán)路的出現(xiàn),定義了兩種基于Rank值的策略來盡量避免環(huán)路的出現(xiàn)。
1) 不允許節(jié)點選擇DODAG圖中Rank值更大的節(jié)點作為自己的父節(jié)點。
2) 不允許節(jié)點在DODAG內(nèi)向更深方向移動(增加Rank),以便增加父代集規(guī)?;蚋纳破渌攘?。
3.2 修復(fù)機制
當(dāng)無線節(jié)點出現(xiàn)能量耗盡或因故障不能繼續(xù)工作時,為了數(shù)據(jù)正常轉(zhuǎn)發(fā)需建立其他路由,RPL路由協(xié)議支持兩種修復(fù)方式:全局修復(fù)和局部修復(fù)。當(dāng)監(jiān)測到鏈路失效后,節(jié)點在向上方向沒有父節(jié)點,觸發(fā)一個局部修復(fù)以尋找另外父節(jié)點;當(dāng)局部修復(fù)發(fā)生時,有可能會破壞整個DODAG圖的最優(yōu)模式,或者當(dāng)root節(jié)點失效,該DODAG圖就會重建,從而觸發(fā)全局修復(fù),DODAGVersionNumber的值會加1。
3.3 Trickle Algorithm定時器
4 Cooja平臺仿真及分析
Cooja作為Contiki操作系統(tǒng)的自帶插件,能夠?qū)Υ罅抗?jié)點進行模擬仿真。本文模擬一仿真環(huán)境,存在一個root節(jié)點,10個普通節(jié)點,設(shè)置節(jié)點以隨機的方式分布在仿真環(huán)境中。節(jié)點1是root節(jié)點,其余節(jié)點為普通節(jié)點,圓圈表示節(jié)點1的通信范圍,通信范圍外的節(jié)點只能通過其他節(jié)點轉(zhuǎn)發(fā)與節(jié)點1通信,仿真環(huán)境如圖2所示。
在網(wǎng)絡(luò)拓撲結(jié)構(gòu)第一次穩(wěn)定之后,如圖3所示。但節(jié)點不允許選擇DODAG圖中更深的節(jié)點作為自己的父節(jié)點,通過比對Rank值與ETX值,節(jié)點3重新選擇節(jié)點5作為自己的父節(jié)點,RPL協(xié)議發(fā)起一個局部修復(fù),根據(jù)涓流算法,重置Trickle Timer定時器,提高DIO消息包發(fā)送頻率,如圖4所示。節(jié)點3在01:05左右重置定時器,重置DIO消息包發(fā)送間隔,直至DODAG拓撲結(jié)構(gòu)穩(wěn)定,新的拓撲結(jié)構(gòu)如圖5所示。
人為挪動節(jié)點7、8位置使其相對位置變化導(dǎo)致DODAG拓撲結(jié)構(gòu)發(fā)生變化,節(jié)點4、6、11重新選擇自己的父節(jié)點,新的拓撲結(jié)構(gòu)如圖6所示。RPL路由協(xié)議發(fā)起一個局部修復(fù),根據(jù)涓流算法(Trickle Algorithm),重置Trickle Timer定時器,提高DIO消息發(fā)送頻率,待其穩(wěn)定之后,仍會按照“階梯”式增長。涓流算法對節(jié)點DIO消息發(fā)送頻率的影響如圖所示,從圖7中可以看出節(jié)點到達一個階梯上,原因是涓流算法第四步會檢測當(dāng)前積累的一致性的數(shù)量是否小于冗余常量,只有滿足該條件后才可發(fā)送數(shù)據(jù)包,從而避免了所有節(jié)點在檢測到不一致現(xiàn)象后同時反應(yīng)引起的廣播風(fēng)暴。圖8為節(jié)點4移動后,由于大量的發(fā)送DIO消息包導(dǎo)致的功耗急劇上升。
5 結(jié)語
RoLL工作組為了解決低功耗有損網(wǎng)絡(luò)的路由問題,提出了RPL路由協(xié)議。該協(xié)議利用ICMPv6的控制消息DIO、DIS和DAO來實現(xiàn)路由過程。本文使用Contiki Cooja模擬器模擬了實際仿真環(huán)境中的組網(wǎng)過程,同時在網(wǎng)絡(luò)拓撲結(jié)構(gòu)發(fā)生變化時,通過修復(fù)機制重置Trickle定時器,有效地控制消息包的發(fā)送頻率,從而降低路由協(xié)議開銷。
參考文獻:
[1] 李樹軍. 基于6LoWPAN的RPL路由協(xié)議研究[J]. 重慶工商大學(xué)學(xué)報(自然科學(xué)版),2013,08:72-77.
[2] 朱燕,黃明科. 物聯(lián)網(wǎng)的發(fā)展和應(yīng)用探討[J]. 電信網(wǎng)技術(shù),2010,11:34-37.
[3] 張宏科,梁露露,高德云. IPv6無線傳感器網(wǎng)絡(luò)的研究及其應(yīng)用[J]. 中興通訊技術(shù),2009,05:37-40.
[4] 王靜涵. 基于Contiki操作系統(tǒng)的RPL路由協(xié)議能耗均衡的研究[D].蘭州大學(xué),2015.
[5] 丘建. 基于Contiki/Cooja平臺的IEEE 802.15.4協(xié)議實現(xiàn)與改進[D].電子科技大學(xué),2014.
[6] 宋菲,侯樂青. 淺析智能物件網(wǎng)絡(luò)中的RPL路由技術(shù)[J]. 電信網(wǎng)技術(shù),2011,09:23-26.
[7] 于鵬澎. 6LoWPAN網(wǎng)絡(luò)幾個關(guān)鍵技術(shù)研究[D].安徽理工大學(xué),2015.
[8] T. Winter, P. Thubert, A. Brandt, J. Hui, R. Kelsey, P. Levis, K. Pister, R. Struick, J. Vasseur, R. Alexander, RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks IETF RFC 6550, 2012.
[9] T. Zhang, X. Li, "Evaluating and analyzing the performance of RPL in contiki", MSCC ‘14 Proceedings of the first international workshop on Mobile sensing computing and communication ACMNewYork, 2014.
[10] O. Gaddour, A. Koubaa, S. Chaudhry, M. Tezeghdanti, R. Chaari, M. Abid, "Simulation and performance evaluation of DAG construction with RPL", 2012 Third International Conference on Communications and Networking (ComNet), March 2012.