明 芳
(貴州師范大學 機械與電氣工程學院,貴州 貴陽 550025)
?
Zigbee C+A路由協(xié)議研究*
明芳
(貴州師范大學 機械與電氣工程學院,貴州 貴陽 550025)
摘要:近年來,科學技術發(fā)展得越來越快,如何快速有效的獲得信息,成為關注的焦點。隨著傳感器技術的研究及物聯(lián)網(wǎng)的發(fā)展,人們開始關注Zigbee技術,然而,Zigbee還是一個比較新的技術,在很多方面都及需改進優(yōu)化,特別是Zigbee網(wǎng)絡層現(xiàn)存的路由協(xié)議存在大量的冗余分組被轉(zhuǎn)發(fā),大大增加了網(wǎng)絡功耗,針對這個問題,提出了一種改進路由算法:該算法綜合考慮了最短路由,能量均衡,大大降低了網(wǎng)絡開銷,同時提高了網(wǎng)絡壽命,最后,使用NS2進行仿真分析,改進的方法在理論上是可行的。
關鍵詞:Zigbee;網(wǎng)絡開銷;能量均衡;NS2 仿真
0引言
最近幾年,隨著三網(wǎng)融合及物聯(lián)網(wǎng)的發(fā)展,使人們又再次把目光轉(zhuǎn)向了Zigbee技術。但是Zigbee協(xié)議在某些方面仍有待于改進和完善,比如其網(wǎng)絡層使用的兩種路由協(xié)議:樹形路由和按需驅(qū)動路由分別具有路徑不夠優(yōu)化和能耗過大的不足。因此,對Zigbee路由協(xié)議進行研究分析后,指出了現(xiàn)有路由協(xié)議的問題,并針對這些問題對Zigbee路由算法進行了改進,改進后的路由算法在一定程度上降低了功耗、提高了網(wǎng)絡壽命,這對Zigbee技術性能的提高和應用推廣都將起到十分積極的作用。
1Zigbee節(jié)點設備及拓撲結(jié)構
Zigbee網(wǎng)絡中存在兩種設備,全功能設備(FFD)和半功能設備(RFD)。FFD節(jié)點通常作為網(wǎng)絡協(xié)調(diào)器或路由,能和任何設備通信;RFD節(jié)點只能作為網(wǎng)絡的終端節(jié)點,負責本地信息收集和數(shù)據(jù)處理,只能和FFD節(jié)點通信[1]。協(xié)調(diào)器是整個網(wǎng)絡的控制中心,一個網(wǎng)絡中只能有一個協(xié)調(diào)器。
協(xié)調(diào)器主要負責網(wǎng)絡啟動和配置,保持同網(wǎng)絡設備的正常通信,確定網(wǎng)絡的唯一標示符[2]。路由器用來轉(zhuǎn)發(fā)消息,支持關聯(lián),它能獲得由協(xié)調(diào)器分配的一定的16位短地址空間,其他節(jié)點可以通過路由器直接加入或者離開,并為加入的節(jié)點分配地址。終端設備不具有路由功能,其他節(jié)點不能通過終端設備加入或離開網(wǎng)絡,只能和為它分配了16位短地址的父節(jié)點之間進行消息傳輸,信息也只有通過父節(jié)點獲得,能夠加入或離開網(wǎng)絡。
Zigbee網(wǎng)絡最常見的拓撲結(jié)構有星狀、樹狀、網(wǎng)狀三種,如圖1所示。

圖1 星狀、樹狀、網(wǎng)狀
在星狀結(jié)構中,網(wǎng)絡由協(xié)調(diào)器來控制,節(jié)點之間的通信,所有的設備只能與協(xié)調(diào)器通信。
在樹狀結(jié)構中,節(jié)點只與其父節(jié)點通信。
網(wǎng)狀結(jié)構中,通過使用完全對等的點對點方式來進行通信,只要在通信范圍內(nèi),全功能設備可以任何其他全功能設備通信。
2Zigbee路由協(xié)議
2.1地址分配機制
Zigbee網(wǎng)絡中的節(jié)點在加入網(wǎng)絡后都會收到其父節(jié)點為其分配的16位短地址,且每一個節(jié)點都有一個64位的唯一的IEEE地址。

(1)

