焦慧平 孔國(guó)利
摘 要: 為解決ZigBee網(wǎng)絡(luò)由于不合理的路由策略導(dǎo)致節(jié)點(diǎn)能量浪費(fèi)和網(wǎng)絡(luò)陷入局部死亡的問(wèn)題,提出一種降低節(jié)點(diǎn)能量開(kāi)銷(xiāo)的ZBR路由算法。所提ZBR優(yōu)化算法在路由發(fā)送階段,利用節(jié)點(diǎn)自動(dòng)維護(hù)的鄰居表信息,優(yōu)先實(shí)現(xiàn)兩跳路由傳輸;在路由發(fā)現(xiàn)過(guò)程中,根據(jù)最大傳輸跳數(shù)和節(jié)點(diǎn)間的父子關(guān)系,控制ZigBee網(wǎng)絡(luò)中RN+節(jié)點(diǎn)RREQ分組的洪泛,減少能量浪費(fèi);在路由選擇時(shí),設(shè)計(jì)節(jié)點(diǎn)能量標(biāo)志位和能量感知的路由成本函數(shù),減少能量偏低節(jié)點(diǎn)的使用概率,降低網(wǎng)絡(luò)開(kāi)銷(xiāo)和提高節(jié)點(diǎn)生存率。通過(guò)與原ZBR算法及其他幾種改進(jìn)ZBR算法進(jìn)行剩余能量和節(jié)點(diǎn)生存率對(duì)比仿真實(shí)驗(yàn),結(jié)果表明:改進(jìn)的ZBR算法的平均剩余能量提高了7.74%,在網(wǎng)絡(luò)運(yùn)行80 s時(shí)節(jié)點(diǎn)生存率提高了20.29%,也高于其他幾種改進(jìn)ZBR算法,該算法可有效減少網(wǎng)絡(luò)能量消耗,大大提高節(jié)點(diǎn)生存率。
關(guān)鍵詞: ZigBee網(wǎng)絡(luò); 路由策略; 能量開(kāi)銷(xiāo); 能量標(biāo)志; 節(jié)點(diǎn)生存率
中圖分類(lèi)號(hào): TN926?34; TP393.2 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)08?0068?04
Optimization of a ZigBee routing algorithm for reducing node energy consumption
JIAO Huiping, KONG Guoli
(Information Engineering College, Zhongzhou University, Zhengzhou 450044, China)
Abstract: Due to unreasonable routing algorithm, the ZigBee networks encounter node energy over?consumption and partial death. To solve these problems, a ZigBee routing(ZBR) optimization algorithm for reducing node energy consumption is proposed. The proposed ZBR optimization algorithm, in the routing delivery stage, makes use the nodes to maintain neighbor table information automatically, and takes priority for a two?hop routing transmission; in the discovery process of routing, controls the RREQ packet of RN+ node to reduce energy dissipation according to the maximum hop number and the father?son relationship among the nodes; during routing selection, adds energy flags to the RN? node to reduce the transmission probability of low energy nodes and utilizes an energy?aware routing cost function designed to cut down the network energy cost and improve the node's survival rate. Compared with the original ZBR algorithm and several other improved ZBR algorithms of the residual energy and node survival rate in the simulation experiment, the average remaining energy of the improved ZBR algorithm is increased by 7.74% and the node survival rate is increased by 20.29% in 80 s running of the network. The algorithm can effectively reduce the network's energy consumption and improve node's survival rate.
Keywords: ZigBee network; routing strategy; energy expenditure; energy flag; node survival rate
0 引 言
ZigBee是一種短距離、低功耗和低速率的無(wú)線(xiàn)通信技術(shù),ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)主要依靠電池供電,由于節(jié)點(diǎn)體積小,節(jié)點(diǎn)的能量十分有限[1],所以降低網(wǎng)絡(luò)能耗是解決阻礙ZigBee網(wǎng)絡(luò)應(yīng)用發(fā)展的關(guān)鍵。ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)根據(jù)拓?fù)浣Y(jié)構(gòu)的不同主要采用AODVjr路由和Cluster?tree路由兩種算法[2]。Cluster?tree算法是靜態(tài)路由算法,由簇樹(shù)之間的父子關(guān)系進(jìn)行路由,但路由效率較低,能量開(kāi)銷(xiāo)和服務(wù)時(shí)延較大。AODVjr算法則通過(guò)大量洪泛來(lái)尋找最優(yōu)路由路徑,其路由開(kāi)銷(xiāo)較大。ZBR(ZigBee routing)算法結(jié)合了兩種算法特性,以求滿(mǎn)足不同的應(yīng)用需求,是當(dāng)前最適用于ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)的算法[3?4]。此外RFD節(jié)點(diǎn)因不具有路由功能,由其父節(jié)點(diǎn)完成路由,但是由于AODVjr和Cluster?tree兩種算法的固有不足,ZBR算法在能量效率和負(fù)載控制方面還有較大改進(jìn)空間。
為了解決ZBR算法存在網(wǎng)絡(luò)能量消耗大和節(jié)點(diǎn)死亡率高的問(wèn)題,班艷麗等將節(jié)點(diǎn)臨界能量機(jī)制引入到ZigBee路由算法中[5],且控制RREQ的大致傳輸方向,減少死亡節(jié)點(diǎn)數(shù),降低網(wǎng)絡(luò)能量消耗,算法完全避免使用低能量節(jié)點(diǎn)進(jìn)行路由轉(zhuǎn)發(fā),但全由RN+節(jié)點(diǎn)組成的傳輸路徑卻不一定是最優(yōu)路徑。張擎等在對(duì)Cluster?tree結(jié)構(gòu)進(jìn)行改進(jìn)以節(jié)省路由開(kāi)銷(xiāo)和均衡負(fù)載[6],之后對(duì)RREQ和RREP分組處理,以保護(hù)能量偏低節(jié)點(diǎn);然而該方案缺乏對(duì)RN-節(jié)點(diǎn)相應(yīng)的改進(jìn)。Taehong K等考慮路由成本提出了利用鄰居表建立短路徑路由協(xié)議算法[7]。
本文首先分析了ZBR算法中RN+,RN-節(jié)點(diǎn)采用算法存在的缺點(diǎn),然后提出了一種改進(jìn)的ZBR路由算法。改進(jìn)方案通過(guò)利用鄰居列表完成兩跳范圍之內(nèi)的傳輸和對(duì)RN+節(jié)點(diǎn)RREQ冗余分組的減少和丟棄,減少了網(wǎng)絡(luò)能量的浪費(fèi)。此外,在RN-節(jié)點(diǎn)設(shè)置能量標(biāo)志位,以減少RN-節(jié)點(diǎn)的使用概率,延長(zhǎng)網(wǎng)絡(luò)的整體壽命。
1 ZBR算法存在的問(wèn)題
RREQ分組冗余:AODVjr算法采用廣播通信機(jī)制,雖然可以找到最短路徑,但AODVjr算法在路由發(fā)現(xiàn)過(guò)程中會(huì)產(chǎn)生大量的RREQ分組。隨著網(wǎng)絡(luò)規(guī)模的增加,這些RREQ分組數(shù)量顯著增加。大量的RREQ分組為了降低分組傳輸時(shí)延,提高分組遞交率,在ZigBee網(wǎng)絡(luò)中形成洪泛。部分RREQ分組的尋址范圍超過(guò)網(wǎng)絡(luò)的最大跳數(shù),當(dāng)傳輸次數(shù)達(dá)到時(shí)會(huì)被節(jié)點(diǎn)丟棄,造成網(wǎng)絡(luò)能力的浪費(fèi)。此外,現(xiàn)有RREQ分組的路由方法沒(méi)有考慮簇樹(shù)的父子關(guān)系,形成冗余洪泛。冗余RREQ分組會(huì)浪費(fèi)網(wǎng)絡(luò)能量,降低網(wǎng)絡(luò)整體能量消耗可通過(guò)降低RREQ分組洪泛開(kāi)銷(xiāo)來(lái)實(shí)現(xiàn)。
能效不均衡的路由策略:RN-節(jié)點(diǎn)雖然采用Cluster?tree算法節(jié)約了能量,但能量偏低的RN-節(jié)點(diǎn)如果繼續(xù)被頻繁用于數(shù)據(jù)傳輸,當(dāng)能量耗盡時(shí)會(huì)成為死亡節(jié)點(diǎn)。在網(wǎng)絡(luò)運(yùn)行后期,當(dāng)節(jié)點(diǎn)能量普遍不足時(shí),RN-節(jié)點(diǎn)將變?yōu)镽N+節(jié)點(diǎn)參與路由,但死亡節(jié)點(diǎn)無(wú)法轉(zhuǎn)變,其他節(jié)點(diǎn)傳輸數(shù)據(jù)時(shí)必須繞過(guò)死亡節(jié)點(diǎn),造成能量浪費(fèi),所以在路由時(shí)應(yīng)盡量降低RN-節(jié)點(diǎn)作為傳輸節(jié)點(diǎn)的概率。
缺乏高效的鄰居節(jié)點(diǎn)路由:RN+,RN-節(jié)點(diǎn)為路由節(jié)點(diǎn),都自動(dòng)存儲(chǔ)維護(hù)一張鄰居表,擁有離自己一跳距離的相鄰節(jié)點(diǎn)信息,如果目的節(jié)點(diǎn)可以通過(guò)源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)傳輸,則可以通過(guò)使用鄰居表減少能量消耗[8]。網(wǎng)絡(luò)節(jié)點(diǎn)分布如圖1所示。從圖1中可看出,若不考慮鄰居節(jié)點(diǎn)的使用,節(jié)點(diǎn)7到節(jié)點(diǎn)10的數(shù)據(jù)傳輸路徑為7?4?0?3?10,若使用鄰居節(jié)點(diǎn),數(shù)據(jù)傳輸路徑為7?12?10,縮短了路由路徑,且避免廣播RREQ分組,降低網(wǎng)絡(luò)能量消耗,但原ZBR算法卻忽略了鄰居表的使用。
本文針對(duì)ZBR算法的三個(gè)主要問(wèn)題,提出各自的解決方案,達(dá)到降低網(wǎng)絡(luò)功耗、提高節(jié)點(diǎn)生存率的目的。
圖1 鄰居節(jié)點(diǎn)路由
2 降低節(jié)點(diǎn)能量開(kāi)銷(xiāo)的ZBR路由算法
2.1 基于鄰居表的兩跳傳輸機(jī)制
網(wǎng)絡(luò)在初始化時(shí)每個(gè)RN+,RN-節(jié)點(diǎn)都更新維護(hù)自己的鄰居表信息。鄰居表存儲(chǔ)內(nèi)容如表1所示。
表1 鄰居表格式
在圖1中,節(jié)點(diǎn)4的鄰居表存儲(chǔ)其鄰居節(jié)點(diǎn)1,3,7,13的相關(guān)信息。在尋找目的節(jié)點(diǎn)時(shí),RN+,RN-節(jié)點(diǎn)都應(yīng)首先充分使用鄰居表,避免開(kāi)啟路由發(fā)現(xiàn)時(shí)洪泛RREQ尋址消耗能量。具體機(jī)制為:如果目的節(jié)點(diǎn)在鄰居表內(nèi),就直接轉(zhuǎn)發(fā)分組到目的節(jié)點(diǎn),如果將數(shù)據(jù)從節(jié)點(diǎn)4發(fā)給目的節(jié)點(diǎn)3,只需一跳傳輸即可發(fā)送數(shù)據(jù)。如果與目的節(jié)點(diǎn)存在共同節(jié)點(diǎn),則將數(shù)據(jù)發(fā)送給共同節(jié)點(diǎn),然后由共同節(jié)點(diǎn)將數(shù)據(jù)轉(zhuǎn)發(fā)給目的節(jié)點(diǎn),在兩跳范圍內(nèi)完成數(shù)據(jù)傳輸,如路徑7?12?10。
2.2 RN+節(jié)點(diǎn)中RREQ冗余分組的處理
RN+節(jié)點(diǎn)在數(shù)據(jù)傳輸時(shí)存在冗余RREQ分組,其中一種冗余產(chǎn)生的原因是由于RREQ分組的傳輸跳數(shù)超過(guò)了ZigBee網(wǎng)絡(luò)的最大傳輸跳數(shù)。最大傳輸跳數(shù)定義為源節(jié)點(diǎn)到目的節(jié)點(diǎn)的深度之和:
[L=d+d0-2dc] (1)
式中:d為源節(jié)點(diǎn)深度;d0為目的節(jié)點(diǎn)深度;dc為源節(jié)點(diǎn)與目的節(jié)點(diǎn)的公共父節(jié)點(diǎn)的深度。當(dāng)RREQ分組的尋址范圍大于[L],該分組會(huì)在傳播次數(shù)耗盡時(shí)丟棄,而對(duì)尋找目的節(jié)點(diǎn)沒(méi)有意義,浪費(fèi)網(wǎng)絡(luò)能量。此類(lèi)RREQ分組的大量洪泛還會(huì)引起網(wǎng)絡(luò)擁塞現(xiàn)象,因此,當(dāng)節(jié)點(diǎn)收到此類(lèi)RREQ分組時(shí)應(yīng)立即丟棄。
另外一種冗余RREQ分組的產(chǎn)生的原因是RN+節(jié)點(diǎn)采用廣播通信機(jī)制時(shí)沒(méi)有考慮網(wǎng)絡(luò)中存在的父子關(guān)系引起的。并不是所有的鄰居節(jié)點(diǎn)都能尋找出最優(yōu)路徑,因此需要對(duì)RREQ分組進(jìn)行定向,去除冗余RREQ分組[9]。
2.3 能量標(biāo)志位
為防止RN-節(jié)點(diǎn)被過(guò)度使用而使節(jié)點(diǎn)死亡,改進(jìn)的ZBR算法在RREQ分組中加入能量標(biāo)志位E?flag。能量標(biāo)志位表示當(dāng)前分組的傳輸路徑中存在RN-節(jié)點(diǎn)。將E?flag置為1,表明路徑中存在能量偏低節(jié)點(diǎn),路由選擇算法應(yīng)該避免使用低能量節(jié)點(diǎn)。避免使用低能量節(jié)點(diǎn)之后,ZBR算法還需要進(jìn)一步優(yōu)化,以提高全網(wǎng)能量使用效率。原ZBR算法中,路由成本函數(shù)考慮了跳數(shù),剩余能量和鏈路質(zhì)量,能夠很好表征路徑的能量效率。路由P的成本為:
[C(P)=i=1L-1TC[Di,Di+1]] (2)
式中:TC{[Di,Di+1]}為節(jié)點(diǎn)Di到Di+1鏈路成本;L為鏈路最大長(zhǎng)度。鏈路成本的函數(shù)表達(dá)式如下:
[TCl=7min(7,round(1P4l))] (3)
考慮節(jié)點(diǎn)剩余能量對(duì)路徑選擇的影響,提高網(wǎng)絡(luò)整體有效壽命,本文方案設(shè)計(jì)了能效優(yōu)化的鏈路成本函數(shù)Pl,定義Pl如下:
[Pl=α·LQI+β·REnergy] (4)
式中:α,β(0≤α,β≤1,α+β=1)為固定系數(shù),用來(lái)權(quán)衡每個(gè)影響因素的重要性;[LQI]是MAC層和PHY層所提供的每一幀的LQI的平均值;REnergy則表示節(jié)點(diǎn)剩余能量。由于改進(jìn)的路由成本函數(shù)考慮了節(jié)點(diǎn)的剩余能量,使得路徑中含有低能量節(jié)點(diǎn)的路由成本增加。在路由選取階段,含有低能量節(jié)點(diǎn)的路由能夠以較低的概率被使用,避免了低能量節(jié)點(diǎn)被過(guò)度使用導(dǎo)致網(wǎng)絡(luò)死亡。
因此,當(dāng)目的節(jié)點(diǎn)收到RREQ分組后,查看其能量標(biāo)志位。若能量標(biāo)志位為1,表明路徑中含有能量偏低的RN-節(jié)點(diǎn)。此時(shí),應(yīng)當(dāng)優(yōu)先選擇能量標(biāo)志位為0的路徑進(jìn)行傳輸。其次,在能量標(biāo)志位為1的路徑集合中選擇路由成本最低的路徑進(jìn)行傳輸。由于路由成本公式考慮了節(jié)點(diǎn)剩余能量的影響,含有RN-節(jié)點(diǎn)的路徑代價(jià)增大,降低其被選中概率。
2.4 改進(jìn)ZBR算法路由策略
改進(jìn)算法的路由策略主要分三個(gè)階段,分別為查詢(xún)鄰居表階段、RREQ尋址階段和目的節(jié)點(diǎn)選擇路徑階段。節(jié)點(diǎn)處理RREQ分組的過(guò)程如下:
Step1:當(dāng)一個(gè)分組到達(dá)節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)查找鄰居表。若存在目的節(jié)點(diǎn),則直接轉(zhuǎn)發(fā)給目的節(jié)點(diǎn);若與目的節(jié)點(diǎn)存在共同節(jié)點(diǎn),則定向發(fā)送給共同節(jié)點(diǎn)。
Step2:通過(guò)Step1無(wú)法尋址到目的節(jié)點(diǎn)時(shí),節(jié)點(diǎn)開(kāi)啟路由發(fā)現(xiàn),轉(zhuǎn)發(fā)RREQ分組前待轉(zhuǎn)發(fā)節(jié)點(diǎn)首先判斷與目的節(jié)點(diǎn)父子關(guān)系,而后RN+和RN-節(jié)點(diǎn)根據(jù)自己的功能特性轉(zhuǎn)發(fā)RREQ分組。若在轉(zhuǎn)發(fā)節(jié)點(diǎn)的后裔簇樹(shù)中存在目的節(jié)點(diǎn),則轉(zhuǎn)發(fā)節(jié)點(diǎn)將RREQ分組遞交到該后裔簇樹(shù)的根節(jié)點(diǎn)。否則該分組信息轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)節(jié)點(diǎn)的父節(jié)點(diǎn)處理。另外RREQ分組到達(dá)一個(gè)不具有路由功能的RFD節(jié)點(diǎn)時(shí),該分組直接被遞交回該RFD節(jié)點(diǎn)的父節(jié)點(diǎn)。
Step3:ZigBee網(wǎng)絡(luò)中等待路由時(shí)間是由中心協(xié)調(diào)器設(shè)置,一般為某個(gè)常數(shù),超過(guò)設(shè)置的時(shí)間則停止等待[10]。等待時(shí)間結(jié)束后,目的節(jié)點(diǎn)會(huì)收到來(lái)自不同路徑的RREQ分組。目的節(jié)點(diǎn)首先根據(jù)能量標(biāo)志位E?flag進(jìn)行路由分類(lèi),在E?flag為0的路由中選擇路由成本最小的路徑進(jìn)行數(shù)據(jù)傳輸。由于從式(4)中得出,剩余能量越大的路由成本越小。因此該路由選擇算法能夠達(dá)到降低能量節(jié)點(diǎn)傳輸數(shù)據(jù)的概率,延長(zhǎng)節(jié)點(diǎn)壽命的目的。
以上改進(jìn)算法在路由傳播階段,針對(duì)節(jié)點(diǎn)的能量狀況,在RREQ分組中添加E?flag標(biāo)志位,避免能量偏低的過(guò)度使用,提高節(jié)點(diǎn)生存率,延長(zhǎng)網(wǎng)絡(luò)壽命。在路由發(fā)現(xiàn)階段,對(duì)RREQ分組根據(jù)最大跳傳輸限制進(jìn)行丟棄,然后對(duì)剩余RREQ分組根據(jù)簇樹(shù)結(jié)構(gòu)的父子關(guān)系進(jìn)行定向傳播,避免過(guò)多RREQ分組洪泛的產(chǎn)生。在路由選擇階段,路由成本由式(4)計(jì)算,公式簡(jiǎn)單,且可由各節(jié)點(diǎn)獨(dú)立計(jì)算完成。假設(shè)鄰居節(jié)點(diǎn)個(gè)數(shù)為n,各節(jié)點(diǎn)查找鄰居表時(shí),算法遍歷每個(gè)鄰居節(jié)點(diǎn),算法的時(shí)間復(fù)雜度為O(n),算法可在多項(xiàng)式時(shí)間內(nèi)完成。
3 仿真實(shí)驗(yàn)結(jié)果
為驗(yàn)證改進(jìn)算法的性能,通過(guò)系統(tǒng)仿真對(duì)網(wǎng)絡(luò)的關(guān)鍵性指標(biāo)進(jìn)行考察。網(wǎng)絡(luò)仿真平臺(tái)使用開(kāi)源的NS2,平臺(tái)實(shí)現(xiàn)了IEEE 802.15.4協(xié)議的PHY層和MAC層。整個(gè)網(wǎng)絡(luò)范圍設(shè)置為100 m×100 m,信息源采用CBR作為數(shù)據(jù)信息源,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)為100,節(jié)點(diǎn)一跳傳輸距離為15 m,節(jié)點(diǎn)初始能量10 J。
仿真主要通過(guò)文獻(xiàn)[5]和文獻(xiàn)[6]提出的改進(jìn)ZBR 路由算法和本文提出的改進(jìn)ZBR算法、原ZBR算法在網(wǎng)絡(luò)能量消耗和節(jié)點(diǎn)生存率上進(jìn)行對(duì)比分析。
3.1 剩余能量
仿真實(shí)驗(yàn)中,節(jié)點(diǎn)剩余能量與時(shí)間的關(guān)系如表2所示。從表2可以看出,本文提出的改進(jìn)ZBR算法利用了節(jié)點(diǎn)自身維護(hù)的鄰居表尋址目的節(jié)點(diǎn),通過(guò)鄰居表能找到目的節(jié)點(diǎn)將能大大降低網(wǎng)絡(luò)能量消耗,而原ZBR算法和文獻(xiàn)[5]卻忽略了鄰居表的使用,所以能量消耗比ZBR和文獻(xiàn)[6]大。再者,本文的改進(jìn)ZBR算法降低了RREQ分組引起的能量浪費(fèi),雖然文獻(xiàn)[5]和文獻(xiàn)[6]也控制了RREQ分組的冗余,但對(duì)于能量偏低的RN-節(jié)點(diǎn)卻沒(méi)有相應(yīng)的改進(jìn)。而改進(jìn)ZBR算法利用公式(4)降低RN-節(jié)點(diǎn)參與路由轉(zhuǎn)發(fā)的概率,減少RN-節(jié)點(diǎn)死亡引發(fā)的網(wǎng)絡(luò)能量浪費(fèi)現(xiàn)象。由表2數(shù)據(jù)得出,改進(jìn)的ZBR算法降低了網(wǎng)絡(luò)能量消耗,比原ZBR算法的平均剩余能量提高了7.74%,且始終高于文獻(xiàn)[5]和文獻(xiàn)[6]的兩種改進(jìn)算法。
3.2 節(jié)點(diǎn)生存率
節(jié)點(diǎn)生存率為網(wǎng)絡(luò)可用節(jié)點(diǎn)率。如果一個(gè)節(jié)點(diǎn)的剩余能量低于初始能量的3%,則被看作是死亡節(jié)點(diǎn)。網(wǎng)絡(luò)運(yùn)行結(jié)束后,計(jì)算生存節(jié)點(diǎn)個(gè)數(shù)。節(jié)點(diǎn)生存率公式為:
[λ=NableNtotal×100%] (5)
式中:Nable是網(wǎng)絡(luò)運(yùn)行結(jié)束后生存節(jié)點(diǎn)個(gè)數(shù);Ntotal是網(wǎng)絡(luò)總節(jié)點(diǎn)個(gè)數(shù)。四種算法的仿真實(shí)驗(yàn)結(jié)果如圖2所示。
在網(wǎng)絡(luò)運(yùn)行初期,節(jié)點(diǎn)能量充足,節(jié)點(diǎn)生存率降低幅度不大。在網(wǎng)絡(luò)運(yùn)行后期,節(jié)點(diǎn)能量普遍不足,節(jié)點(diǎn)死亡速度加快,各算法的節(jié)點(diǎn)生存率下降幅度都有所增大,原ZBR算法下降幅度最為明顯。本文改進(jìn)ZBR算法首先通過(guò)控制RREQ分組的冗余降低了RN+節(jié)點(diǎn)的能量消耗,延長(zhǎng)了RN+節(jié)點(diǎn)退化為RN-節(jié)點(diǎn)的時(shí)間;其次,算法降低了RN-節(jié)點(diǎn)被使用的概率,減少了RN-節(jié)點(diǎn)的死亡幾率。圖2表明改進(jìn)ZBR算法在網(wǎng)絡(luò)運(yùn)行80 s時(shí)節(jié)點(diǎn)生存率比原ZBR算法提高了20.29%,且始終高于文獻(xiàn)[5]和文獻(xiàn)[6]的兩種改進(jìn)算法。
4 結(jié) 語(yǔ)
ZigBee是一種易部署和適應(yīng)性強(qiáng)的短距離無(wú)線(xiàn)通信技術(shù),但因其使用電池供電,常常由于不合理的路由算法導(dǎo)致網(wǎng)絡(luò)過(guò)早死亡。為此,本文從利用鄰居表兩跳傳輸優(yōu)先、設(shè)置能量標(biāo)志位和能量感知的路由成本函數(shù)和根據(jù)節(jié)點(diǎn)的父子關(guān)系減少RREQ分組冗余三個(gè)方面著手,提出了能量均衡的改進(jìn)ZBR路由算法。在開(kāi)啟路由發(fā)現(xiàn)過(guò)程前充分使用節(jié)點(diǎn)鄰居表,減少網(wǎng)絡(luò)發(fā)送尋址RREQ的能量消耗,提高網(wǎng)絡(luò)能量利用效率。在路由發(fā)現(xiàn)階段,利用父子關(guān)系控制RREQ分組的轉(zhuǎn)發(fā)取向,減少RREQ分組洪泛帶來(lái)的能量損耗。在路由選擇階段,利用能量標(biāo)志位和能效感知的路由成本函數(shù)均衡全局節(jié)點(diǎn)剩余能量。通過(guò)仿真實(shí)驗(yàn),改進(jìn)的ZBR算法比原ZBR算法的平均剩余能量提高了7.74%,在網(wǎng)絡(luò)運(yùn)行80 s時(shí)的生存率提高了20.29%,也高于引用文獻(xiàn)中的方法。
參考文獻(xiàn)
[1] 李小龍,彭美平.基于OPNET的改進(jìn)型Zigbee傳感器網(wǎng)絡(luò)仿真系統(tǒng)[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,33(6):671?677.
[2] 樓亮亮,周苗,何為,等.基于ZigBee協(xié)議OTA技術(shù)的改進(jìn)方法研究[J].現(xiàn)代電子技術(shù),2014,37(23):1?4.
[3] 穆嘉松,劉開(kāi)華,史偉光.ZigBee網(wǎng)絡(luò)中基于節(jié)點(diǎn)移動(dòng)性的路由選擇策略[J].天津大學(xué)學(xué)報(bào)(自然科學(xué)與工程技術(shù)版),2012,45(4):301?308.
[4] 吳許俊,王永利.基于兩跳鄰居的ZigBee網(wǎng)絡(luò)借地址分配算法[J].科學(xué)技術(shù)與工程,2013,13(28):8333?8338.
[5] 班艷麗,柴喬林,王芳.改進(jìn)的ZigBee網(wǎng)絡(luò)路由算法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(5):95?97.
[6] 張擎,劉淑美,柴喬林.能量高效的zigbee網(wǎng)絡(luò)改進(jìn)路由策略[J].計(jì)算機(jī)工程,2010,36(7):108?111.
[7] TAEHONG K, DAEYOUNG K, NOSEONG P, et al. Shortcut tree routing in ZigBee networks [C]// Proceedings of the 2nd International Symposium on Wireless Pervasive Computing. [S.l.]: ISWPC, 2007: 42?47.
[8] 陳建銳,何增穎.基于動(dòng)態(tài)優(yōu)化因子的Zigbee協(xié)議優(yōu)化仿真算法[J].計(jì)算機(jī)仿真,2013,30(7):272?275.
[9] 錢(qián)志鴻,朱爽,王雪.基于分簇機(jī)制的ZigBee混合路由能量?jī)?yōu)化算法[J].計(jì)算機(jī)學(xué)報(bào),2012,36(3):485?493.
[10] 劉麗君,陳志奎.一種適用于密集傳感器網(wǎng)絡(luò)中的DV?Hop改進(jìn)算法[J].微電子學(xué)與計(jì)算機(jī),2010,27(7):190?193.