何智勇
摘要:Zigbee技術(shù)作為物聯(lián)網(wǎng)關(guān)鍵技術(shù)之一,在無線傳感器網(wǎng)絡(luò)中得到廣泛的應(yīng)用,ZigBee 網(wǎng)絡(luò)節(jié)點(diǎn)主要是依靠電池供電,路由算法是Zigbee協(xié)議棧核心部分,Zigbee路由協(xié)議AODVjr作為經(jīng)典的路由算法,本文對(duì)路由過程進(jìn)行具體分析。
關(guān)鍵詞:Zigbee網(wǎng)絡(luò)? AODVjr路由
1引言
隨著無線通信技術(shù)的發(fā)展,Zigbee技術(shù)憑借低功耗、構(gòu)架簡(jiǎn)單和通信高效優(yōu)勢(shì)在無線網(wǎng)絡(luò)中應(yīng)用廣泛,作為物聯(lián)網(wǎng)核心技術(shù)Zigbee,在工業(yè)領(lǐng)域應(yīng)用廣泛,由于該技術(shù)主要針對(duì)低速率和低功耗的無線傳感器網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),在網(wǎng)絡(luò)的部署過程中,節(jié)點(diǎn)主要通過電池進(jìn)行供電,由于電池容量的限制,對(duì)于長(zhǎng)期使用的網(wǎng)絡(luò)而言,降低節(jié)點(diǎn)的功耗是最重要的內(nèi)容,降低節(jié)點(diǎn)功耗的方法主要是通過減少節(jié)點(diǎn)上無效數(shù)據(jù)包的轉(zhuǎn)發(fā)來實(shí)現(xiàn),在Zigbee網(wǎng)絡(luò)中,降低節(jié)點(diǎn)功耗主要是針對(duì)網(wǎng)絡(luò)協(xié)議進(jìn)行優(yōu)化,優(yōu)化路由發(fā)現(xiàn)過程中數(shù)據(jù)包的轉(zhuǎn)發(fā)過程,降低網(wǎng)絡(luò)中高層節(jié)點(diǎn)的負(fù)擔(dān)一直是Zigbee技術(shù)研究的熱點(diǎn)。在Zigbee路由協(xié)議的實(shí)現(xiàn)過程中,通過Cluster-Tree和AODVjr 算法實(shí)現(xiàn)網(wǎng)絡(luò)路由功能,Cluster-Tree通過節(jié)點(diǎn)間的樹型結(jié)構(gòu)來進(jìn)行網(wǎng)絡(luò)中數(shù)據(jù)包的轉(zhuǎn)發(fā),網(wǎng)絡(luò)中節(jié)點(diǎn)在加入網(wǎng)絡(luò)時(shí),對(duì)節(jié)點(diǎn)進(jìn)行分類,父節(jié)點(diǎn)主要負(fù)責(zé)維護(hù)子節(jié)點(diǎn)的數(shù)據(jù)轉(zhuǎn)發(fā),父節(jié)點(diǎn)在收到發(fā)現(xiàn)路由報(bào)文的過程中,按節(jié)點(diǎn)記錄信息,對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。AODVjr 路由是一種按需路由機(jī)制。
AODVjr算法是AODV路由算法的簡(jiǎn)化版本,是一個(gè)輕量級(jí)的AODV路由算法,在AODV相比算法基礎(chǔ)上改進(jìn)的AODVjr路由算法與傳統(tǒng)的AODV算法相比,不使用目的節(jié)點(diǎn)序列號(hào),對(duì)最先到達(dá)節(jié)點(diǎn)的請(qǐng)求報(bào)文RREQ進(jìn)行響應(yīng),這樣大大簡(jiǎn)化了網(wǎng)絡(luò)中路由發(fā)現(xiàn)過程,對(duì)路由表結(jié)構(gòu)進(jìn)行優(yōu)化,當(dāng)網(wǎng)絡(luò)中由于節(jié)點(diǎn)能量耗盡等發(fā)生鏈路中斷,AODVjr啟動(dòng)本地修復(fù)機(jī)制來進(jìn)行修復(fù)路由,大大提高了故障修復(fù)響應(yīng)速度,減少向網(wǎng)絡(luò)中廣播發(fā)現(xiàn)報(bào)文對(duì)有限節(jié)點(diǎn)無用的能量消耗,有效控制鏈路開銷。
2 AODVjr路由分析
Zigbee網(wǎng)絡(luò)中的路由技術(shù)主要是為網(wǎng)絡(luò)中的數(shù)據(jù)包提供最優(yōu)化路徑,數(shù)據(jù)包通過網(wǎng)絡(luò)發(fā)送到目的節(jié)點(diǎn),在網(wǎng)絡(luò)層實(shí)現(xiàn)路由功能,實(shí)現(xiàn)網(wǎng)絡(luò)中節(jié)點(diǎn)路徑發(fā)現(xiàn)。在網(wǎng)絡(luò)傳輸過程中,為了實(shí)現(xiàn)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的協(xié)同,路由協(xié)議是Zigbee網(wǎng)絡(luò)中不可缺少的一部分,在網(wǎng)絡(luò)中充當(dāng)中非常重要的角色,它的主要作用是實(shí)現(xiàn)網(wǎng)絡(luò)中路由發(fā)現(xiàn)和路由信息維護(hù),當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化,負(fù)責(zé)網(wǎng)絡(luò)中節(jié)點(diǎn)路由的重新發(fā)現(xiàn),建立新的路由,為源節(jié)點(diǎn)和目的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),Zigbee網(wǎng)絡(luò)是一種低功耗的網(wǎng)絡(luò),協(xié)議中主要提供兩種經(jīng)典的網(wǎng)絡(luò)路由協(xié)議:按需距離矢量路由和樹型網(wǎng)絡(luò)結(jié)構(gòu)路由。在ZigBee網(wǎng)絡(luò)結(jié)構(gòu)采用樹狀網(wǎng)絡(luò),網(wǎng)絡(luò)中節(jié)點(diǎn)可以使用Cluster-Tree來進(jìn)行路由選擇和數(shù)據(jù)轉(zhuǎn)發(fā),每一個(gè)節(jié)點(diǎn)在收到數(shù)據(jù)包后都把數(shù)據(jù)轉(zhuǎn)發(fā)給對(duì)應(yīng)的子節(jié)點(diǎn),節(jié)點(diǎn)通過路由算法判斷節(jié)點(diǎn)是不是自己的后裔節(jié)點(diǎn),如果不是自己的后代節(jié)點(diǎn),數(shù)據(jù)會(huì)轉(zhuǎn)發(fā)給上一級(jí)的父節(jié)點(diǎn),由上一級(jí)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)處理,啟動(dòng)路由發(fā)現(xiàn)算法,把數(shù)據(jù)轉(zhuǎn)發(fā)到目的節(jié)點(diǎn),Cluster-Tree路由算法通過節(jié)點(diǎn)本身來判斷數(shù)據(jù)的轉(zhuǎn)發(fā)方向,實(shí)現(xiàn)網(wǎng)絡(luò)中的路由功能,但是Cluster-Tree路由算法效率不高,對(duì)網(wǎng)絡(luò)中核心節(jié)點(diǎn)的數(shù)據(jù)轉(zhuǎn)發(fā)功能沒有做到有效保護(hù),網(wǎng)絡(luò)中節(jié)點(diǎn)都承擔(dān)相同的轉(zhuǎn)發(fā)功能,對(duì)于一些處在網(wǎng)絡(luò)核心高頻率節(jié)點(diǎn)而言,頻繁的數(shù)據(jù)轉(zhuǎn)發(fā),節(jié)點(diǎn)的能量有限,很容易把自己身的能量消耗盡,形成網(wǎng)絡(luò)中斷和孤島出現(xiàn),網(wǎng)絡(luò)中數(shù)據(jù)轉(zhuǎn)輸?shù)男氏陆怠?/p>
AODVjr路由時(shí)一種按需分配,在節(jié)點(diǎn)路由啟動(dòng)RREQ過程中,網(wǎng)絡(luò)中節(jié)點(diǎn)在收到數(shù)據(jù)報(bào)文之后進(jìn)行解析,并且查看節(jié)點(diǎn)的路由表是否為數(shù)據(jù)包的目的地址,對(duì)于數(shù)據(jù)包中目的地址不是路由表中記錄的節(jié)點(diǎn)信息,重新啟動(dòng)路由發(fā)現(xiàn)過程,對(duì)數(shù)據(jù)的實(shí)時(shí)傳輸要求不高,AODVjr路由算法,網(wǎng)絡(luò)中節(jié)點(diǎn)在發(fā)現(xiàn)路由時(shí),會(huì)向網(wǎng)絡(luò)中廣播大量的RREQ發(fā)現(xiàn)報(bào)文,由由于是向Zigbee全網(wǎng)進(jìn)行發(fā)現(xiàn)報(bào)文廣播,會(huì)發(fā)送大量冗余的報(bào)文在網(wǎng)絡(luò)中出現(xiàn),增加網(wǎng)絡(luò)的負(fù)擔(dān),在網(wǎng)絡(luò)的運(yùn)行過程中,需要盡量控制網(wǎng)絡(luò)中無效的數(shù)據(jù)報(bào)的轉(zhuǎn)發(fā),因?yàn)榫W(wǎng)絡(luò)中節(jié)點(diǎn)的能量有限,節(jié)省網(wǎng)絡(luò)中節(jié)點(diǎn)的能量尤其重要,有利于延長(zhǎng)網(wǎng)絡(luò)使用壽命。由于Zigbee網(wǎng)絡(luò)基于樹型結(jié)構(gòu),網(wǎng)絡(luò)中高層節(jié)點(diǎn)需要負(fù)責(zé)網(wǎng)絡(luò)中所有子節(jié)點(diǎn)數(shù)據(jù)和路由報(bào)文的轉(zhuǎn)發(fā),還要負(fù)責(zé)自身節(jié)點(diǎn)的相關(guān)數(shù)據(jù)的轉(zhuǎn)發(fā),當(dāng)高層節(jié)點(diǎn)的能量消耗盡,網(wǎng)絡(luò)會(huì)出現(xiàn)分割,影響網(wǎng)絡(luò)運(yùn)行效率。
因此AODVjr路由算法在ZigBee網(wǎng)絡(luò)中應(yīng)用非常廣泛。AODVjr路由算法的路由建立主要由以下三個(gè)步驟組成:
第一步:路由發(fā)現(xiàn)。
第二步:反向路由建立。
第三步:正向路由的建立。
經(jīng)過以上路由建立的三個(gè)步驟,節(jié)點(diǎn)通過RREQ路由請(qǐng)求過程,在源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間建立一條通信的路由,網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包可以通過建立的路由來進(jìn)行發(fā)送, AODVjr路由算法通過RREQ路由請(qǐng)求、RREP路由回復(fù)、RERR路由錯(cuò)誤來控制實(shí)現(xiàn)的。
(1)路由發(fā)現(xiàn)過程
在數(shù)據(jù)包發(fā)達(dá)的過程中,網(wǎng)絡(luò)中間節(jié)點(diǎn)收到RREQ報(bào)文時(shí),會(huì)去查詢自身維護(hù)的路由表信息,在路由表中查詢到對(duì)應(yīng)的路由信息,通過路由表中的信息進(jìn)行數(shù)據(jù)的發(fā)送,如果路由表中沒有對(duì)應(yīng)地址信息,則通過向網(wǎng)絡(luò)中廣播RREQ來進(jìn)行路由發(fā)現(xiàn)過程。如果該節(jié)點(diǎn)是第一次收到路由發(fā)現(xiàn)報(bào)文RREQ,檢查數(shù)據(jù)包中的目的地址是否為自己,目的地址不是自己的時(shí)候,保留信息建立反向路由。
(2)反向路由建立過程
在Zigbee網(wǎng)絡(luò)中,網(wǎng)絡(luò)中節(jié)點(diǎn)在數(shù)據(jù)轉(zhuǎn)發(fā)過程中,中間節(jié)點(diǎn)通過RREQ消息存儲(chǔ)相關(guān)反向路由信息,可以維護(hù)目的節(jié)點(diǎn)到源節(jié)點(diǎn)的路由相關(guān)信息,節(jié)點(diǎn)維護(hù)的反向路由信息將會(huì)維持一定時(shí)間,讓節(jié)點(diǎn)返回的確認(rèn)報(bào)文RREP。
(3)正向路由建立過程
在網(wǎng)絡(luò)路由維護(hù)過程中,節(jié)點(diǎn)通過反向路由信息,可以為節(jié)點(diǎn)與目的節(jié)點(diǎn)之間建立一條通路,當(dāng)源節(jié)點(diǎn)收到確認(rèn)報(bào)文RREP,路由建立過程完成,源節(jié)點(diǎn)到目的節(jié)點(diǎn)的數(shù)據(jù)發(fā)送可以通過已建立路由進(jìn)行傳送。
按建立網(wǎng)絡(luò)路由主要步驟,網(wǎng)絡(luò)中路由Zigbee網(wǎng)絡(luò)中節(jié)點(diǎn)分為3類,負(fù)責(zé)路由協(xié)調(diào)器、路由節(jié)點(diǎn);在加入網(wǎng)絡(luò)時(shí),作為高層節(jié)點(diǎn)來分配地址,而終端節(jié)點(diǎn)為網(wǎng)絡(luò)中傳感器的加載節(jié)點(diǎn),是網(wǎng)絡(luò)中的基礎(chǔ)節(jié)點(diǎn),主要負(fù)責(zé)全網(wǎng)數(shù)據(jù)轉(zhuǎn)發(fā),自身不具備路由功能。為了減少Zigbee網(wǎng)絡(luò)中高層節(jié)點(diǎn)的死亡率,在啟動(dòng)路由發(fā)現(xiàn)的過程中,可以對(duì)節(jié)點(diǎn)進(jìn)行分類和引入能量平衡機(jī)制,按節(jié)點(diǎn)剩余能量的水平進(jìn)行劃分區(qū)域,保護(hù)能量低的節(jié)點(diǎn),主要負(fù)責(zé)網(wǎng)絡(luò)中核心發(fā)現(xiàn)路由啟動(dòng)過程。對(duì)于能量充足的節(jié)點(diǎn),進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),在路由發(fā)現(xiàn)的過程中,盡量避免選擇能量不足的節(jié)點(diǎn)來進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),在數(shù)據(jù)轉(zhuǎn)發(fā)的過程中,節(jié)點(diǎn)在啟動(dòng)發(fā)現(xiàn)路由過程中,可以首先按Cluster-Tree 路由算法,按節(jié)點(diǎn)間的父子關(guān)系,首先判斷RREQ發(fā)現(xiàn)報(bào)文方向,可以不采用泛洪的方式在全網(wǎng)中進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),特別是對(duì)沒有父子關(guān)系的節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),有效避免節(jié)點(diǎn)向相反方向進(jìn)行數(shù)據(jù)報(bào)文的發(fā)送進(jìn)行路由的發(fā)現(xiàn)過程,減少網(wǎng)絡(luò)中無效的數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中出現(xiàn)。
3 結(jié)束語
Zigbee技術(shù)作為一種常見的無線傳輸方式,在工業(yè)界得到廣泛的應(yīng)用,路由算法AODVjr作為Zigbee技術(shù)的核心內(nèi)容,分析AODVjr路由算法的的詳細(xì)過程是非常有實(shí)際意義的。
參考文獻(xiàn)
[1]王寧.ZigBee無線傳感網(wǎng)中AODVjr路由協(xié)議研究[J].計(jì)算機(jī)數(shù)字與工程,2018,3:552-554.
項(xiàng)目編號(hào)
南京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)??蒲谢痦?xiàng)目(YK17-02-04)