ZigBee網絡Cluster-Tree優化路由算法研究
鑒于以上問題,本文提出一種基于C+A算法的優化路由算法,用以解決Cluster-Tree路由的低效率和AODVjr路由的泛洪嚴重及能量消耗問題。
2.2 優化路由算法思想
在一個傳感器網絡中,傳感節點只能和與它相鄰的,并且在它的射頻傳輸范圍之內的節點直接通信。樹型網絡中每個節點的鄰居表中都包含有其射頻覆蓋范圍內各個鄰居節點的相關信息。在優化路由算法中利用鄰居表中記錄的有效信息,可以使源節點發送給目的節點的數據幀經過一跳到達。
在AODVjr路由發現過程中,為了避免RREQ分組無選擇性的大量泛洪,在優化路由算法中依據不同的情況,添加對RREQ分組廣播跳數的限制條件,使大于限制條件的多余路由不能啟用。這樣能有效地減少RREQ分組泛洪次數,縮小RREQ廣播范圍,限制RREQ分組傳播方向,從而降低網絡的能量消耗。
2.3 優化路由算法設計
優化路由算法的具體步驟如下:
①對樹型網絡進行分區,并設定輔助變量number的初始值為1(number值代表分區次數)。分區原則如下:以協調器為根節點,將根節點的每一個子樹看作一個區域,并為其編號。記錄每一個區域中的最大地址Amax和最小地址Amin。由樹地址分配機制可以得出,在同一區域中的節點地址An均滿足Amin≤An≤Amax,即此區域的地址范圍是[Amin,Amax],并且每一個區域的地址范圍之間是不相交關系,即一個確定的地址在且僅在一個區域內。
②判斷源節點的類型。若為RFD則直接將數據幀轉發給其父節點;若為FFD則判斷目的節點是否為源節點的子節點。若是,則向下啟動AODVjr路由轉發數據幀,并將RREQ分組的最大廣播跳數限制為|Dd-Ds|(Ds為源節點的網絡深度,Dd為目的節點的網絡深度),超出范圍則丟棄;若不是,則進行第下一步。
③源節點向鄰居節點發送RREQ分組,鄰居節點判斷自身地址是否與目的地址相等。如果相等,則向上層傳遞,由其上層對數據幀進行解析,并將RREQ分組的最大廣播跳數限制為1,超出范圍則丟棄。如果不等,則進行第④步。
④判斷目的地址在哪個區域中。若目的節點和源節點在同一區域中,進行第⑥步;若不在同一區域中,則進行第⑤步。
⑤判斷源節點的鄰居節點中是否有和目的節點在同一區域的節點。如果有,將數據幀轉發給該節點,并進行第⑥步;如果沒有,則進行第⑦步。
⑥number值加1。將目的節點所在區域看作一個樹型網絡,將其最小地址節點看作該樹的根節點,并按照第①步的分區原則將其進行分區。判斷目的節點和當前節點是否在同一區域中。若是,重復第⑥步;若不是,則進行第⑦步。
⑦將數據幀經由樹路由轉發到第number次分組的根節點,然后啟動AODVjr路由,由此根節點將RREQ分組廣播至目的節點的相應分組內,尋找目的節點,并將RREQ分組的最大廣播跳數限制為|Dd-number+1|,超出范圍則丟棄。
目的節點接收到RREQ分組后,將向尋找路由的源節點回復一個RREP分組,其傳送路徑為路由建立過程的反向路由。所有接收到RREP分組的節點將此路由信息替換并且記錄,正向路由從源節點到目標節點建立成功。優化路由算法的流程圖如圖1所示。

具體實現過程舉例如下:假設一樹型網絡,網絡參數Cm=4,Lm=4,Rm=3,依據前面的網絡地址分配方式給網絡中各節點分配相應地址,選定源節點為37,在其射頻覆蓋范圍內的鄰居節點是25、36和90。具體網絡節點分布圖如圖2所示。
評論