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