何王吉,馬皛源,李 鑫,唐瑋圣
(1.中國科學(xué)院 上海高等研究院,上海 201210; 2.中國科學(xué)院大學(xué),北京 100049;3.上海科技大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201210)(*通信作者電子郵箱maxy@sari.ac.cn)
近年來,低功耗有損網(wǎng)絡(luò)(Low-power and Lossy Network,LLN)在醫(yī)療健康、環(huán)境監(jiān)測、智能家居、智能電網(wǎng)[1-4]等領(lǐng)域均有廣泛的應(yīng)用。由于傳感器節(jié)點(diǎn)的處理能力、存儲(chǔ)空間和能量都十分有限,且節(jié)點(diǎn)間通過不穩(wěn)定的無線鏈路相連,LLN具有拓?fù)洳环€(wěn)定、丟包率較高的特點(diǎn)。在LLN實(shí)際的應(yīng)用中,由于傳感器節(jié)點(diǎn)數(shù)量眾多以及環(huán)境條件的限制,不可能頻繁更換節(jié)點(diǎn)的電池,需要盡力延長網(wǎng)絡(luò)的生存時(shí)間,即網(wǎng)絡(luò)中最先死亡的節(jié)點(diǎn)的生存時(shí)間。
2008年,國際互聯(lián)網(wǎng)工程任務(wù)組成立了ROLL(Routing Over Low-power and Lossy network)工作組,對低功耗有損網(wǎng)絡(luò)制定了IPv6路由協(xié)議標(biāo)準(zhǔn)低功耗有損網(wǎng)絡(luò)路由協(xié)議(Routing Protocol for Low-power and lossy network, RPL)[5]。RPL是一種距離矢量路由協(xié)議,通過使用目標(biāo)函數(shù)(Objective Function,OF)和路由度量指導(dǎo)節(jié)點(diǎn)選擇一條到根節(jié)點(diǎn)的最佳路徑,來構(gòu)造導(dǎo)向目的地的有向無環(huán)圖(Destination Oriented Directed Acyclic Graph, DODAG)。路由協(xié)議需要周期性地廣播拓?fù)湫畔?以維護(hù)網(wǎng)絡(luò)拓?fù)洹榱藴p少控制包數(shù)量,RPL采用“Trickle”定時(shí)器機(jī)制維護(hù)網(wǎng)絡(luò)拓?fù)鋄6],它會(huì)根據(jù)網(wǎng)絡(luò)狀況動(dòng)態(tài)地調(diào)整控制包發(fā)送頻率。當(dāng)網(wǎng)絡(luò)穩(wěn)定時(shí),控制包間隔會(huì)成倍遞增,造成網(wǎng)絡(luò)后期控制包更新不及時(shí)。
官方已制定了兩種目標(biāo)函數(shù)(Objective Function, OF):零目標(biāo)函數(shù)(Objective Function Zero, OF0)[7]與帶有遲滯性的最小深度目標(biāo)函數(shù)(Minimum Rank with Hysteresis Objective Function, MRHOF)[8]。OF0以跳數(shù)作為路由度量,MRHOF以期望傳輸次數(shù)(Expected Transmission Count, ETX)[9]作為路由度量。這些路由度量都僅考慮了單一方面,會(huì)造成部分節(jié)點(diǎn)數(shù)據(jù)量增多,提前耗盡能量。
目前,已有一些研究對RPL性能進(jìn)行了分析比較。文獻(xiàn)[10]中顯示,在數(shù)據(jù)采集網(wǎng)絡(luò)中,相對于CTP(Collection Tree Protocol),RPL具有更好的收包率與低功耗特性。文獻(xiàn)[11]對比分析了RPL與LOADng(Lightweight On-demand Ad hoc Distance-vector routing protocol-next generation)協(xié)議性能,實(shí)驗(yàn)顯示,相對于LOADng協(xié)議,RPL的時(shí)延更小,控制包開銷與所需存儲(chǔ)空間也更少。
關(guān)于RPL優(yōu)化的研究中,文獻(xiàn)[12]中提出了一種最小化節(jié)點(diǎn)到root時(shí)延的路由度量,能有效降低RPL的端到端時(shí)延;文獻(xiàn)[13]中針對突發(fā)事件中的大數(shù)據(jù)流所導(dǎo)致的擁塞問題,提出了一種復(fù)合多種路由度量的多路徑負(fù)載均衡路由算法。根據(jù)不同鏈路分配的權(quán)值,將連續(xù)的大流量數(shù)據(jù)分發(fā)給不同的鏈路進(jìn)行傳輸,緩解了網(wǎng)絡(luò)擁塞,并且能夠均衡網(wǎng)絡(luò)負(fù)載。
在對RPL進(jìn)行能量優(yōu)化的研究中,文獻(xiàn)[14]中提出了一種期望壽命(Expected Life Time,ELT)路由度量用于估算網(wǎng)絡(luò)中瓶頸節(jié)點(diǎn)的生存時(shí)間,以此構(gòu)建網(wǎng)絡(luò)拓?fù)?并依據(jù)最大最小(Max-Min)原則選擇父節(jié)點(diǎn)。與RPL相比,改進(jìn)后ELT-RPL實(shí)現(xiàn)了能量均衡與網(wǎng)絡(luò)壽命的延長,但在收包率上性能下降,因?yàn)樵搮f(xié)議增加了控制包的數(shù)量造成包的碰撞概率增加。文獻(xiàn)[15]通過節(jié)點(diǎn)的能量分級和調(diào)節(jié)通信半徑的方法,改進(jìn)了RPL中的目標(biāo)函數(shù),并通過實(shí)驗(yàn)結(jié)果說明改進(jìn)后的算法能均衡網(wǎng)絡(luò)負(fù)載,延長整個(gè)網(wǎng)絡(luò)的生命周期,但會(huì)增加跳數(shù),并且存在網(wǎng)絡(luò)抖動(dòng)現(xiàn)象。在文獻(xiàn)[16]中,基于簇父集協(xié)作通信的RPL(Cluster parent set based RPL, CRPL)中沒有均衡節(jié)點(diǎn)能耗與最大化網(wǎng)絡(luò)生存時(shí)間的問題,提出了一種高效的CRPL(High-Efficient CEPL, HE-CEPL)。選擇簇父節(jié)點(diǎn)時(shí),同時(shí)考慮通信可靠性與節(jié)點(diǎn)可用能量,并引入期望壽命ELT進(jìn)行最優(yōu)簇父集選擇。文獻(xiàn)[17]將鏈路質(zhì)量與節(jié)點(diǎn)消耗能量相結(jié)合,提出了一種能量感知的RPL,與RPL相比,延長了網(wǎng)絡(luò)生存壽命。
上述工作雖然延長了一定的網(wǎng)絡(luò)生存時(shí)間,但都沒有解決網(wǎng)絡(luò)后期控制包發(fā)送頻率降低所造成的父節(jié)點(diǎn)狀態(tài)信息更新不及時(shí)的問題,該問題的存在會(huì)使節(jié)點(diǎn)作出錯(cuò)誤的路由決策,加速瓶頸節(jié)點(diǎn)的死亡。
本文在RPL的基礎(chǔ)上,綜合考慮鏈路可靠性和節(jié)點(diǎn)生存時(shí)間,設(shè)計(jì)了一種能量均衡的EB-RPL(Energy Balancing-RPL)。本文的工作主要有以下兩方面:
1)提出了一種復(fù)合期望傳輸次數(shù)和節(jié)點(diǎn)剩余能量的路由度量EB-ETX(Energy Balancing-Expected Transmission Count),前期優(yōu)先選擇可靠性高的鏈路,后期節(jié)點(diǎn)剩余能量減少,通過機(jī)制設(shè)計(jì)使其在路由度量中的比重升高,節(jié)點(diǎn)能自適應(yīng)地調(diào)整網(wǎng)絡(luò)拓?fù)?優(yōu)先選擇能量更多的節(jié)點(diǎn)為父節(jié)點(diǎn)。
2)設(shè)計(jì)了一種基于能量消耗速率的父節(jié)點(diǎn)電量估算算法,以解決RPL中“Trickle”定時(shí)器機(jī)制所導(dǎo)致的父節(jié)點(diǎn)狀態(tài)信息更新不及時(shí)的問題。
在RPL中,僅選定一種節(jié)點(diǎn)或鏈路屬性作為路由度量,并根據(jù)該度量建立DODAG,這會(huì)使部分節(jié)點(diǎn)能耗增加,提前死亡。例如,在圖1所示的拓?fù)渲?采用ETX作為路由度量,q反映鏈路質(zhì)量,其數(shù)值等于鏈路的期望傳輸次數(shù),數(shù)值越小表示其路徑的傳輸質(zhì)量越高;以節(jié)點(diǎn)距離根節(jié)點(diǎn)(root)的跳數(shù)表征節(jié)點(diǎn)的Rank等級,Rank越小表示節(jié)點(diǎn)距離root更近。為了避免產(chǎn)生路由環(huán)路,節(jié)點(diǎn)只能選擇Rank比自己小的節(jié)點(diǎn)作為父節(jié)點(diǎn)。以節(jié)點(diǎn)5為例,其到兩個(gè)父節(jié)點(diǎn)2、3的路由開銷(Path Cost)分別為5和3,因此節(jié)點(diǎn)5的最佳父節(jié)點(diǎn)為節(jié)點(diǎn)3。顯然在圖1的DODAG中,節(jié)點(diǎn)3為瓶頸節(jié)點(diǎn),由于子樹中節(jié)點(diǎn)眾多,其能耗顯著高于同級節(jié)點(diǎn),會(huì)成為網(wǎng)絡(luò)中最先死亡的節(jié)點(diǎn)。
圖1 以ETX為路由度量構(gòu)造的DODAG
因此,要延長網(wǎng)絡(luò)生存時(shí)間就要延長網(wǎng)絡(luò)中瓶頸節(jié)點(diǎn)的生存時(shí)間,并實(shí)現(xiàn)網(wǎng)絡(luò)中同級節(jié)點(diǎn)間的能量均衡,即相同Rank值的節(jié)點(diǎn)間的能量均衡,例如圖1中的節(jié)點(diǎn)2與節(jié)點(diǎn)3。網(wǎng)絡(luò)中不同位置的節(jié)點(diǎn)發(fā)揮著不同的作用,因此不能要求在root附近的關(guān)鍵節(jié)點(diǎn)與處于拓?fù)錁涞锥说娜~子節(jié)點(diǎn)之間能量均衡,因?yàn)榍罢叩哪芎谋厝皇秋@著高于后者的。此外,在實(shí)現(xiàn)能量均衡的同時(shí)要保證一定的鏈路可靠性,以滿足實(shí)際應(yīng)用需求。
為了解決上述問題,本文提出了能量均衡的EB-RPL。在網(wǎng)絡(luò)初期能量充足時(shí),節(jié)點(diǎn)會(huì)優(yōu)先選擇鏈路質(zhì)量最好的父節(jié)點(diǎn)構(gòu)成最優(yōu)路徑,以保證網(wǎng)絡(luò)的可靠傳輸;根據(jù)本文的機(jī)制設(shè)計(jì),隨著節(jié)點(diǎn)能量的降低,節(jié)點(diǎn)剩余能量在路由開銷中的比重會(huì)逐漸增大,當(dāng)剩余能量下降到一定程度時(shí),節(jié)點(diǎn)會(huì)優(yōu)先選擇剩余能量最多的節(jié)點(diǎn)為最佳父節(jié)點(diǎn),以避免鏈路質(zhì)量最優(yōu)的父節(jié)點(diǎn)成為網(wǎng)絡(luò)中的瓶頸節(jié)點(diǎn),最先耗盡能量。
路由度量是指選擇父節(jié)點(diǎn)時(shí)用于計(jì)算路由開銷時(shí)的鏈路或節(jié)點(diǎn)特征,常見的節(jié)點(diǎn)性質(zhì)有:跳數(shù)、剩余能量,鏈路性質(zhì)有:吞吐量、時(shí)延、期望傳輸次數(shù)。
為了構(gòu)造能兼顧鏈路質(zhì)量和節(jié)點(diǎn)剩余能量的路由度量,在計(jì)算路由開銷時(shí),需要量化鏈路質(zhì)量和節(jié)點(diǎn)的剩余能量(Residual Energy, RE),因此,本文提出以下公式來分別計(jì)算路由度量和路由開銷:
EB-ETXN→P=a·ETXN→P+b·RERN
(1)
PathCostN=PathCostP→root+EB-ETXN→P
(2)
其中:ETXN→P為期望傳輸次數(shù),表示節(jié)點(diǎn)N與父節(jié)點(diǎn)P之間的鏈路質(zhì)量;剩余能量率(Residual Energy Rate, RER)是反映節(jié)點(diǎn)能量的度量值,RERN表示節(jié)點(diǎn)N能量的剩余狀況;a與b分別為ETX與RER的權(quán)重系數(shù);PathCostP→root則表示父節(jié)點(diǎn)到root的路由開銷。通過式(1)可求得從節(jié)點(diǎn)N到父節(jié)點(diǎn)P的EB-ETX值,其取決于節(jié)點(diǎn)之間的鏈路質(zhì)量和節(jié)點(diǎn)N的剩余能量情況,并且可以根據(jù)不同的應(yīng)用需求來調(diào)節(jié)a與b的取值,當(dāng)a大于b時(shí),表示鏈路質(zhì)量在路由度量中的比重更大,適用于保證網(wǎng)絡(luò)高可靠性的應(yīng)用;反之,則用于需要延長網(wǎng)絡(luò)生存時(shí)間的應(yīng)用;當(dāng)兩者相等時(shí),適用于網(wǎng)絡(luò)生存時(shí)間和可靠性對其有著同等重要性的應(yīng)用。在本文的仿真實(shí)驗(yàn)中,為了在保證網(wǎng)絡(luò)可靠性的同時(shí)延長網(wǎng)絡(luò)生存時(shí)間,設(shè)定a為0.2,b為3。
式(2)表明了節(jié)點(diǎn)N到root的路由開銷由其到父節(jié)點(diǎn)的路由度量值與父節(jié)點(diǎn)到root的路由開銷組成。最終,節(jié)點(diǎn)到root的路由開銷由父節(jié)點(diǎn)到root的路由開銷、節(jié)點(diǎn)到父節(jié)點(diǎn)的鏈路質(zhì)量和節(jié)點(diǎn)剩余能量狀況三部分組成。節(jié)點(diǎn)將選擇路由開銷最小的節(jié)點(diǎn)作為自己的最優(yōu)父節(jié)點(diǎn)。
根據(jù)RFC 6551[18]中所給出的描述,鏈路的ETX值是指包從鏈路一端成功發(fā)送到另一端所需要傳輸?shù)拇螖?shù),它反映了雙向鏈路質(zhì)量,ETX越小說明鏈路越可靠。ETX的計(jì)算需要涉及到鏈路的雙向包接收率(包接收率為接收節(jié)點(diǎn)收包數(shù)與發(fā)送節(jié)點(diǎn)發(fā)包數(shù)之比)。ETX計(jì)算公式如下:
(3)
其中:PN→P表示節(jié)點(diǎn)N的包接收率,即N收到的數(shù)據(jù)包數(shù)量占父節(jié)點(diǎn)發(fā)包總數(shù)的比率;PP→N表示父節(jié)點(diǎn)的包接收率。
為了實(shí)現(xiàn)隨著節(jié)點(diǎn)剩余能量的減少,自適應(yīng)地增加剩余能量率在路由開銷中所占比重,本文設(shè)計(jì)了如下反比例公式:
RERN=E0/REN
(4)
其中:REN=E0-CEN;CEN表示節(jié)點(diǎn)N消耗的能量;E0表示節(jié)點(diǎn)初始的能量。因此節(jié)點(diǎn)的剩余能量率為節(jié)點(diǎn)初始能量與剩余能量的比值。
根據(jù)文獻(xiàn)[19],節(jié)點(diǎn)狀態(tài)主要分為cpu、lpm、listen和transmit,分別表示節(jié)點(diǎn)處于正常運(yùn)行、低功耗、監(jiān)聽和傳輸狀態(tài)。根據(jù)不同狀態(tài)的功率和運(yùn)行時(shí)間,可以統(tǒng)計(jì)節(jié)點(diǎn)的能量消耗情況:
(5)
P=U·I
(6)
其中:Pi表示在上述四種狀態(tài)下節(jié)點(diǎn)對應(yīng)的功率值;ti表示對應(yīng)狀態(tài)下的運(yùn)行時(shí)間。
設(shè)定電壓U為3 V,cpu、lpm、listen、transmit狀態(tài)下對應(yīng)的電流I分別為1.8 mA、0.054 mA、17.7 mA、20 mA,代入式(6)即可求得各個(gè)狀態(tài)對應(yīng)的功率值。同時(shí),利用Contiki操作系統(tǒng)[20]中的Energest函數(shù),可以得到節(jié)點(diǎn)在各個(gè)狀態(tài)下的運(yùn)行時(shí)間。
圖2所展示的是RER隨著節(jié)點(diǎn)電量消耗CE/E0的變化趨勢:在電池電量較充足時(shí)(消耗電量低于50%),RER值并沒有明顯地增大,電量消耗從0%增至50%,RER值僅增加了1;隨著節(jié)點(diǎn)能量進(jìn)一步降低,特別是在消耗80%的能量以后,RER值則會(huì)顯著增大。通過上述機(jī)制設(shè)計(jì),使得節(jié)點(diǎn)在網(wǎng)絡(luò)初期優(yōu)先選擇可靠鏈路,保證拓?fù)涞姆€(wěn)定性和網(wǎng)絡(luò)傳輸?shù)目煽啃?而在后期網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)能量受限時(shí),優(yōu)先選擇剩余能量最多的節(jié)點(diǎn)構(gòu)成最優(yōu)路徑,以延長網(wǎng)絡(luò)中瓶頸節(jié)點(diǎn)的生存時(shí)間。
圖2 RER值隨節(jié)點(diǎn)電量消耗的趨勢
以圖1中的網(wǎng)絡(luò)拓?fù)錇槔?當(dāng)采用EB-RPL時(shí),網(wǎng)絡(luò)初期,由于節(jié)點(diǎn)3提供更好的鏈路質(zhì)量,節(jié)點(diǎn)5、7、8都選擇節(jié)點(diǎn)3作為最佳父節(jié)點(diǎn);隨著網(wǎng)絡(luò)中節(jié)點(diǎn)剩余能量降低,節(jié)點(diǎn)5和6又分別選擇剩余能量更多的節(jié)點(diǎn)2和4作為自己的最佳父節(jié)點(diǎn),如圖3所示。這種自適應(yīng)調(diào)整拓?fù)涞牟呗钥梢匝娱L網(wǎng)絡(luò)中瓶頸節(jié)點(diǎn)的生存時(shí)間,并實(shí)現(xiàn)節(jié)點(diǎn)間能量均衡,從而延長網(wǎng)絡(luò)生存時(shí)間。
圖3 使用EB-RPL時(shí)的網(wǎng)絡(luò)拓?fù)渥兓?/p>
當(dāng)采用上述復(fù)合路由度量時(shí),節(jié)點(diǎn)會(huì)定期廣播包含自身信息的控制包,用于子節(jié)點(diǎn)計(jì)算、更新路由開銷。由于LLN的低功耗特性,RPL采取了“Trickle”定時(shí)器機(jī)制管理控制包發(fā)送,它會(huì)根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)地調(diào)整控制包發(fā)送頻率。如果網(wǎng)絡(luò)穩(wěn)定(沒有節(jié)點(diǎn)加入或死亡等),下一次發(fā)送間隔I會(huì)取當(dāng)前間隔的2倍,直至I等于I_max。RPL中默認(rèn)的I_max為220s,即在網(wǎng)絡(luò)后期最長的控制包間隔為17 min。這會(huì)導(dǎo)致節(jié)點(diǎn)無法正確獲知父節(jié)點(diǎn)的狀態(tài)變化,例如父節(jié)點(diǎn)實(shí)際能量已經(jīng)接近耗盡,但子節(jié)點(diǎn)按照前一次收到的控制包中的狀態(tài)值來計(jì)算路由開銷,仍選擇該節(jié)點(diǎn)為最佳父節(jié)點(diǎn)。如果減小控制包的發(fā)包間隔又會(huì)導(dǎo)致網(wǎng)絡(luò)中控制包數(shù)量增多,增大包的碰撞概率和網(wǎng)絡(luò)能耗。
對此,本文提出了一種基于能量消耗速率的節(jié)點(diǎn)電量估算策略,該策略在不增加額外控制包開銷的同時(shí),可以計(jì)算父節(jié)點(diǎn)剩余能量情況。
在電量估算策略中,節(jié)點(diǎn)會(huì)周期性地計(jì)算自己的剩余能量,并記錄下當(dāng)前時(shí)間t1與對應(yīng)的REt1;在下一時(shí)刻t2時(shí),若計(jì)算得到的REt2≠REt1,便根據(jù)式(7)計(jì)算節(jié)點(diǎn)的能量消耗速率(Energy Consumption Rate, ECR)。
(7)
此外,利用EWMA(Exponentially Weighted Moving- Average)函數(shù)可以得到更平穩(wěn)的ECR值:
ECRfinal=0.4ECRold+0.6ECRnew
(8)
式(8)表明最終的能量消耗速率ECRfinal是對上一次的ECRold與當(dāng)前的ECRnew進(jìn)行移動(dòng)平均后得到的。因此,節(jié)點(diǎn)發(fā)送的控制包中將包含自身的EB-ETX、RE以及ECR值。
子節(jié)點(diǎn)收到控制包后,會(huì)在鄰居表中記錄父節(jié)點(diǎn)的狀態(tài)信息和收包時(shí)間,此后若等待時(shí)間Δt大于門限值t0(全網(wǎng)統(tǒng)一的等待門限,仿真實(shí)驗(yàn)中設(shè)為50 s)時(shí),仍未收到對應(yīng)父節(jié)點(diǎn)的新的控制消息,則根據(jù)父節(jié)點(diǎn)上一次的剩余能量和能量消耗速率估算當(dāng)前的剩余能量:
(9)
其中:REinitial為鄰居表中存儲(chǔ)的最新父節(jié)點(diǎn)剩余能量值;REest是對父節(jié)點(diǎn)當(dāng)前剩余能量的估值;REest_last表示前一次計(jì)算的父節(jié)點(diǎn)剩余能量估值。式(9)的含義是,當(dāng)?shù)谝淮喂浪愀腹?jié)點(diǎn)剩余能量時(shí),參照REinitial計(jì)算估值;此后,每次參照上次的估值REest_last估算當(dāng)前的父節(jié)點(diǎn)剩余能量。
將得到的REest代入式(4)計(jì)算剩余能量率增量:
(10)
利用ΔRER即可更新當(dāng)前父節(jié)點(diǎn)到root的路由開銷PathCostparent_est,將其代入式(2)便可得到當(dāng)前節(jié)點(diǎn)到root的路由開銷:
(11)
其中:PathCostparent是最近一次控制包中包含的父節(jié)點(diǎn)到root的路由開銷。在每完成一輪計(jì)算后,子節(jié)點(diǎn)會(huì)在鄰居表中記錄當(dāng)前時(shí)間、對應(yīng)的父節(jié)點(diǎn)剩余能量估值REest與RER增量ΔRER,并按照上述步驟重新開始新一輪計(jì)算。當(dāng)?shù)却龝r(shí)間未達(dá)到門限值t0時(shí),節(jié)點(diǎn)根據(jù)鄰居表中存儲(chǔ)的ΔRER仍按照式(11)計(jì)算路由開銷。
同時(shí),為了避免由于長時(shí)間未收到控制包,出現(xiàn)對父節(jié)點(diǎn)能量估值不準(zhǔn)確的情況,若子節(jié)點(diǎn)超過10 min未收到新的控制消息或REest≤REinitial/3,會(huì)向父節(jié)點(diǎn)發(fā)送控制包請求信息,父節(jié)點(diǎn)收到后則回復(fù)新的控制包。
通過上述父節(jié)點(diǎn)電量估算策略,可以在基本不增加額外的控制包的同時(shí),實(shí)時(shí)更新父節(jié)點(diǎn)到root的路由開銷,使節(jié)點(diǎn)進(jìn)行更正確的最佳父節(jié)點(diǎn)選擇。
本章通過仿真實(shí)驗(yàn)分別對父節(jié)點(diǎn)電量估算策略的正確性與EB-RPL性能進(jìn)行了分析與驗(yàn)證。
首先,為了驗(yàn)證父節(jié)點(diǎn)電量估算策略的準(zhǔn)確性,本文計(jì)算了電量估值與實(shí)際值間誤差的均值與方差。
然后,本文對EB-RPL與RPL分別作了仿真分析,并對比了兩者的協(xié)議性能,以驗(yàn)證EB-RPL能實(shí)現(xiàn)能量均衡并延長網(wǎng)絡(luò)生存時(shí)間,其中RPL使用ETX為路由度量。本文使用的仿真平臺(tái)是Contiki 2.7操作系統(tǒng),仿真工具是Cooja仿真器。
本文主要采用下列三種性能指標(biāo)進(jìn)行協(xié)議的對比分析:
1)網(wǎng)絡(luò)生存時(shí)間。以網(wǎng)絡(luò)中第一個(gè)死亡的節(jié)點(diǎn)生存時(shí)間作為網(wǎng)絡(luò)的生存時(shí)間,為模擬真實(shí)場景中的通信系統(tǒng),當(dāng)節(jié)點(diǎn)剩余能量僅為初始能量的10%時(shí),視為該節(jié)點(diǎn)死亡。
2)能量均衡。以Rank值為1的節(jié)點(diǎn)功率的標(biāo)準(zhǔn)差來表征網(wǎng)絡(luò)中的能量均衡性能,數(shù)值越小說明節(jié)點(diǎn)間能量越均衡。
3)收包率。定義為根節(jié)點(diǎn)成功收包數(shù)與網(wǎng)絡(luò)中發(fā)包總數(shù)的比率,收包率越高說明網(wǎng)絡(luò)越可靠。
本文的仿真場景由21個(gè)Exp5438節(jié)點(diǎn)組成,其中節(jié)點(diǎn)1為根節(jié)點(diǎn)(通常使用電源供電,默認(rèn)其能量充足,子節(jié)點(diǎn)始終視其為滿電狀態(tài)),其余均為傳感器節(jié)點(diǎn),如圖4所示。
圖4 仿真場景
為了模擬現(xiàn)實(shí)場景,本文的相關(guān)參數(shù)設(shè)置如表1所示。其中關(guān)于初始能量的參數(shù)設(shè)置,考慮如下:實(shí)際應(yīng)用中,節(jié)點(diǎn)通過干電池供電,通常干電池電壓為1.5 V,電池容量約為1 200 mAh,計(jì)算可得其能量為6 500 J。為了便于在仿真平臺(tái)上進(jìn)行多次重復(fù)驗(yàn)證,實(shí)驗(yàn)將節(jié)點(diǎn)的初始能量設(shè)為6.5 J。
表1 仿真環(huán)境與參數(shù)設(shè)置
為了分析驗(yàn)證父節(jié)點(diǎn)電量估算策略的準(zhǔn)確性,本文利用圖4中的仿真場景,設(shè)定發(fā)包間隔為5 s,路由層運(yùn)行EB-RPL。根據(jù)第2章中所述,子節(jié)點(diǎn)會(huì)計(jì)算經(jīng)過不同父節(jié)點(diǎn)到根節(jié)點(diǎn)的路由開銷,并選擇其中開銷最小的父節(jié)點(diǎn)為最佳父節(jié)點(diǎn)。以節(jié)點(diǎn)14為例,在圖4所示的拓?fù)渲?節(jié)點(diǎn)14的子節(jié)點(diǎn)19、20、21在計(jì)算路由開銷時(shí)都需估算節(jié)點(diǎn)14的實(shí)時(shí)電量,通過記錄子節(jié)點(diǎn)的電量估值與對應(yīng)時(shí)刻節(jié)點(diǎn)14的實(shí)際電量,根據(jù)式(12)可求得此次估值誤差ΔE(t):
ΔE(t)=|REest(t)-REreal(t)|
(12)
其中:REest(t)表示t時(shí)刻子節(jié)點(diǎn)對父節(jié)點(diǎn)的電量估值;REreal(t)表示t時(shí)刻該父節(jié)點(diǎn)的實(shí)際電量。根據(jù)上述過程,可得到網(wǎng)絡(luò)生存周期內(nèi)不同時(shí)刻,節(jié)點(diǎn)19、20、21對父節(jié)點(diǎn)14電量估值的誤差分布情況,如圖5所示。圖5顯示節(jié)點(diǎn)14的相鄰子節(jié)點(diǎn)19、20、21對其電量估值的誤差范圍為0%~3%。
圖5 節(jié)點(diǎn)14的子節(jié)點(diǎn)電量估值誤差分布
同時(shí),可以進(jìn)一步算出節(jié)點(diǎn)14的子節(jié)點(diǎn)對其電量估值誤差的均值為0.5,方差為0.3。通過統(tǒng)計(jì)網(wǎng)絡(luò)生存周期內(nèi),所有節(jié)點(diǎn)的子節(jié)點(diǎn)對其電量估值的誤差,并計(jì)算誤差的均值與方差,最終可得到表2。由于節(jié)點(diǎn)1始終被視為滿電狀態(tài),節(jié)點(diǎn)17~21是網(wǎng)絡(luò)中的葉子節(jié)點(diǎn),沒有相應(yīng)的子節(jié)點(diǎn),故均不在表中。表2中所有節(jié)點(diǎn)的電量估值誤差的均值范圍為0.5%~2.8%,方差范圍為0.4~5.6,說明在網(wǎng)絡(luò)生存周期內(nèi),本文所提出的父節(jié)點(diǎn)電量估算策略均能達(dá)到較高的準(zhǔn)確性。
表2 節(jié)點(diǎn)的子節(jié)點(diǎn)對其電量估值的誤差
在圖4所示的仿真場景中,設(shè)定發(fā)包間隔為5 s,路由層分別運(yùn)行RPL與EB-RPL。在兩種協(xié)議的網(wǎng)絡(luò)拓?fù)渲?節(jié)點(diǎn)3均為瓶頸節(jié)點(diǎn),其剩余能量隨仿真時(shí)間變化如圖6所示。隨著實(shí)驗(yàn)的進(jìn)行,節(jié)點(diǎn)3的剩余能量逐漸減少,與RPL相比,EB-RPL中節(jié)點(diǎn)能量的消耗速率更低,并且網(wǎng)絡(luò)后期的下降速率變慢。最終,在RPL與EB-RPL中,網(wǎng)絡(luò)的生存時(shí)間分別為1 334 s和2 200 s,改進(jìn)后的網(wǎng)絡(luò)生存時(shí)間延長了65%。
這是因?yàn)樵赗PL中,只采用ETX為路由度量,網(wǎng)絡(luò)拓?fù)湟坏┙?只要網(wǎng)絡(luò)穩(wěn)定,其拓?fù)鋵⒉辉侔l(fā)生變化。即子節(jié)點(diǎn)一旦選定父節(jié)點(diǎn),便會(huì)始終向它發(fā)包,不會(huì)再更換父節(jié)點(diǎn),直至該父節(jié)點(diǎn)死亡。在這種情況下,類似節(jié)點(diǎn)3這種數(shù)據(jù)量大、鏈路質(zhì)量突出的節(jié)點(diǎn)的能耗往往會(huì)顯著高于其他節(jié)點(diǎn),成為網(wǎng)絡(luò)中的瓶頸節(jié)點(diǎn)。而在EB-RPL中,采用復(fù)合ETX和節(jié)點(diǎn)剩余能量的EB-ETX作為路由度量,并且根據(jù)本文的機(jī)制設(shè)計(jì),隨著節(jié)點(diǎn)剩余能量的降低,其在路由度量中所占比重會(huì)顯著升高。即在后期網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)能量受限時(shí),會(huì)自適應(yīng)地調(diào)整網(wǎng)絡(luò)拓?fù)?優(yōu)先選擇剩余能量最多的父節(jié)點(diǎn)構(gòu)成最優(yōu)路徑。因此,改進(jìn)后的EB-RPL能夠有效延長網(wǎng)絡(luò)生存時(shí)間。
圖6 瓶頸節(jié)點(diǎn)生存時(shí)間比較
考慮到不同數(shù)據(jù)流量的LLN應(yīng)用需求,在圖4的仿真場景中比較了不同發(fā)包間隔時(shí)兩種路由協(xié)議的網(wǎng)絡(luò)生存時(shí)間,結(jié)果如圖7(a)所示。實(shí)驗(yàn)結(jié)果顯示,在不同的發(fā)包間隔下,EB-RPL比RPL平均延長了29.4%的網(wǎng)絡(luò)生存時(shí)間。
圖7 不同發(fā)包間隔和網(wǎng)絡(luò)規(guī)模中網(wǎng)絡(luò)的生存時(shí)間比較
為了驗(yàn)證在不同的網(wǎng)絡(luò)規(guī)模下EB-RPL均有穩(wěn)定的性能,設(shè)定發(fā)包間隔為5 s,在仿真區(qū)域內(nèi)均勻部署10~60個(gè)節(jié)點(diǎn),并對比了兩種路由協(xié)議在不同規(guī)模的網(wǎng)絡(luò)中的生存時(shí)間,結(jié)果如圖7(b)所示。在不同的網(wǎng)絡(luò)規(guī)模下,EB-RPL的網(wǎng)絡(luò)生存時(shí)間均顯著優(yōu)于RPL,比RPL平均延長網(wǎng)絡(luò)生存時(shí)間達(dá)37.4%。
發(fā)包間隔變小和網(wǎng)絡(luò)規(guī)模增大對網(wǎng)絡(luò)的影響是類似的,網(wǎng)絡(luò)中數(shù)據(jù)流量都會(huì)隨之增大,導(dǎo)致網(wǎng)絡(luò)生存時(shí)間變短。在RPL中,只要網(wǎng)絡(luò)狀態(tài)穩(wěn)定,節(jié)點(diǎn)到root的最優(yōu)路徑始終是不變的,這會(huì)導(dǎo)致瓶頸節(jié)點(diǎn)提前死亡,特別是在網(wǎng)絡(luò)流量大的情況下,這一問題更加凸顯。而在EB-RPL中,隨著節(jié)點(diǎn)剩余能量的減少,會(huì)自適應(yīng)地調(diào)整網(wǎng)絡(luò)拓?fù)?提升網(wǎng)絡(luò)生存時(shí)間。
網(wǎng)絡(luò)中的能量均衡也是比較路由協(xié)議性能的重要指標(biāo)之一,但這并非指全網(wǎng)中所有節(jié)點(diǎn)間的能量均衡,因?yàn)橹挥型壒?jié)點(diǎn)間才有進(jìn)行能耗比較的意義。
本文中采用Rank值為1的節(jié)點(diǎn)功率的標(biāo)準(zhǔn)差作為評判能量均衡的指標(biāo)。在圖4的仿真場景中,根節(jié)點(diǎn)的一跳鄰居分別是節(jié)點(diǎn)2、3、4,為了證明EB-RPL能實(shí)現(xiàn)節(jié)點(diǎn)間能量均衡,本文比較了在不同發(fā)包間隔時(shí),這三個(gè)節(jié)點(diǎn)功率的分布情況。由圖8可知,當(dāng)發(fā)包間隔變大時(shí),網(wǎng)絡(luò)總流量變小,節(jié)點(diǎn)的功耗隨之降低,同時(shí)在不同的發(fā)包間隔下,EX-RPL中節(jié)點(diǎn)功率的標(biāo)準(zhǔn)差都顯著低于RPL。這是因?yàn)镋X-RPL中的自適應(yīng)拓?fù)湔{(diào)整策略,在網(wǎng)絡(luò)的不同時(shí)期,節(jié)點(diǎn)會(huì)調(diào)整最佳路徑,從而避免了網(wǎng)絡(luò)中瓶頸節(jié)點(diǎn)的產(chǎn)生。
圖8 不同發(fā)包間隔時(shí)Rank值為1的節(jié)點(diǎn)功率分布情況
上述實(shí)驗(yàn)表明EB-RPL能均衡網(wǎng)絡(luò)能量,延長網(wǎng)絡(luò)生存時(shí)間,本文進(jìn)一步對網(wǎng)絡(luò)的可靠性進(jìn)行驗(yàn)證。固定發(fā)包間隔為5 s,在仿真區(qū)域內(nèi)均勻部署10~60個(gè)節(jié)點(diǎn),比較在不同網(wǎng)絡(luò)規(guī)模中采用兩種協(xié)議的網(wǎng)絡(luò)收包率。
根據(jù)圖9的仿真結(jié)果,當(dāng)網(wǎng)絡(luò)規(guī)模增大時(shí),網(wǎng)絡(luò)中包的數(shù)量和碰撞概率也隨之升高,導(dǎo)致網(wǎng)絡(luò)擁塞,造成更多的數(shù)據(jù)包丟失。采用RPL時(shí),節(jié)點(diǎn)始終選擇鏈路質(zhì)量最好的父節(jié)點(diǎn)為最佳父節(jié)點(diǎn),導(dǎo)致這些節(jié)點(diǎn)產(chǎn)生嚴(yán)重的網(wǎng)絡(luò)擁塞現(xiàn)象,造成丟包。改進(jìn)后的EB-RPL在網(wǎng)絡(luò)后期會(huì)重新調(diào)整拓?fù)?減小了出現(xiàn)嚴(yán)重?fù)砣F(xiàn)象的概率。因此,在不同網(wǎng)絡(luò)規(guī)模下,采用EB-RPL的網(wǎng)絡(luò)收包率均高于RPL,且隨著網(wǎng)絡(luò)規(guī)模增大,這種優(yōu)勢會(huì)逐漸增大,當(dāng)節(jié)點(diǎn)數(shù)量為60時(shí),收包率較RPL提升了20%。
圖9 不同網(wǎng)絡(luò)規(guī)模下網(wǎng)絡(luò)的收包率比較
針對RPL中存在瓶頸節(jié)點(diǎn)能耗突出、網(wǎng)絡(luò)生存時(shí)間短的問題,本文提出了一種兼顧鏈路可靠性和網(wǎng)絡(luò)生存時(shí)間的EB-RPL。該協(xié)議在RPL基礎(chǔ)上進(jìn)行優(yōu)化,提出了一種復(fù)合期望傳輸次數(shù)和節(jié)點(diǎn)剩余能量的路由度量EB-ETX;并在此基礎(chǔ)上設(shè)計(jì)了一種基于能量消耗速率的父節(jié)點(diǎn)電量估算策略,以解決RPL中“Trickle”定時(shí)器機(jī)制導(dǎo)致的父節(jié)點(diǎn)狀態(tài)信息更新不及時(shí)的問題。EB-RPL利用父節(jié)點(diǎn)估算電量可以及時(shí)更新路由開銷,自適應(yīng)地調(diào)整網(wǎng)絡(luò)拓?fù)?實(shí)現(xiàn)了節(jié)點(diǎn)間的能量均衡,并有效延長了網(wǎng)絡(luò)生存時(shí)間。通過仿真分析表明,父節(jié)點(diǎn)電量估算策略具有較高的準(zhǔn)確性;同時(shí)與RPL相比,EB-RPL能有效實(shí)現(xiàn)能量均衡、顯著延長網(wǎng)絡(luò)生存時(shí)間,其中最高延長了65%的網(wǎng)絡(luò)生存時(shí)間。
參考文獻(xiàn)(References)
[1] GARA F, SAAD L B, AVED R B, et al. RPL protocol adapted for healthcare and medical applications [C]// Proceedings of the 2015 International Wireless Communications and Mobile Computing Conference. Piscataway, NJ: IEEE, 2015: 690-695.
[2] XU G B, SHEN W M, WANG X B. Applications of wireless sensor networks in marine environment monitoring: a survey [J]. Sensors, 2014, 14(9): 16932-16954.
[3] WANG H Y, WANG J Y, HUANG M. Building a smart home system with WSN and service robot [C]// Proceedings of the 2013 Fifth International Conference on Measuring Technology and Mechatronics Automation. Piscataway, NJ: IEEE, 2013: 353-356.
[4] ANCILLOTTI E, BRUNO R, CONTI M. The role of the RPL routing protocol for smart grid communications [J]. IEEE Communications Magazine, 2013, 51(1): 75-83.
[5] WINTER T, THUBERT P, BRANDT A, et al. RPL: IPv6 routing protocol for low-power and lossy networks: RFC6550 [S]. Geneva: IETF, 2012: 1-157.
[6] LEVIS P, PATEL N, CULLER D, et al. Trickle: a self-regulating algorithm for code propagation and maintenance in wireless sensor networks [C]// Proceedings of the First Conference on Symposium on Networked Systems Design and Implementation. New York: ACM, 2004: 2-13.
[7] THUBERT P. Objective function zero for the routing protocol for low-power and lossy networks: RFC 6552 [S]. Geneva: IETF, 2012: 1-14.
[8] GNAWALI O, LEVIS P. The minimum rank with hysteresis objective function: RFC 6719[S]. Geneva: IETF, 2012: 1-14.
[9] COUTO D, AGUAYO D, BICKET J, et al. A high-throughput path metric for multi-hop wireless routing [J]. Wireless Networks, 2005, 11(4): 419-434.
[10] LONG N T, DECARO N, COLITTI W, et al. Comparative performance study of RPL in wireless sensor networks [C]// Proceedings of the 2012 IEEE 19th Symposium on Communications and Vehicular Technology in the Benelux. Piscataway, NJ: IEEE, 2012: 741-746.
[11] VUCINIC M, TOURANCHEAU B, DUDA A. Performance comparison of the RPL and LOADng routing protocols in a home automation scenario [C]// Proceedings of 2013 IEEE Wireless Communications and Networking Conference. Piscataway, NJ: IEEE, 2013: 1974-1979.
[12] GONIZZI P, MONICA R, FERRARI G. Design and evaluation of a delay-efficient RPL routing metric [C]// Proceedings of the 2013 9th International Wireless Communications and Mobile Computing Conference. Piscataway, NJ: IEEE, 2013: 1573-1577.
[13] TANG W, MA X, HUANG J, et al. Toward improved RPL: a congestion avoidance multipath routing protocol with time factor for wireless sensor networks [J]. Journal of Sensors, 2016, 10(2): 189-201.
[14] IOVA O, THEOLEVRE F, NNOEL T. Improving the network lifetime with energy-balancing routing: application to RPL [C]// Proceedings of the IEEE 7th Wireless and Mobile Networking Conference. Piscataway, NJ: IEEE, 2014: 121-128.
[15] 仇英輝, 陳玲.基于普通節(jié)點(diǎn)負(fù)載均衡的RPL路由協(xié)議[J]. 傳感技術(shù)學(xué)報(bào), 2016, 29(7): 1077-1082.(QIU Y H, CHEN L. The RPL routing protocal based on load balance of ordinary node [J]. Chinese Journal of Sensors and Actuators, 2016, 29(7): 1077-1082.)
[16] 姚玉坤, 劉江兵, 李小勇.基于簇父集協(xié)作通信的低功耗有損網(wǎng)絡(luò)路由算法優(yōu)化[J]. 計(jì)算機(jī)應(yīng)用, 2017, 37(5): 1300-1305.(YAO Y K, LIU J B, LI X Y. Optimized routing algorithm based on cooperative communication of cluster parent set for low power and lossy network [J]. Journal of Computer Applications, 2017, 37(5): 1300-1305.)
[17] 齊玥.基于RPL協(xié)議的路由度量標(biāo)準(zhǔn)研究與改進(jìn)[D]. 蘭州: 蘭州大學(xué), 2016: 15-36.(QI Y. Research and improvement of routing metric based on RPL [D]. Lanzhou: Lanzhou University, 2016: 15-36.)
[18] VASSEUR J, KIM M, PISTER K, et al. Routing metrics used for path calculation in low-power and lossy networks: RFC 6551 [S]. Geneva: IETF, 2012: 1-30.
[19] BUETTNER M, YEE G V, ANDERSON E, et al. X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks [C]// Proceedings of the 4th International Conference on Embedded Networked Sensor Systems. New York: ACM, 2006: 307-320.
[20] DUNKELS A, GRONVALL B, VOIGT T. Contiki — a lightweight and flexible operating system for tiny networked sensors [C]// Proceedings of 29th Annual IEEE International Conference on Local Computer Networks. Piscataway, NJ: IEEE, 2004: 455-462.
This work is partially supported by the National Key R&D Program of China (2016YFC0801505).