謝英輝, 李躍飛
(1.長沙民政職業(yè)技術(shù)學(xué)院 軟件學(xué)院,湖南 長沙 410004;2.湖南信息學(xué)院 電子信息學(xué)院,湖南 長沙 410104)
多類物聯(lián)網(wǎng)(Internet of things,IoT)應(yīng)用[1]均能提供不同服務(wù),而點到點(point-to-point,P2P)通信的流量數(shù)是這些應(yīng)用的關(guān)鍵,并且移動也是這些應(yīng)用的基本特性。在節(jié)點移動的動態(tài)環(huán)境中,維持可靠鏈路,防止數(shù)據(jù)包丟失存在較大挑戰(zhàn)。由于節(jié)點的能量有限,物聯(lián)網(wǎng)中的路由必須考慮節(jié)點能效問題。
作為低功耗易損網(wǎng)絡(luò)(low power and lossy network,LPN),面向物聯(lián)網(wǎng)的路由得到廣泛研究。文獻(xiàn)[2]基于LPN提出了IPV6路由(RPL)。RPL利用四類控制消息構(gòu)建并維持拓?fù)鋱D,但該路由并不適合于P2P數(shù)據(jù)流的傳輸。文獻(xiàn)[3]基于LPN提出先應(yīng)式的點到點路由協(xié)議(reactive discovery of point-to-point,P2P-RPL),但協(xié)議的能耗較高,并沒有考慮到節(jié)點的移動問題。文獻(xiàn)[4]提出考慮移動增強(qiáng)的RPL協(xié)議(mobility enhanced RPL,ME-RPL),在考慮節(jié)點移動問題的同時,優(yōu)先選擇靜態(tài)節(jié)點非移動節(jié)點作為父節(jié)點,進(jìn)而構(gòu)建穩(wěn)定鏈路,但其沒有考慮節(jié)點能耗問題。文獻(xiàn)[5]提出能量有效路由ER-RPL,其提供了可靠、最優(yōu)P2P路由。ER-RPL路由建立了目標(biāo)的導(dǎo)向的有向無環(huán)圖(destination oriented directed acyclic graph,DODAG),維持網(wǎng)絡(luò)拓?fù)?,進(jìn)而優(yōu)化多點對一點(multipoint-to-point)通信,但并不支持移動環(huán)境。
本文以ER-RPL協(xié)議為基礎(chǔ),對ER-RPL協(xié)議進(jìn)行擴(kuò)展,并提出基于移動感知的能效路由(mobility aware energy efficient routing,MAEER)。MAEER路由提高了能量效率,并改進(jìn)路由機(jī)制,進(jìn)而支持移動環(huán)境。本文的主要工作可歸納兩點:1)最小化移動影響:針對目標(biāo)導(dǎo)向的有向無環(huán)圖(destination oriented directed acyclic graph,DODAG),MAEER路由在信息目標(biāo)(DODAG information object,DIO)消息和消息請求目標(biāo)(message request object,MRO)消息中添加了移動標(biāo)志。這些標(biāo)志使節(jié)點能感知到鄰居節(jié)點的移動狀態(tài)。2)維持移動設(shè)備至網(wǎng)絡(luò)的連接:利用動態(tài)的DODAG 信息收集(DODAG information solicitation,DIS)和DIO 傳播管理維持節(jié)點的連接。仿真實驗數(shù)據(jù)表明,提出的MAEER路由有效地降低能耗,并提高了數(shù)據(jù)包傳遞率。
ER-RPL協(xié)議是面向靜態(tài)節(jié)點而提出的路由,其將整個網(wǎng)絡(luò)劃分為區(qū),如圖1所示。并利用區(qū)信息發(fā)現(xiàn)P2P路由。它利用RPL的控制消息和Trickle定時器[6]維持DODAG。
圖1 區(qū)劃分示意
為了收集區(qū)信息和發(fā)現(xiàn)P 2P路由,ER-RPL路由引用控制信息:區(qū)形成目標(biāo)(region formation object,RFO)和消息請求目標(biāo)(message request object,MRO)。
同時,ER-RPL路由考慮兩類節(jié)點:參考節(jié)點(reference nodes,RN)和普通節(jié)點(normal nodes)。RNs知曉它們的位置,同時,RNs通過發(fā)送RFO消息將網(wǎng)絡(luò)劃分不同區(qū)。利用這些信息,節(jié)點就計算離RNs的邏輯距離,并引用分布式自區(qū)算法[5]決定自己的區(qū)。每個區(qū)由區(qū)編碼(region code,RC)識別,將RC矩陣稱為RC矩陣(RCM)。
對于P 2P路由請求,ER-RPL協(xié)議先確認(rèn)現(xiàn)存的RPL路由的成本。如果路由成本在應(yīng)用限制內(nèi),就啟動P 2P路由發(fā)現(xiàn)。依據(jù)源節(jié)點和目的節(jié)點區(qū)域信息,僅選擇一些區(qū)參數(shù)路由發(fā)現(xiàn)。通過這種方式,構(gòu)建臨時DODAG。源節(jié)點建立離目的節(jié)點路由,依據(jù)此路由傳輸數(shù)據(jù)。
為了使ER-PRL路由能夠應(yīng)用于移動場景,需對ER-RPL路由進(jìn)行擴(kuò)展。
MAEER路由基于ER-RPL進(jìn)行擴(kuò)展,通過增加一些機(jī)制使ER-RPL路由能適應(yīng)于移動環(huán)境,并發(fā)現(xiàn)鄰近最優(yōu)的P2P路由,同時降低能量消耗。MAEER路由的框架如圖2所示。
圖2 MAEER協(xié)議框架
MAEER協(xié)議的坐標(biāo)計算、歐氏距離計算、自區(qū)算法的工作類似于ER-RPL協(xié)議。最初,RNs在協(xié)調(diào)計算階段發(fā)送RFOs,再通過歐氏距離計算將節(jié)點劃分不同區(qū)域。然后,每個節(jié)點利用分布式自區(qū)算法[5]計算自己區(qū)。
為了支持MAEER協(xié)議的移性能,MAEER協(xié)議增添了動態(tài)DIS管理、DIO管理和區(qū)域決策階段和DODAG更新。
假定n個節(jié)點密集在分布于m2區(qū)域。移動節(jié)點數(shù)遠(yuǎn)小于靜態(tài)節(jié)點數(shù)。令TR為節(jié)點的傳輸半徑,且TR?m。網(wǎng)絡(luò)內(nèi)有N個RNs,且N?n。節(jié)點分布密度為ρ。在網(wǎng)絡(luò)內(nèi),除RNs外的其他節(jié)點不知道節(jié)點位置信息。
MAEER利用RPL維持拓?fù)浣Y(jié)構(gòu)。一個移動節(jié)點通過與其他節(jié)點的通信,連通網(wǎng)絡(luò)。在RPL協(xié)議中,當(dāng)移動節(jié)點移動至新的位置時,由于父節(jié)點的不一致,能夠檢測節(jié)點的移動性。因此,移動節(jié)點就重啟DIO定時器,一旦定時器結(jié)束,移動節(jié)點就傳輸DIO消息。
節(jié)點通過發(fā)送DIS消息收集信息。MAEER協(xié)議依據(jù)節(jié)點是否發(fā)生移動動態(tài)調(diào)整DIS消息發(fā)送率。兩個連續(xù)的DIS傳輸時期的間隔稱為DIS時期。具體而言,若節(jié)點移動,就對DIS時期減半,即增加DIS消息的傳輸時期;反之,若節(jié)點未移動時,則擴(kuò)展DIS時期,隨即又降低DIS傳輸率。以此動態(tài)地調(diào)整DIS傳輸率。
為了降低能量消耗,應(yīng)盡可能地選擇靜態(tài)節(jié)點而不是移動節(jié)點構(gòu)建鏈路,進(jìn)而提高鏈路穩(wěn)定性。為此,對DIO控制消息進(jìn)行擴(kuò)展,增添了2個字段:移動標(biāo)志和區(qū)域編碼,如圖3所示[5]。
圖3 DIO消息格式
通過添加這兩個字段,所有節(jié)點能夠感知其鄰居節(jié)點移動狀態(tài)和區(qū)編碼信息。利用鄰居節(jié)點的移動標(biāo)志,節(jié)點即可從多個節(jié)點中選擇一個靜態(tài)節(jié)點作為父節(jié)點。而DIO消息內(nèi)的RC信息允許協(xié)議充分利用了節(jié)點的區(qū)信息。通過設(shè)置這兩個字段,MAEER協(xié)議能夠依據(jù)移動節(jié)點位置動態(tài)地調(diào)整,進(jìn)而降低能耗。
在ER-RPL協(xié)議中,目標(biāo)節(jié)點作為P2P路徑發(fā)現(xiàn)的根節(jié)點。根節(jié)點沒有父節(jié)點,但有孩子節(jié)點。一旦根節(jié)點移動,就具有新的節(jié)點成為孩子節(jié)點。因此,可依據(jù)DIS時期內(nèi)的新孩子數(shù)判斷節(jié)點的移動性[6]。如果新增加的孩子節(jié)點數(shù)超過預(yù)定的最小新增加孩子的門限值時,就增加DIS傳輸和DIO傳輸率,具體過程如算法1所示。
圖4 算法1的偽代碼
具體而言,用child_added表示新增的孩子數(shù)。用Min_child_added表示child_added的最小值(門限值)。同時,引用布爾變量new_child_added。若節(jié)點的new_child_added=1,則說明該節(jié)點成為移動節(jié)點的新孩子節(jié)點。此時,child_added就需加1。Min_DIS_I和Max_DIS_I分別表示DIS時期的最小值和最大值。而Min_DIO_I和Max_DIO_I分別表示最小DIO時期和最大DIO時期。
通過更新DODAG,使得要根節(jié)點能夠為每一對通信實體選擇最優(yōu)的路由[7,8],這與P2P-RPL協(xié)議和ER-RPL協(xié)議類似。然而,P2P-RPL協(xié)議和ER-RPL協(xié)議是利用期望傳輸次數(shù)(expected transmission count,ETX)選擇節(jié)點作為它的父節(jié)點,這存在不足。當(dāng)節(jié)點移動,已不在孩子的通信范圍內(nèi)時,路徑就無效。
為此,必須考慮節(jié)點是否移動。MAEER路由協(xié)議對RFO消息進(jìn)行擴(kuò)展,在RFO內(nèi)添設(shè)了移動標(biāo)志[9],如圖5所示。MAEER路由是先是選擇靜態(tài)節(jié)點,然后再在靜態(tài)節(jié)點中選擇具有最小ETX的節(jié)點作為父節(jié)點,通過這種方式,降低因節(jié)點移動而導(dǎo)致的路由斷裂問題。
圖5 RFO格式的擴(kuò)展
為了更好地分析MAEER性能,選用Tmote Sky物聯(lián)網(wǎng)平臺。假定100個節(jié)點隨機(jī)分布于180 m×180 m區(qū)域。同時,網(wǎng)絡(luò)內(nèi)有4個RNs。對于90s的流量,隨機(jī)選擇節(jié)點作為源節(jié)點和目的節(jié)點。實驗中,10~40個P2P流量進(jìn)行分析。節(jié)點傳輸半徑為35 m,數(shù)據(jù)包尺寸為512字節(jié),整個仿真時間為100 s。
同時,選RPL、P2P-RPL和ME-RPL協(xié)議作為參照,并分析數(shù)據(jù)包傳遞率(packet delivery ratio,PDR)、每成功傳輸一個數(shù)據(jù)包所消耗的能量(energy consumption per data packet successfully delivered,ECPD)和平均跳數(shù)(average hop count,AHC)的性能。
首先分析P2P流量數(shù)對ECPD的性能影響,仿真數(shù)據(jù)如圖6所示。
圖6 ECPD隨P2P流量數(shù)的變化曲線
從圖6可知,提出的MAEER協(xié)議的ECPD最低。例如在P2P流量數(shù)為10,25和40時,MAEER協(xié)議比P2P-RPL協(xié)議的ECPD分別下降了近22 %,24 %和10 %。原因在于:P2P-RPL協(xié)議要求網(wǎng)絡(luò)內(nèi)每個節(jié)點參與P2P路由,這就使得在整個仿真時間內(nèi),節(jié)點均在消耗能量。而提出的MAEER協(xié)議在進(jìn)行P2P路由發(fā)現(xiàn)時,只影響已選擇區(qū)的能量消耗,而未選擇區(qū)中的節(jié)點能量就得到了保護(hù)。
圖7 數(shù)據(jù)包傳遞率
分析各協(xié)議的PDR性能,如圖7所示。從圖7可知,提出的MAEER協(xié)議的PDR最高。與P2P-RPL協(xié)議相比,MAEER協(xié)議的PDR在P2P流量數(shù)為10,25和40時,分別提高了近5 %,15 %和13.6 %。是由于當(dāng)節(jié)點一旦檢測到不一致時,MAEER協(xié)議就更新路由。而RPL和ME-RPL協(xié)議需要通過根節(jié)點更新路由,這必然造成擁塞和數(shù)據(jù)包丟失。
分析平均跳數(shù)AHC隨P2P流量數(shù)的變化情況如圖8所示。
圖8 平均跳數(shù)隨P2P流量的變化曲線
從圖8可知,提出的MAEER協(xié)議與P2P-RPL協(xié)議的平均跳數(shù)相近,并且優(yōu)于RPL和ME-RPL協(xié)議。原因在于:MAEER協(xié)議與P2P-RPL協(xié)議在構(gòu)建更新DODAG方式相似。
針對物聯(lián)網(wǎng)應(yīng)用中的數(shù)據(jù)傳輸問題,展開了分析。先討論了ER-RPL協(xié)議的不足,隨后提出改進(jìn)路由MAEER路由。MAEER路由考慮了節(jié)點的移動問題,并引用移動標(biāo)志。并且在選擇路由時,先考慮節(jié)點的移動性,然后選擇具有最低ETX的節(jié)點作為父節(jié)點。仿真數(shù)據(jù)表明,提出的MAEER路由有效地降低能效,并提高了數(shù)據(jù)包傳遞率。