陳 偉
(安慶職業(yè)技術學院 電子信息系, 安徽 安慶 246000)
基于ZigBee網(wǎng)絡的路由算法研究
陳 偉
(安慶職業(yè)技術學院 電子信息系, 安徽 安慶 246000)
ZigBee網(wǎng)絡的傳統(tǒng)算法(簇樹路由算法和AODVjr路由算法)在發(fā)現(xiàn)路由過程中節(jié)點能耗較大。為此,結合節(jié)點能量、簇樹路由算法和AODVjr路由算法,提出一種改進的ZigBee網(wǎng)絡路由算法。該路由算法選擇路由時盡量避免能量較低的節(jié)點,選擇最佳路徑,維持網(wǎng)絡穩(wěn)定性。仿真結果表明,改進后的算法能有效降低整個網(wǎng)絡總體能耗,合理分配網(wǎng)絡負載,大大降低了死亡節(jié)點數(shù)量,從而延長整個網(wǎng)絡的使用壽命。
ZigBee網(wǎng)絡;簇樹路由算法;AODVjr 路由算法;能量均衡;網(wǎng)絡拓撲
無線通信技術逐漸成為通信技術的發(fā)展方向?;赯igBee技術的無線傳感器網(wǎng)絡技術是無線通信中面向短距離、低速率、低功耗和低成本的一項重要技術。它采用直接序列擴頻(DSSS)技術,工作頻率為868MHz、915MHZ和2.4GHz。ZigBee網(wǎng)絡以良好的技術特性廣泛應用于無線傳感器網(wǎng)絡中,ZigBee網(wǎng)絡的路由算法和機制也獲得了不斷發(fā)展[1-2],但在ZigBee網(wǎng)絡中,能量問題一直是發(fā)展瓶頸。本文對ZigBee網(wǎng)絡協(xié)議的路由進行了分析,針對傳統(tǒng)路由協(xié)議存在的問題,對傳統(tǒng)的ZigBee網(wǎng)絡路由算法進行優(yōu)化,將路徑中能量的消耗與傳統(tǒng)路由算法結合,提出新的ZigBee路由算法,以提高ZigBee網(wǎng)絡性能,延長網(wǎng)絡使用時間。
ZigBee網(wǎng)絡拓撲結構[3]有星形拓撲、樹形拓撲和網(wǎng)形拓撲。
圖1 ZigBee網(wǎng)絡拓撲結構
節(jié)點通信規(guī)則:
(1)星形拓撲中只有協(xié)調節(jié)點和終端節(jié)點,節(jié)點間的數(shù)據(jù)通信只有唯一的一條路徑。
(2)樹形拓撲中節(jié)點向另外節(jié)點發(fā)送數(shù)據(jù),必須沿著父節(jié)點上傳,一直傳遞到最近的協(xié)調節(jié)點后,再傳遞到目標節(jié)點。
(3)網(wǎng)形拓撲是一種特殊的點對點自組通信網(wǎng)絡,其網(wǎng)絡中的路由可以自動建立和維護,而且自愈能力特別強。網(wǎng)絡通信可以多跳方式來傳輸數(shù)據(jù)到達目標節(jié)點,網(wǎng)絡的節(jié)點數(shù)目多而且網(wǎng)絡的深度深,是ZigBee網(wǎng)絡中最復雜的一種網(wǎng)絡拓撲。
ZigBee網(wǎng)絡同其它無線傳感器網(wǎng)絡不同,主要在于其采用兩種不同分配方式,即分布式地址分配和隨機地址分配。如果節(jié)點加入網(wǎng)絡,必須要通過已存在網(wǎng)絡中的路由器或協(xié)調器。當一個節(jié)點加入網(wǎng)絡后,會自動獲得唯一的網(wǎng)絡地址。網(wǎng)絡建立開始,規(guī)定3個基本參數(shù):網(wǎng)絡中最大深度Lm;網(wǎng)絡中父節(jié)點連接子節(jié)點最多數(shù)目Cm;網(wǎng)絡中節(jié)點連接路由節(jié)點的最多數(shù)目Rm。網(wǎng)絡深度為d的路由節(jié)點所能分配地址時的空間為Cskip(d),則 計算Cskip(d)為路由節(jié)點分配地址的個數(shù)。
Cskip(d)
(1)
父節(jié)點Afather分配給第I路由節(jié)點地址Ai滿足:
(2)
分配給第M終端節(jié)點地址Am滿足:
(3)
ZigBee網(wǎng)絡一般是基于分布式網(wǎng)絡,支持AODVjr路由算法。它的算法工作原理是通過路由請求包(RREQ)和路由回復包(RREP),尋找路由節(jié)點之間傳輸信息最短的路徑,并記錄保存到路由表中。
ZigBee網(wǎng)絡中,假設路徑M的長度為T,則路徑中所消耗的能量為路徑每條鏈路上的損耗之和。其中C[Mi,Mi+1]是節(jié)點Di到Di+1鏈路上所損耗的能量。
(4)
3.1 Cluster-Tree路由算法分析
簇樹路由算法是一種以網(wǎng)絡協(xié)調器為中心的樹狀網(wǎng)絡拓撲結構,它主要適用于靜態(tài)路由,節(jié)點上不需要存儲路由表。樹形拓撲結構中的大部分設備為FFD(全功能設備),RFD(半功能設備)只能作為樹形結構的末端節(jié)點。節(jié)點成功加入網(wǎng)絡時,父節(jié)點根據(jù)網(wǎng)絡地址分配機制為其動態(tài)分配該網(wǎng)絡中唯一的網(wǎng)絡地址。若一個終端節(jié)點(RFD)發(fā)送數(shù)據(jù)包到其它節(jié)點時,首先直接發(fā)送數(shù)據(jù)給父節(jié)點,然后由父節(jié)點轉發(fā)數(shù)據(jù)包。若一個父節(jié)點(FFD)接收到數(shù)據(jù)包,則先要判斷目的節(jié)點是否是自己,如果是則向上層回復;否則,判斷是否為子節(jié)點,如果是則轉發(fā)給子節(jié)點,否則,為下一跳的父節(jié)點[4]。
3.2 AODVjr 路由算法分析
AODVjr路由算法是應用于網(wǎng)形拓撲結構的路由算法,是AODV(多跳網(wǎng)絡距離矢量路由協(xié)議)算法的精簡版[5],非常適用于ZigBee網(wǎng)絡路由算法,并且還保留原始的AODV算法。主要工作原理是:通過傳送路由數(shù)據(jù)包來查找和記錄路由信息,路由數(shù)據(jù)包由兩部分組成:路由請求包和路由回復包。如果收到數(shù)據(jù)包后立即查找該節(jié)點的路由表,有到目的節(jié)點最小損耗路由路徑,則立即傳送數(shù)據(jù),否則就需要啟動ADOVjr算法尋找新的路由路徑,由節(jié)點發(fā)送請求(RREQ)包查找。若收到目的節(jié)點的回復(RREP)包,則網(wǎng)絡中該路由路徑是最優(yōu)路徑,數(shù)據(jù)包立即按此路由路徑發(fā)送。在ZigBee網(wǎng)絡中對AODV-jr路由算法進行改進,取消了HELLO消息的發(fā)送和ADOV中的先驅節(jié)點列表,這樣可避免出現(xiàn)無效的回復(RREP)包和數(shù)據(jù)包在路徑中循環(huán)的問題。只有目的節(jié)點才能發(fā)送回復(RREP)包,而且目的節(jié)點會定期向發(fā)送節(jié)點發(fā)送生命周期時間(KEEP-ALIVE)包來維持節(jié)點在路由表存在的時間[6-7]。圖2是AODVjr算法尋找路由的方式,可看到請求包(RREQ)廣播和(RREP)回復的過程。其中,A為源節(jié)點,H為目的節(jié)點。
簇樹路由是一種靜態(tài)路由, 明知兩個節(jié)點間的路由路徑,簇樹路由沒有路由表,沒有發(fā)現(xiàn)路由過程,也沒有初始延遲過程。但是簇樹尋找路由不一定是最佳路徑而且也不能自適應網(wǎng)絡。AODVjr路由算法具有動態(tài)查找功能,能快速適應動態(tài)路由環(huán)境,具有組播功能,會引起廣播風暴增加功耗。所以在請求包(RREQ)中增加一個標簽flag。flag=0則當前為父節(jié)點可以轉發(fā),當flag=1則當前為子節(jié)點不可轉發(fā),丟棄該分組。
本文通過結合AODVjr 路由算法和簇樹路由算法以及鏈路消耗能量改進路由算法,不會單純計算兩個節(jié)點的最短路徑,而是結合ZigBee網(wǎng)絡樹路由算法,根據(jù)路由節(jié)點能量,通過比較周圍節(jié)點能量尋找最合適的下一個路由節(jié)點。通過能量均衡策略從有剩余能量的節(jié)點中選擇合適的節(jié)點進行數(shù)據(jù)發(fā)送[8],能維持網(wǎng)絡生命周期,提高網(wǎng)絡健壯性。具體步驟如下:
(1)節(jié)點接收到RREQ 分組時,先查看RREQ分組的目的節(jié)點是否為本節(jié)點,如果是則回復,否則轉(2)。
(2)判斷本節(jié)點的剩余能量,如果數(shù)據(jù)轉發(fā)所需的能量大于節(jié)點的剩余能量,則丟棄該分組,否則轉(3)。
圖3 改進算法流程
(3)判斷RREQ分組中的標簽flag值。如果flag=0,則此節(jié)點為父節(jié)點,可以轉發(fā)數(shù)據(jù),否則轉(4)。
(4)flag=1,則此節(jié)點為子節(jié)點,不能轉發(fā)數(shù)據(jù),丟棄分組。
(5)找到目的節(jié)點后回復RREQ 分組。
為了測試改進后的路由算法性能,分別在NS2 環(huán)境中對傳統(tǒng)算法和改進后的算法進行仿真實驗,對比前后兩種算法性能。主要對網(wǎng)絡總體能耗、網(wǎng)絡中死亡節(jié)點數(shù)量等進行比較。仿真結果表明,改進后的路由算法基本上達到預定效果,能增強網(wǎng)絡的健壯性,提高網(wǎng)絡和節(jié)點壽命。仿真環(huán)境參數(shù)設置如下:網(wǎng)絡范圍為:600×600,網(wǎng)絡節(jié)點數(shù)量為100個,數(shù)據(jù)包大小為512B 。首先初始化每個節(jié)點的能量為1000 J,Cm=6,Rm=5,Lm=7。其次設置節(jié)點的工作能量閾值為400J,當節(jié)點能量小于400J時,該節(jié)點就為無效節(jié)點。
圖4 ZigBee網(wǎng)絡總體能耗對比
圖5 ZigBee網(wǎng)絡死亡節(jié)點對比
由圖4和圖5比較發(fā)現(xiàn),改進后的算法和網(wǎng)絡總體能耗明顯降低。ZigBee網(wǎng)絡中無效節(jié)點個數(shù)隨時間變化 ,剛開始改進的算法由于節(jié)點能量充足,不會產(chǎn)生無效節(jié)點。隨著時間的增長,傳統(tǒng)算法中無效節(jié)點大量出現(xiàn),而且出現(xiàn)比較早,主要是傳統(tǒng)算法沒有考慮到節(jié)點剩余能量的保存。而改進后的算法不僅考慮路由路徑選擇,同時還考慮到節(jié)點的剩余能量,均衡網(wǎng)絡負載,提高了網(wǎng)絡的健壯性。
本文對ZigBee網(wǎng)絡的傳統(tǒng)路由算法進行了改進,提高了網(wǎng)絡的可靠性,延長了網(wǎng)絡的使用壽命,節(jié)省了網(wǎng)絡能量。下一步將在節(jié)能方面對算法進行優(yōu)化和改進。
[1] 徐小濤,孫少蘭,熊華,等.ZigBee無線傳感器網(wǎng)絡的路由機制[J].數(shù)據(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].電腦開發(fā)與應用, 2011,24(5):32-34.
[5] 李巖,袁安娜,柳培新,等.一種改進的ZigBee網(wǎng)絡能量均衡簇樹路由算法[J].哈爾濱理工大學學報,2013,18(5):56-60.
[6] 杜煥軍, 張維勇, 劉國田. ZigBee 網(wǎng)絡的路由協(xié)議研究[J]. 合肥工業(yè)大學學報, 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-),男,安徽桐城人,碩士,安慶職業(yè)技術學院電子信息系助教,研究方向為網(wǎng)絡信息安全、無線傳感器網(wǎng)絡。
10.11907/rjdk.162446
TP312
A
1672-7800(2017)003-0042-03