俞仁來,譚明皓
(沈陽工業大學 信息科學與工程學院,遼寧 沈陽 110870)
無線傳感器網絡(WSN, Wireless Sensor Network)[1]采用微小型的傳感器節點獲取信息,節點之間具有自動組網和協同工作能力,網絡內部采用無線通信方式,采集和處理網絡中的信息,發送給觀察者。目前WSN使用的無線通訊技術過于復雜,非常耗電,成本很高。而ZigBee[2]是一種短距離、低成本、低功耗、低復雜度的無線網絡技術,在無線傳感器網絡應用領域極具發展潛力。
路由協議是無線傳感器網絡中一個關鍵技術,其優劣直接影響著網絡的性能[3]。這里的工作就是在分析研究了多種應用在WSN上的路由協議之后,對比分析ZigBee路由算法,分析得出各自優劣及其適用的環境,為路由協議設計人員提供參考。
AODV[4]是逐跳的按需距離向量路由協議。當源節點沒有已知的路由到達目的節點時,廣播一個請求消息(RREQ),每個接收到RREQ的中間節點記錄下到源節點的逆向路徑(以便為之后的應答消息(RREP)提供路由),然后重新廣播RREQ。當RREQ到達目的節點時,目的節點利用記錄在報文中的逆向路徑發送RREP。如果中間節點知道最新的指向目的節點的路由,它就代替目的節點發送RREP。每個接收到 RREP的節點以相同的方式記錄下本節點到目的節點的路徑,以便為將來數據分組報文的到來提供路由服務。另外,每個節點都維護有一個目的序列號用于判斷更新路由。節點廣播HELLO消息來維護本地鄰居表及其一跳內的鏈路。
LEACH[5]是MIT的Heinzelman等人提出的基于簇的數據融合的層次型路由算法。該算法以輪為單位計算網絡周期。每一輪從建立階段開始,即節點自組織成一個一個的簇,然后進入穩定階段,即成員節點將其數據發送給其簇首節點,然后簇首節點將所收成員的數據進行數據融合,發送給基站。
ZigBee網絡[6]支持兩種類型的物理設備:全功能設備節點(FFD)和半功能設備節點(RFD)。FFD節點通常作為網絡協調器或路由,能和任何設備通信;RFD節點只能作為網絡的終端節點,負責本地信息收集和數據處理,只能和FFD節點通信。ZigBee網絡支持三種節點類型:主節點、路由節點以及終端節點。主節點即協調器,必須由FFD節點構成,它是網絡的核心,負責建立一個網絡并下發地址。路由節點也是FFD節點,搜索網絡并加入,給加入路由的終端節點分配地址。終端節點可以是FFD節點或者RFD節點。ZigBee的網絡拓撲結構有三種:星型網絡、樹簇型網絡、網型網絡,如圖1所示。

圖1 ZigBee三種網絡拓撲結構
ZigBee網絡常見的路由算法有Cluster-Tree、AODVjr和Cluster-Tree+AODVjr等。ZigBee路由通常采用Cluster-Tree與AODVjr相結合的路由算法[7-8]。
2.1.1 Cluster-Tree
Cluster-Tree是一種邏輯鏈路和網絡層協議,使用鏈路狀態數據包建立一個簡單的簇網絡或是一個潛在的更大型的簇樹網絡。該網絡具有自組織能力,并支持網絡冗余,有一定的錯誤冗余度和自修復能力。網絡中的節點形成父子關系,當有節點加入網絡時,父節點將為其分配地址。分配機制如下:根據式(1),父節點為節點分配地址,其中C為父節點包容的最大節點數,R為參與路由的最大子節點數,L為網絡的最大深度,d為當前網絡深度,A為節點地址。為第n個RFD分地址為式(2);為第n個FFD分配地址為式(3)。

網絡路徑上的下一跳節點地址分配如下:對于地址為A的節點,如果滿足式(4),則地址為D的節點為該節點后代:

如果滿足式(5),則下一跳為終端后代,地址為N D= ,否則,地址為式(6)。

