陳 偉
(安慶職業技術學院 電子信息系, 安徽 安慶 246000)
基于ZigBee網絡的路由算法研究
陳 偉
(安慶職業技術學院 電子信息系, 安徽 安慶 246000)
ZigBee網絡的傳統算法(簇樹路由算法和AODVjr路由算法)在發現路由過程中節點能耗較大。為此,結合節點能量、簇樹路由算法和AODVjr路由算法,提出一種改進的ZigBee網絡路由算法。該路由算法選擇路由時盡量避免能量較低的節點,選擇最佳路徑,維持網絡穩定性。仿真結果表明,改進后的算法能有效降低整個網絡總體能耗,合理分配網絡負載,大大降低了死亡節點數量,從而延長整個網絡的使用壽命。
ZigBee網絡;簇樹路由算法;AODVjr 路由算法;能量均衡;網絡拓撲
無線通信技術逐漸成為通信技術的發展方向。基于ZigBee技術的無線傳感器網絡技術是無線通信中面向短距離、低速率、低功耗和低成本的一項重要技術。它采用直接序列擴頻(DSSS)技術,工作頻率為868MHz、915MHZ和2.4GHz。ZigBee網絡以良好的技術特性廣泛應用于無線傳感器網絡中,ZigBee網絡的路由算法和機制也獲得了不斷發展[1-2],但在ZigBee網絡中,能量問題一直是發展瓶頸。本文對ZigBee網絡協議的路由進行了分析,針對傳統路由協議存在的問題,對傳統的ZigBee網絡路由算法進行優化,將路徑中能量的消耗與傳統路由算法結合,提出新的ZigBee路由算法,以提高ZigBee網絡性能,延長網絡使用時間。
ZigBee網絡拓撲結構[3]有星形拓撲、樹形拓撲和網形拓撲。

圖1 ZigBee網絡拓撲結構
節點通信規則:
(1)星形拓撲中只有協調節點和終端節點,節點間的數據通信只有唯一的一條路徑。
(2)樹形拓撲中節點向另外節點發送數據,必須沿著父節點上傳,一直傳遞到最近的協調節點后,再傳遞到目標節點。
(3)網形拓撲是一種特殊的點對點自組通信網絡,其網絡中的路由可以自動建立和維護,而且自愈能力特別強。網絡通信可以多跳方式來傳輸數據到達目標節點,網絡的節點數目多而且網絡的深度深,是ZigBee網絡中最復雜的一種網絡拓撲。
ZigBee網絡同其它無線傳感器網絡不同,主要在于其采用兩種不同分配方式,即分布式地址分配和隨機地址分配。如果節點加入網絡,必須要通過已存在網絡中的路由器或協調器。當一個節點加入網絡后,會自動獲得唯一的網絡地址。網絡建立開始,規定3個基本參數:網絡中最大深度Lm;網絡中父節點連接子節點最多數目Cm;網絡中節點連接路由節點的最多數目Rm。網絡深度為d的路由節點所能分配地址時的空間為Cskip(d),則 計算Cskip(d)為路由節點分配地址的個數。
Cskip(d)
(1)
父節點Afather分配給第I路由節點地址Ai滿足:

(2)
分配給第M終端節點地址Am滿足:

(3)
ZigBee網絡一般是基于分布式網絡,支持AODVjr路由算法。它的算法工作原理是通過路由請求包(RREQ)和路由回復包(RREP),尋找路由節點之間傳輸信息最短的路徑,并記錄保存到路由表中。
ZigBee網絡中,假設路徑M的長度為T,則路徑中所消耗的能量為路徑每條鏈路上的損耗之和。其中C[Mi,Mi+1]是節點Di到Di+1鏈路上所損耗的能量。
(4)
3.1 Cluster-Tree路由算法分析
簇樹路由算法是一種以網絡協調器為中心的樹狀網絡拓撲結構,它主要適用于靜態路由,節點上不需要存儲路由表。樹形拓撲結構中的大部分設備為FFD(全功能設備),RFD(半功能設備)只能作為樹形結構的末端節點。節點成功加入網絡時,父節點根據網絡地址分配機制為其動態分配該網絡中唯一的網絡地址。若一個終端節點(RFD)發送數據包到其它節點時,首先直接發送數據給父節點,然后由父節點轉發數據包。若一個父節點(FFD)接收到數據包,則先要判斷目的節點是否是自己,如果是則向上層回復;否則,判斷是否為子節點,如果是則轉發給子節點,否則,為下一跳的父節點[4]。
3.2 AODVjr 路由算法分析
AODVjr路由算法是應用于網形拓撲結構的路由算法,是AODV(多跳網絡距離矢量路由協議)算法的精簡版[5],非常適用于ZigBee網絡路由算法,并且還保留原始的AODV算法。主要工作原理是:通過傳送路由數據包來查找和記錄路由信息,路由數據包由兩部分組成:路由請求包和路由回復包。如果收到數據包后立即查找該節點的路由表,有到目的節點最小損耗路由路徑,則立即傳送數據,否則就需要啟動ADOVjr算法尋找新的路由路徑,由節點發送請求(RREQ)包查找。若收到目的節點的回復(RREP)包,則網絡中該路由路徑是最優路徑,數據包立即按此路由路徑發送。在ZigBee網絡中對AODV-jr路由算法進行改進,取消了HELLO消息的發送和ADOV中的先驅節點列表,這樣可避免出現無效的回復(RREP)包和數據包在路徑中循環的問題。只有目的節點才能發送回復(RREP)包,而且目的節點會定期向發送節點發送生命周期時間(KEEP-ALIVE)包來維持節點在路由表存在的時間[6-7]。圖2是AODVjr算法尋找路由的方式,可看到請求包(RREQ)廣播和(RREP)回復的過程。其中,A為源節點,H為目的節點。
簇樹路由是一種靜態路由, 明知兩個節點間的路由路徑,簇樹路由沒有路由表,沒有發現路由過程,也沒有初始延遲過程。但是簇樹尋找路由不一定是最佳路徑而且也不能自適應網絡。AODVjr路由算法具有動態查找功能,能快速適應動態路由環境,具有組播功能,會引起廣播風暴增加功耗。所以在請求包(RREQ)中增加一個標簽flag。flag=0則當前為父節點可以轉發,當flag=1則當前為子節點不可轉發,丟棄該分組。
本文通過結合AODVjr 路由算法和簇樹路由算法以及鏈路消耗能量改進路由算法,不會單純計算兩個節點的最短路徑,而是結合ZigBee網絡樹路由算法,根據路由節點能量,通過比較周圍節點能量尋找最合適的下一個路由節點。通過能量均衡策略從有剩余能量的節點中選擇合適的節點進行數據發送[8],能維持網絡生命周期,提高網絡健壯性。具體步驟如下:
(1)節點接收到RREQ 分組時,先查看RREQ分組的目的節點是否為本節點,如果是則回復,否則轉(2)。
(2)判斷本節點的剩余能量,如果數據轉發所需的能量大于節點的剩余能量,則丟棄該分組,否則轉(3)。

