ZigBee網絡Cluster-Tree優化路由算法研究
無線通信和嵌入式微傳感器技術的快速發展促進了無線傳感器網絡的崛起。ZigBee協議基于IEEE 802.15.4無線標準制定,包括應用層、網絡層、安全層等,實現了網絡的自組織和自維護的功能。在無線傳感器網絡中,節點的能量是有限的,如果節點在最后因為自身的能量消耗殆盡而死亡,將會對整個網絡的傳輸性能造成很大影響。因此,在實際應用中,根據不同的網絡情況來選擇最符合應用需求的路由協議,讓路由協議根據網絡拓撲選擇合適的路徑,平均分布節點的傳輸能量,降低網絡的功耗是網絡層必須要考慮的任務。
1 ZigBee路由算法研究
依據設備的能力,ZigBee網絡中的設備可以分為全功能設備(Full Function Device,FFD)和半功能設備(Reduced Function Device,RFD)。FFD能轉發其他設備的數據幀,RFD則不能。當FFD加入一個網絡時,它可以作為協調器。協調器會周期性地廣播數據幀,周圍的RFD能夠發現并加入網絡,形成一個星型拓撲網絡。在星型拓撲中,協調器負責控制整個網絡,所有終端設備都直接與協調器通信,并且由它維護。
ZigBee網絡層還支持樹型和網狀網絡。樹型網絡采用分級路由的策略在網絡中傳送數據和控制信息,而網狀網絡則可以進行點對點的通信。在樹型網絡中,根節點(協調器節點)和所有的內部節點(路由器節點)是FFD,而RFD只能作為葉子節點(終端節點)。當協調器或路由器加入網絡時,它必須被分配唯一的網絡地址。
1.1 網絡地址分配
ZigBee協議規范使用一個分布式地址方案分配網絡地址,它設計為給每個潛在父節點提供一個有限的網絡地址子塊。當一個設備成功加入網絡后,其父節點給該節點自動分配一個唯一的網絡地址。
1.2 ZigBee路由算法
網絡層支持Cluster-Tree、AODVjr和Cluster-Tree+AODVjr算法(以下簡稱C+A算法)等多種路由算法,因此ZigBee網絡的路由協議兼具樹型網絡和網狀網絡的特性。
1.2.1 Cluster-Tree算法
樹路由機制是根據網絡地址和節點間的父子關系來實現路由的。如果目的地址設備不是該路由器的子孫,則直接將數據幀轉發給該路由器的父節點,其父節點將按照同樣的步驟進行路由。
1.2.2 AODVjr算法
AODVjr是對AODV算法的一種簡化改進,當源節點要尋找到達目的節點的路徑時,先向其鄰居節點組播RREQ分組。收到該分組的鄰居節點若具備路由能力,則建立指向源節點的反向路由回復,同時繼續向自己的鄰居節點組播該RREQ分組。若不具備路由能力,則通過Cluster-Tree路由算法將該分組交由其子孫節點或父節點進行轉發。當目的節點接收到此RREQ分組后,通過單播的方式向源節點回復RREP分組,同時,所有接收到此RREP分組的節點都將更新記錄自己的鄰居表,路由建立成功。實驗證明,AODVjr算法在保持了AODV原始功能的基礎上,控制開銷比AODV算法更小,因此更節能。
1.2.3 Cluster-Tree+AODVjr算法
在此算法中,網絡中的節點被分成了4類:Coordinator、RN+、RN-和RFD。其中RN+具有足夠的存儲空間和能力來進行AODVjr協議;而RN-則因存儲空間受限,不能夠進行AODVjr協議。Coordinator、RN+、RN-都具有路由功能,在通信時,如果目的節點不是鄰居節點,RN+將會啟動AODVjr,主動查找到達目地節點的最佳路徑;RN-節點只能通過樹路由算法來尋找下一跳的節點。仿真證明,采用Cluster-Tree和AODVjr相結合的路由協議在保證分組遞交率的情況下,具有比單獨使用其中一種路由協議更低的控制開銷和平均時延。
2 優化ZigBee路由算法
2.1 ZigBee路由算法問題
Cluster-Tree算法必須按照簇樹型結構地址分配方式來尋址,路由效率低,并且源節點到目的節點的傳輸路徑由于跳數過多,會影響網絡時延。
AODVjr算法在路由發現過程中,會產生分組大量泛洪問題。例如,當目的節點是源節點的子節點時,若采用AODVjr向鄰居節點發送RREQ分組,則向其父節點以上的節點發送RREQ分組是多余的;若目的節點不是源節點的子節點,則采用AODVjr向其子節點方向發送RREQ分組是多余的。假設網絡的最大深度是1,則數據幀可能被轉發的最長路徑是21,因此當跳數大于21時,就應停止對RREQ分組的繼續廣播,將其丟棄;假設從源節點到目的節點的最小跳數為M,當RREQ分組被轉發的次數大于M時,再繼續轉發是多余的。由于每一次AODVjr路由都要產生大量的RREQ泛洪,因此會使節點能量消耗嚴重。
評論