摘 要: 針對AODVjr算法在路由發(fā)現(xiàn)過程中會產(chǎn)生RREQ洪泛,導(dǎo)致節(jié)點能量消耗過快的問題,,提出了一種改進(jìn)的ZigBee網(wǎng)絡(luò)路由算法,。改進(jìn)算法通過鄰居表限定RREQ傳輸范圍和父子節(jié)點的傳遞方向,計算路由代價并根據(jù)節(jié)點剩余能量動態(tài)劃分所處的能量區(qū)域,,根據(jù)3種能量區(qū)域進(jìn)行差異化路由發(fā)現(xiàn),,動態(tài)回避剩余能量較低的節(jié)點并發(fā)現(xiàn)能量較高的節(jié)點。仿真實驗結(jié)果表明,,改進(jìn)算法能實現(xiàn)節(jié)點的能量動態(tài)平衡,,有效控制網(wǎng)絡(luò)的總體能量消耗,,減少死點個數(shù)和減緩死點出現(xiàn)的頻率。
關(guān)鍵詞: ZigBee,;能量平衡,;剩余能量;路由代價
ZigBee技術(shù)是一種近距離,、低復(fù)雜度,、低功耗、低速率和低成本的雙向無線通信技術(shù),,主要用于距離短,、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時間數(shù)據(jù)傳輸?shù)膽?yīng)用[1-2],。它可工作在2.4 GHz,、868 MHz和915 MHz 3個頻段上,分別具有最高250 kb/s,、20 kb/s和40 kb/s的傳輸速率,,傳輸距離在10~75 m的范圍內(nèi)。
1 問題提出
ZigBee支持AODVjr算法[3],,該算法在路由發(fā)現(xiàn)過程中會產(chǎn)生冗余的RREQ,,這些多余的RREQ無助于路由發(fā)現(xiàn),反而容易引起RREQ洪泛,,增加網(wǎng)絡(luò)功耗,。直接丟棄這些多余的RREQ就能有效避免RREQ洪泛[4-5]。
與AODVjr算法相比,,Clsuter-Tree算法僅考慮轉(zhuǎn)發(fā)節(jié)點與父節(jié)點和子節(jié)點之間的關(guān)系,,忽略了鄰居節(jié)點的跳數(shù)優(yōu)化。這樣即使目的節(jié)點就在發(fā)送節(jié)點的一跳范圍之內(nèi),,數(shù)據(jù)包也必須按照原始拓?fù)浣Y(jié)構(gòu)傳送到目的節(jié)點,,而不能直接傳送到目的節(jié)點,導(dǎo)致RREQ疊加洪泛效應(yīng)非常嚴(yán)重,。
另外,,距離中心協(xié)調(diào)器ZC越近的FFD節(jié)點,網(wǎng)絡(luò)深度越小,,通信負(fù)擔(dān)越重,,需要轉(zhuǎn)發(fā)的數(shù)據(jù)量越多,消耗的能量越多,,節(jié)點電池能量會過早耗盡,。當(dāng)節(jié)點剩余能量少于正常工作所需的能量時,節(jié)點自身就不能與其他節(jié)點通信,,即產(chǎn)生死點,,這樣,,網(wǎng)絡(luò)斷開的可能性就大大增加。
基于以上這些問題,,本文提出了一種基于能量優(yōu)化的ZigBee網(wǎng)絡(luò)路由算法,。
2 算法分析
2.1 路由代價
路由代價是路由發(fā)現(xiàn)中當(dāng)前節(jié)點被選擇為新路由節(jié)點所消耗的能量。路由代價越大,,消耗能量越大,,成為路由節(jié)點的可能性就越低。
結(jié)合ZigBee網(wǎng)絡(luò),,對FFD節(jié)點定義統(tǒng)一的路由代價[6],,即:
2.3 差異化能量區(qū)域
根據(jù)最小剩余能量、節(jié)點剩余能量和能量充足閾值的定義,,劃分能量值為能量充足,、能量低和能量報警3個區(qū)域。
參考文獻(xiàn)[7]定義的最小剩余能量對節(jié)點網(wǎng)絡(luò)深度沒有進(jìn)行區(qū)分,,而網(wǎng)絡(luò)深度和能量消耗恰好成反比,。深度越小的節(jié)點,轉(zhuǎn)發(fā)的數(shù)據(jù)量越多,,消耗的能量越多,,所以要為深度越小的節(jié)點預(yù)留更多的最小剩余能量。
假設(shè)節(jié)點初始能量為energy,,定義任意節(jié)點i的最小剩余能量Emin residual:
?。?)更新路由代價、剩余能量值,。
?。?)方向標(biāo)志位mark判斷。
如果mark=0,,說明目的節(jié)點位置處于當(dāng)前節(jié)點的后裔節(jié)點,。如果當(dāng)前節(jié)點是上一節(jié)點的父節(jié)點,當(dāng)前節(jié)點立即丟棄RREQ,;如果當(dāng)前節(jié)點不是上一節(jié)點的父節(jié)點,,則判斷目的節(jié)點是否是當(dāng)前節(jié)點的后裔節(jié)點。如果是,,當(dāng)前節(jié)點直接轉(zhuǎn)發(fā)RREQ,,并更新自身Eresidual;如果不是,,更新mark=1,當(dāng)前節(jié)點繼續(xù)轉(zhuǎn)發(fā)RREQ,,并更新自身Eresidual,。
如果mark=1,,說明目的節(jié)點位置處于當(dāng)前節(jié)點的父節(jié)點。如果當(dāng)前節(jié)點是上一節(jié)點的后裔節(jié)點,,當(dāng)前節(jié)點立即丟棄RREQ,;如果當(dāng)前節(jié)點不是上一節(jié)點的后裔節(jié)點,則判斷目的節(jié)點是否是當(dāng)前節(jié)點的父節(jié)點,。如果是,,當(dāng)前節(jié)點直接轉(zhuǎn)發(fā)RREQ,并更新自身Eresidual,;如果不是,,更新mark=0,當(dāng)前節(jié)點繼續(xù)轉(zhuǎn)發(fā)RREQ,,并更新自身Eresidual,。
(7)按照上述流程繼續(xù)轉(zhuǎn)發(fā)RREQ,,直到到達(dá)目的節(jié)點,。
(8)目的節(jié)點收到RREQ,,不再判斷剩余能量在哪個能量區(qū)域,,直接返回RREP。
?。?)源節(jié)點收到目的節(jié)點返回的RREP,,即表示當(dāng)前路由發(fā)現(xiàn)成功,立即按照該路徑進(jìn)行數(shù)據(jù)傳輸,。
4 仿真實驗結(jié)果
將改進(jìn)算法與原AODVjr算法以及參考文獻(xiàn)[6]算法進(jìn)行數(shù)據(jù)比對,,得出網(wǎng)絡(luò)總體能耗以及死點個數(shù)比對數(shù)據(jù)。
仿真試驗基于OMNET++平臺實現(xiàn),,網(wǎng)絡(luò)覆蓋面積為100 m×100 m,,網(wǎng)絡(luò)節(jié)點數(shù)為50個,節(jié)點隨機(jī)分布,,網(wǎng)絡(luò)參數(shù)Cm=5,,Rm=4,Lm=5,,每個節(jié)點的初始能量為1 000 J,。仿真實驗結(jié)果如圖2和圖3所示。
仿真結(jié)果表明,,隨著網(wǎng)絡(luò)持續(xù)運行,,網(wǎng)絡(luò)深度較低的節(jié)點頻繁轉(zhuǎn)發(fā)數(shù)據(jù),能量消耗逐漸增大。改進(jìn)算法引入跳數(shù)限制和鄰居表,,將節(jié)點剩余能量進(jìn)行網(wǎng)絡(luò)深度動態(tài)劃分,,選擇局部最小路由跳數(shù)的路徑進(jìn)行傳輸數(shù)據(jù),避免把數(shù)據(jù)傳送給能量較低的節(jié)點,,從而達(dá)到節(jié)省能量的目的,。
在初始階段,每個節(jié)點的能量都處于能量充足區(qū)域,,沒有死點產(chǎn)生,。隨著時間推移,改進(jìn)算法能夠平衡節(jié)點剩余能量,,所以出現(xiàn)死點的時間最晚,,添加深度影響因子能更有效避開剩余能量低的節(jié)點,繼而選擇能量多的節(jié)點進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),,避免網(wǎng)絡(luò)深度較低的節(jié)點過早死亡,。
針對ZigBee網(wǎng)絡(luò)AODVjr算法所產(chǎn)生的RREQ洪泛,提出一種改進(jìn)路由算法,,引入鄰居表限定RREQ傳輸范圍和父子節(jié)點的傳遞方向,,計算路由代價并根據(jù)節(jié)點剩余能量動態(tài)劃分所處的能量區(qū)域,根據(jù)3種能量區(qū)域進(jìn)行差異化路由發(fā)現(xiàn),,動態(tài)回避剩余能量較低的節(jié)點并發(fā)現(xiàn)能量較高的節(jié)點,。收集所有FFD節(jié)點能量,將節(jié)點最小剩余能量匹配到網(wǎng)絡(luò)深度進(jìn)行動態(tài)調(diào)整,,并動態(tài)更新能量區(qū)域以優(yōu)化死點出現(xiàn)頻率,,根據(jù)所處能量區(qū)域選擇路由策略。
參考文獻(xiàn)
[1] ZigBee Alliance. ZigBee specification 2008[DB/OL]. http://www.zigbee.org,,2012-08-01.
[2] 瞿雷,,劉盛德,胡咸斌.ZigBee技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2007.
[3] AKKAYA K,, YOUNIS M. A survey on routing protocols for wireless sensor networks[J]. Ad Hoc Networks, 2005,, 3(3): 325-349.
[4] IEEE STD 802.15.4-2006,, Wireless Medium Access Control (MAC) and Physical Layer(PHY) Specifications for Low Rate Wireless Personal Area Networks(WPANs)[S].
[5] FECHNER J. Using ZigBee for industrial control systems[C]. International Conference on Power Electronics Intelligent Motion and Power Quality, 2006:61-62.
[6] 李予東,,黃宏光,,向西西. 基于能量平衡的ZigBee路由算法優(yōu)化[J].計算機(jī)工程與設(shè)計,2011,,32(2):397-400.
[7] 班艷麗,,柴喬林,,王琛.基于能量平衡的ZigBee網(wǎng)絡(luò)樹路由算法[J].計算機(jī)應(yīng)用,2008,,28(11):2791-2794.
[8] 謝川.基于ZigBee的AODVjr算法研究[J].計算機(jī)工程,,2011,37(10):87-89.