圖3 改進算法流程
(3)判斷RREQ分組中的標簽flag值。如果flag=0,則此節點為父節點,可以轉發數據,否則轉(4)。
(4)flag=1,則此節點為子節點,不能轉發數據,丟棄分組。
(5)找到目的節點后回復RREQ 分組。
為了測試改進后的路由算法性能,分別在NS2 環境中對傳統算法和改進后的算法進行仿真實驗,對比前后兩種算法性能。主要對網絡總體能耗、網絡中死亡節點數量等進行比較。仿真結果表明,改進后的路由算法基本上達到預定效果,能增強網絡的健壯性,提高網絡和節點壽命。仿真環境參數設置如下:網絡范圍為:600×600,網絡節點數量為100個,數據包大小為512B 。首先初始化每個節點的能量為1000 J,Cm=6,Rm=5,Lm=7。其次設置節點的工作能量閾值為400J,當節點能量小于400J時,該節點就為無效節點。

圖4 ZigBee網絡總體能耗對比

圖5 ZigBee網絡死亡節點對比
由圖4和圖5比較發現,改進后的算法和網絡總體能耗明顯降低。ZigBee網絡中無效節點個數隨時間變化 ,剛開始改進的算法由于節點能量充足,不會產生無效節點。隨著時間的增長,傳統算法中無效節點大量出現,而且出現比較早,主要是傳統算法沒有考慮到節點剩余能量的保存。而改進后的算法不僅考慮路由路徑選擇,同時還考慮到節點的剩余能量,均衡網絡負載,提高了網絡的健壯性。
本文對ZigBee網絡的傳統路由算法進行了改進,提高了網絡的可靠性,延長了網絡的使用壽命,節省了網絡能量。下一步將在節能方面對算法進行優化和改進。
[1] 徐小濤,孫少蘭,熊華,等.ZigBee無線傳感器網絡的路由機制[J].數據通信,2009(3):19-22.
[2] SINEM COLERI ERGEN. ZigBee/IEEE 802.15.4 summary[EB/OL]. [2004-9].http://www.eecs.berkeley.edu/csinem/academic/publications/Zig Bee.pdf.
[3] ZigBee V1. 0 Architecture overview[EB/OL]. [2005-09-16].http:∥www.ZigBee.org Mar 2006-Open-House-Pres-entations/ZigBee%20 Architecture2.pdf.
[4] 郭瑞星,王慶生.ZigBee路由算法的研究與改進[J].電腦開發與應用, 2011,24(5):32-34.
[5] 李巖,袁安娜,柳培新,等.一種改進的ZigBee網絡能量均衡簇樹路由算法[J].哈爾濱理工大學學報,2013,18(5):56-60.
[6] 杜煥軍, 張維勇, 劉國田. ZigBee 網絡的路由協議研究[J]. 合肥工業大學學報, 2008, 31(10): 1617-1621.
[7] 謝川.基于ZigBee的AODVjr算法研究[J].計算機工程,2011,37(10):87-89.
[8] 丁飛,張西良,張世慶.基于ZigBee的無線通信技術及其應用[J].江蘇通信技術,2006,22(5):24-27.
(責任編輯:杜能鋼)
Research of Routing Algorithm Based on ZigBee Network
In view of the traditional algorithm of ZigBee network,the cluster tree routing alg-orithm and AODVjr routing algorithm in the routing discovery process, the node's energycon-sumpti-on is relatively large. To this end, an improved ZigBee network routing algorithm ispr-oposed by combining the node energy and the cluster tree routing algorithm and the AODVjr routing algorithm. The routing algorithm chooses the route to avoid the lower energy of the node. And select the best path, maintain network stability. Simulation results show that the improved algorithm can effectively reduce the overall energy consumption of the entire net-work, capable of rational allocation of network load equilibrium, to a large extent reduce the number of dead nodes, and prolong the service life of the entire network.
ZigBee Network; Cluster Tree Routing Algorithm;AODVjr Routing Algorithm;Energy Balance;Network Topology
安徽省質量工程教學研究項目(2015jyxm540)
陳偉(1983-),男,安徽桐城人,碩士,安慶職業技術學院電子信息系助教,研究方向為網絡信息安全、無線傳感器網絡。
10.11907/rjdk.162446
TP312
A
1672-7800(2017)003-0042-03