An=Aparent+Cskip(d)·Rm+n
(2)
式中,1≤n≤(Cm-Rm)
2.2Zigbee樹路由
樹路由中,節(jié)點在收到數(shù)據(jù)時,通過式(3)判斷節(jié)點是否是當前節(jié)點的后代來傳播數(shù)據(jù),若是,將數(shù)據(jù)幀往下級子節(jié)點傳送,若不是,將數(shù)據(jù)幀往上級父節(jié)點轉(zhuǎn)發(fā)。將目的節(jié)點的地址設為D,Zigbee當前路由器地址設為A,深度設為d,若式(3)成立,那么目的節(jié)點是當前路由器的后代:
A (3) 若已知目的節(jié)點是現(xiàn)節(jié)點的一個后代,并且目的節(jié)點是當前節(jié)點的子節(jié)點的同時是終端節(jié)點,那么下一跳的地址為: N=D(D>A+Rm·Cskip(d)) (4) 若目的節(jié)點不是現(xiàn)節(jié)點的后代,那么下一跳地址N可以通過式(5)計算而來,為: (5) 2.3AODVjr路由協(xié)議 一個完整的路由建立過程分三步完成,第一步:路由發(fā)現(xiàn),廣播路由請求分組,第二步:反向路由建立,單播路由請求回復,第三步:單播正向路由的建立。 2.4Zigbee C+A路由協(xié)議 根據(jù)節(jié)點是否具有路由功能將Zigbee網(wǎng)絡中的節(jié)點分為RN+(具有路由功能),和RN-(無路由功能)兩類。ZigBee網(wǎng)絡層路由協(xié)議采取按需驅(qū)動路由算法和樹路由相結(jié)合的路由協(xié)議,RN+節(jié)點通過AODVjr算法找到最優(yōu)路徑,通過路由表來獲得下一跳地址,而RN-節(jié)點執(zhí)行Cluster-Tree算法,通過計算得到下一跳地址。 3基于剩余能量RREQ控制的路由改進算法 Zigbee是著眼于低功耗,低速率的無線通信技術,低功耗是其發(fā)展優(yōu)勢,而Zigbee網(wǎng)絡中的RN+節(jié)點在使用廣播RREQ分組時,會產(chǎn)生使大量冗余的RREQ分組被轉(zhuǎn)發(fā),而這些冗余分組對路由的建立是沒有起到任何作用,卻占用了很多網(wǎng)絡資源,消耗節(jié)點能量,占用節(jié)點內(nèi)存,使網(wǎng)絡提早死亡,因此,從兩個方面,對Zigbee使用的路由協(xié)議進行了改進,首先對RREQ分組的泛洪廣播范圍進行控制,主要從兩個方向進行改進,一是RREQ的傳輸范圍,二是RREQ的傳播方向;其次考慮節(jié)點的剩余能量,避免關鍵節(jié)點過早死亡。 3.1控制RREQ廣播半徑 若減小RREQ分組的廣播半徑,那么在網(wǎng)絡中轉(zhuǎn)發(fā)的分組就會減小,相應的網(wǎng)絡需要的分組控制開銷也會降低。因此,在進行分組轉(zhuǎn)發(fā)之前,如果能夠計算出目的節(jié)點和源節(jié)點的深度,只需將廣播半徑設置為兩節(jié)點的深度之和就能保證至少有一個RREQ分組能到達目的節(jié)點。只考慮最差情況,即在樹狀拓撲下,分組沿父子關系進行遞交,源節(jié)點與目的節(jié)點的公共父節(jié)點為協(xié)調(diào)器,即只要RREQ的傳播半徑Radius≤Hs+Hd(式中Hs為源節(jié)點深度,Hd為目的節(jié)點深度),就能滿足要求,并且用這種方法算出的網(wǎng)絡深度肯定不大于2*Lm,控制開銷也大大小于Radius=2*Lm時的控制開銷。若源節(jié)點與目的節(jié)點的公共父節(jié)點不是協(xié)調(diào)器,如圖1所示,則廣播半徑為式(6): Radius=Hs+Hd-2H (6) 式中,H為公共父節(jié)點的網(wǎng)絡深度。 這種算法確定目標節(jié)點的深度的思路為將目標地址所在的地址塊范圍不斷縮小。通過內(nèi)循環(huán)來確定目的地址所在的地址塊,如果找到地址的塊首地址與目的地址相等,則認為找到目的地址,目的地址為路由器,路由當前深度即為目的地址深度,若找到地址塊范圍包含了目的地址的地址,則將FDB置為1,表示找到目的地址所在地址塊,然后跳出內(nèi)循環(huán),執(zhí)行外循環(huán)把Hx(節(jié)點深度)加1,將剛剛內(nèi)循環(huán)找到的地址塊作為新的搜索范圍,并將該地址塊以新的地址偏移重新劃分,然后繼續(xù)執(zhí)行上一步的內(nèi)循環(huán)過程,直到空間塊的塊首或者目的地址是空間塊中的終端節(jié)點,則認為在當前深度找到目的節(jié)點。由此,可以計算出目的節(jié)點所在的深度Hd。 下面先假設H=0,源節(jié)點與目的節(jié)點的公共父節(jié)點為協(xié)調(diào)器,然后從協(xié)調(diào)器向源節(jié)點發(fā)送一個分組,節(jié)點A在收到分組后求出下一跳節(jié)點地址D后,根據(jù)A 此時,通過公式Radius=Hs+Hd-2H可得RREQ分組的傳輸?shù)淖畲蠓秶鶕?jù)這種算法,動態(tài)的設置RREQ傳輸范圍,當傳輸范圍大于這個值時,不再對該分組進行轉(zhuǎn)發(fā),丟棄該分組。 3.2控制RREQ廣播方向 由樹路由的傳播特性可知,若已知目的節(jié)點為當前節(jié)點的父節(jié)點,則將分組向當前節(jié)點的后代傳播是沒有意義的,不可能找到最優(yōu)路徑,同樣,若目的節(jié)點為當前節(jié)點的后代,將分組向當前節(jié)點的父節(jié)點轉(zhuǎn)發(fā)也沒有太大意義,因此,當節(jié)點在轉(zhuǎn)發(fā)分組前,若對目的節(jié)點的方向能先進行判斷,可以大大減少網(wǎng)絡中冗余分組的傳播,以此來降低控制開銷。 當前節(jié)點在對RREQ分組進行轉(zhuǎn)發(fā)之前,先通過下面的偽碼來判斷哪一類節(jié)點轉(zhuǎn)發(fā)RREQ: if(RREQ目的節(jié)點D是節(jié)點A的后代) F=“0”;//表示節(jié)點A的后代適合轉(zhuǎn)發(fā)此RREQ e1se F=“1”;//表示節(jié)點A的父節(jié)點適合轉(zhuǎn)發(fā)此RREQ 節(jié)點B收到節(jié)點A發(fā)送給它的一個RREQ分組后,對RREQ的處理執(zhí)行如下偽碼: if(F=“0”) {if(節(jié)點B是節(jié)點A的父節(jié)點) 丟棄RREQ; else 處理RREQ;//使用改進ZigBee路由協(xié)議 } else//RREQ中的標志位為“1” { if(節(jié)點B是節(jié)點A的一個子節(jié)點) 丟棄RREQ; else 處理RREQ;//使用改進ZigBee路由協(xié)議 } 改進的路由算法,限制了RREQ分組的傳輸范圍,并控制了傳播方向,很大程度上減少了無用的RREQ的轉(zhuǎn)發(fā),降低了網(wǎng)絡控制開銷。 3.3基于節(jié)點剩余能量的改進 改進后的路由算法大大的降低網(wǎng)絡中的冗余分組,也一定程度上降低了節(jié)點的能耗,網(wǎng)絡壽命有所提高。但是,具有路由功能的節(jié)點由于要進行路由發(fā)現(xiàn),并對路由進行維護,因此其消耗的能量遠遠的大于通過樹路由來進行分組轉(zhuǎn)發(fā)的節(jié)點,而不具備路由功能的節(jié)點中網(wǎng)絡深度小的節(jié)點由于要進行大量的數(shù)據(jù)傳輸和轉(zhuǎn)發(fā),也會由于負荷過大而使能量過早消耗完,某些關鍵節(jié)點的死亡,就有可能會造成網(wǎng)絡分割,嚴重時甚至會引起網(wǎng)絡失效。 假設每個節(jié)點最小剩余能量為Emin,節(jié)點初始能量值設為Estart,對于任意網(wǎng)絡深度為Di的節(jié)點,其剩余能量為: (7) 式中,t表示網(wǎng)絡運行時間,α表示Emin減小的速度的快慢,為一常數(shù),仿真時使用α=2。 在基于RREQ廣播控制的路由算法的基礎上,每個節(jié)點收到RREQ分組后,先判斷自身剩余能量是否低于給定的門限值Emin,如果低于,丟棄分組,源節(jié)點重新進行路由發(fā)現(xiàn),以避開剩余能量過低的節(jié)點,若高于,按照3.2的改進算法處理REEQ。改進算法二的具體流程如下,S為源節(jié)點,A為轉(zhuǎn)發(fā)節(jié)點,D為目的節(jié)點: (1)計算最大轉(zhuǎn)發(fā)范圍Radius,S廣播RREQ。 (2)A節(jié)點收到RREQ,判斷是否目的節(jié)點,若是,轉(zhuǎn)到(3),否,轉(zhuǎn)到(4)。 (3)回復RREP建立正向路由。 (4)判斷節(jié)點剩余能量是否滿足E>Emin,若滿足,執(zhí)行(5),若不滿足,轉(zhuǎn)到(7)。 (5)判斷目的節(jié)點是否為為節(jié)點A后代,若是,執(zhí)行(6),若不是,執(zhí)行(8)。 (6)是,F(xiàn)=1,繼續(xù)判斷節(jié)點B是否為A父節(jié)點,若是,執(zhí)行(7),若不是,執(zhí)行(9)。 (7)丟棄該路由請求分組。 (8)否,F(xiàn)=0,繼續(xù)判斷節(jié)點B是否為A子節(jié)點,若是,執(zhí)行(7),若不是,執(zhí)行(9)。 (9)判斷是否超出Radius,若超出,執(zhí)行(7),若未超出建立反向路由并轉(zhuǎn)發(fā)分組。 3.4仿真分析 使用NS2軟件進行仿真分析,本次仿真只對協(xié)調(diào)器在網(wǎng)絡邊緣的網(wǎng)絡情況進行仿真分析,Zigbee網(wǎng)絡中有20個節(jié)點,仿真參數(shù)設置:網(wǎng)絡運行時間設為500 s,數(shù)據(jù)流使用CBR,數(shù)據(jù)包長度:70 byte,發(fā)包速率設為2 p/s,每個節(jié)點初始能量設為1 000 J,改變CBR數(shù)據(jù)流個數(shù),對改進算法二、改進算法一和ZBR路由協(xié)議的控制開銷進行仿真比較,仿真結(jié)果如圖1所示。 圖1 改進前后控制開銷比較 圖1是改進前后路由控制開銷的仿真結(jié)果,改進算法2的控制開銷和改進算法一相差不大,由于算法二在算法一的基礎上增加了能量控制,也就是說對于某些剩余能量低的節(jié)點,其處理的數(shù)據(jù)包小于改進算法一,因而減少了分組在網(wǎng)絡中的傳輸,從而使網(wǎng)絡的控制開銷減小。 通過圖2可以看出,改進算法二由于每個節(jié)點在對分組進行轉(zhuǎn)發(fā)前都要先對節(jié)點剩余能量進行判斷,是否高于門限值,當節(jié)點能量小于門限值時,會丟棄分組,因此找到的路徑有可能不是最優(yōu)路徑,因而時延略大于改進算法一,但是,當網(wǎng)絡對能量消耗要求較高,或者考慮延長網(wǎng)絡壽命時,用稍微大一點的時延來換取網(wǎng)絡較高壽命是值得的。 圖2 改進前后端到端時延比較 從圖3可以看出,改進算法二的平均跳數(shù)和改進算法一相差不大,由于剩余能量低的節(jié)點不處理分組,因此有些時候可能導致有些路徑不是最優(yōu),因而平均跳數(shù)略大于改進算法一。 圖3 改進前后平均跳數(shù)比較 下面,將CBR的數(shù)據(jù)流個數(shù)固定為2,改變發(fā)包速率,對改進前后路由算法的分組遞交率進行仿真分析,結(jié)果如圖4所示。 圖4 改進前后分組遞交率 改進算法二的初衷是延長網(wǎng)絡壽命,可以從節(jié)點的死亡個數(shù)和死亡節(jié)點出現(xiàn)的時間來評估網(wǎng)絡的生存時間,對改進算法一和改進算法二進行仿真分析。仿真參數(shù)設置如下:數(shù)據(jù)流類型采用CBR數(shù)據(jù)流,將數(shù)據(jù)包大小設置為100 byte,發(fā)包速率為2 p/s,節(jié)點初始能量值Estart設為1 000 J,下面隨著網(wǎng)絡運行時間增長,進行仿真分析,結(jié)果如圖5所示。 圖5 死亡節(jié)點個數(shù) 由圖5可知,ZBR算法死亡節(jié)點出現(xiàn)的時間最早,改進算法一次之,改進算法二最晚出現(xiàn)死亡節(jié)點。這是由于改進算法一控制了RREQ的傳播,因而網(wǎng)絡消耗比ZBR算法小,改進算法二在改進算法一的基礎上由于增加了節(jié)點能量控制,減少了剩余能量低的節(jié)點的分組轉(zhuǎn)發(fā),降低了低能量節(jié)點的功耗,防止節(jié)點死亡過早。 4結(jié)語 提出的改進算法通過控制RREQ的廣播半徑和傳播方向,大大降低了網(wǎng)絡消耗,同時考慮了節(jié)點的剩余能量問題,在一定程度上延遲了網(wǎng)絡關鍵節(jié)點的死亡。但是由于是在NS2 仿真環(huán)境下進行的仿真分析,不可能完全模擬真實的網(wǎng)絡環(huán)境,無法估計在實際網(wǎng)絡中會發(fā)生的各種突發(fā)情況,及實際網(wǎng)絡中存在的無法避免的干擾等,并且,仿真環(huán)境都是在節(jié)點數(shù)量較少的情況下進行,當節(jié)點數(shù)量很大,或者電池本身容量很大或更換很方便的情況下,提出的改進算法的實用性還有待進一步的研究。 參考文獻: [1]俞仁來,譚明皓.基于ZigBee的無線傳感器網(wǎng)絡路由分析[J].通信技術,2011,44(01):129-131. YU Ren-lai,TAN Ming-hao.Analysis of Wireless Sensor Network Routing based on Zigbee[J].Communications Technology,2011,44(01): 129-131. [2]敬朝暉.基于IEEE802.15.4/ZigBee的語音通信技術研究與實現(xiàn)[D].上海:上海交通大學,2008. JING Chao-hui.Research and Implementation of Voice Communication Technology based on IEEE802.15.4/Zigbee[D].Shanghai: Shanghai Jiaotong University,2008. [3]賈海瑞,李眾立.基于鄰居表的ZigBee網(wǎng)絡能量損耗轉(zhuǎn)移算法[J].傳感器與微系統(tǒng),2013(08):121-124.JIA Hai-rui,LI Zhong-li.Zigbee Network Energy Loss Transfer Algorithm based on Neighbor Table[J].Transducer and Micro System Technologies,2013(08):121-124. Zigbee C+A Route Protocol MING Fang (School of Mechanical and Electrical Engineering,Guizhou Normal Univ.,Guiyang Guizhou 550025,China) Abstract:With the rapid development of science and technology in recent years,how to quickly acquire information attracts much attention from the people.Again with the development of sensor and IoT technologies,the people begin their concerns on Zigbee technology.However,Zigbee,as a fairly new technology,needs prompt improvement in many fields,particularly in its route protocol,where large quantity of redundant packets exist,and a modified route algorithm is thus proposed.This algorithm,by comprehensively considering the shortest route,energy equilibrium,this algorithm could great reduce the network overhead,and improve the network lifetime.Finally simulation with NSZ indicates that this modified algorithm is theoretically feasible and applicable. Key words:Zigbee ; network overhead; energy equilibrium;NS2 simulation doi:10.3969/j.issn.1002-0802.2016.02.014 * 收稿日期:2015-09-05;修回日期:2015-12-15Received date:2015-09-05;Revised date:2015-12-15 中圖分類號:TN929.5 文獻標志碼:A 文章編號:1002-0802(2016)02-0194-05 作者簡介: 明芳(1988—),女,碩士研究生,講師,主要研究方向為物聯(lián)網(wǎng)。