2.1.2 AODVjr
AODVjr具有AODV的主要功能,但考慮到降低成本、節能、使用的方便性等因素,對AODV作了一些簡化。①沒有使用目的節點序列號,并規定只有目的節點可以回復RREP;②不存在“先驅節點列表”,簡化了路由表結構;③節點不發送HELLO分組,僅根據收到的分組或者MAC層提供的信息更新鄰居節點列表;④RERR消息格式僅包含一個不可到達的目的節點。
文中基于NS-2.34模擬仿真軟件對路由協議進行仿真。NS[9-10]即網絡模擬,是面向對象的、離散事件驅動的網絡環境模擬器,可以完整地模擬整個網絡環境。主要用于解決網絡研究方面的問題。
在NS2下分別仿真ZigBee路由和AODV協議,以比較兩者的實現效果。采用101個節點隨機分布在(100m×100m)的空間中, 消息長度設置為500 byte,運行時間200 s。每個節點的初始能量相同,均為2 J。rxPower和txPower都設為0.3 W。通訊距離設為25 m,消息發送間隔設為0.05 s,以802.15.4為底層。ZigBee簇樹數量為:set Cm 4;set Lm 7。源節點(84.124781416787201, 85.201271942444734),目的節點(0,0)。
在仿真運行到151 s時,ZigBee和AODV中各節點的剩余能量如圖2所示,除了一部分節點的剩余能量大致相同外,大部分AODV節點的剩余能量比ZigBee節點多,即ZigBee能量消耗相比AODV較多。這表明采用Cluster-Tree+AODVjr的ZigBee路由算法在能量損耗上,并不比AODV節省,反而消耗更多能量。
圖3顯示,Zigbee節點在151 s之后有71個存活節點;AODV節點在151 s之后有80個存活節點,在181 s之后仍有70個存活節點。Zigbee在151 s之后,網絡活動停止,而AODV在181 s之后網絡活動才停止。可知,AODV網絡在151 s之后發現第二條路徑,繼續傳輸數據,使網絡存活時間延長。
仿真結果表明,采用Cluster-Tree+AODVjr的Zigbee路由,沒有考慮到節點在通信和路由處理過程中能量的變化,能量損耗超過了 AODV,限制了網絡的生存時間。因此,Zigbee路由算法應更注重節能設計。

圖2 節點剩余能量

圖3 網絡存活節點
由于AODVjr主要適用于動態網絡中發現最新的轉發路徑,但在網絡拓撲變化很慢的無線傳感器網絡中,AODVjr就顯得太過復雜,導致Zigbee路由能耗過大。而LEACH協議實現了所有節點間能量均勻分布的分群自適應算法和群首位置循環算法,節省了通信資源,降低了節點能耗,大大提高系統壽命。因此,以LEACH為參照修改Zigbee路由協議,將更有利于延長網絡的生存時間。
[1] 夏少波,許娥.無線傳感器網絡 WSN探究[J].通信技術,2010,43(08):18-19.
[2] 徐志,陳彬兵.自組織 ZigBee網絡節點通信研究[J].通信技術,2009,42(12):128-131..
[3] 羅玥,李雷.無線傳感器網絡路由問題探討[J].通信技術,2007,40(12):361-362.
[4] 王新穎,吳釗,江小玲.基于節能的移動Ad Hoc網絡AODV路由協議改進[J].通信技術,2008,41(07):121-123.
[5] HEINZELMAN W, CHANDRAKASAN A, BALAKRISHNAN H. Energy Efficient Communication Protocol for Wireless Microsensor Networks[C]//IEEE Computer Society. HICSS 2000, Hawaii,United States,2000.United States:IEEE Publications, 2000:3005-3014.
[6] Sinem Coleri Ergen. ZigBee/IEEE 802.15.4 Summary[EB/OL].(2004-09-10)[2010-06-01].http://citeseerx.ist.psu.edu/viewdoc/download?doi = 10.1.1.124.6333&rep=rep1&type=pdf.
[7] ZigBee Specification.ZigBee Document 053474r17[EB/OL].(2008-01-17)[2010-06-01]. http://www.zigbee.org/Markets/ZigBeeSm artEnergy/Specification.aspx.
[8] 杜煥軍,張維勇,劉國田.ZigBee網絡的路由協議研究[J].合肥工業大學學報,2008,31(10):1617-1621.
[9] KEVIN FALL,KANNAN VARADHAN. The ns Manual[R].[s.l.]: The VINT Project, 2008.
[10] 于斌,孫斌,溫暖,等.NS2與網絡模擬[M]. 北京:人民郵電出版社,2007.