一種基于信標的地理信息位置路由協議的改進
因此我們可以在ITGR發現信標節點的路徑上逆向尋找第一個DISTANCE(X,Y)的峰值,并將其稱為新信標節點。當知道更新過信標節點后,下次S點再發送數據包到D時,直接將數據包發送給B2,然后由B2轉發給D點。從圖1中可見,未更新信標節點前,數據包發送路徑為實線代表的路徑,共16跳;更新過信標節點后,數據包發送的路徑為虛線所代表的路徑,共12跳。可見更新過信標節點后,可以節省路由跳數。采用ITGR算法,S點第二次向D點發送數據時,先將數據發送給間接目標節點B1點,但在使用貪婪算法向B1點發送數據的時候,到達Z點遇到空洞問題,此時Z點使用周邊模式向B1轉發數據包。而如果采用了更新信標算法,S點第二次向D點發送數據的時候直接將數據包發送給B2,此時,路由路徑不需要進入周邊算法模式,從S到B2和B2到D點都可以直接使用貪婪算法轉發。本文引用地址:http://www.104case.com/article/160706.htm
假設X為射線SB2上的一點,Y為射線SB1上的一點,Z為射線SP上的一點。則ITGR算法中目標節點陰影區域為YB2PZ,如圖2中的斜線區域;更新信標節點后,目標節點陰影區域為XB2PZ,如圖中的網狀區域。由圖2可見區域XB2PZ比區域YB2PZ更大,說明采用新信標節點可以擴大目標節點陰影區域范圍。
改進后的路由算法描述如下:源節點向目標節點發送數據時,按照ITGR算法將數據包轉發到B1點,在B1點按照ITGR算法數據發送模式由周邊算法模式恢復到貪婪算法模式中。我們在此加入LBD(landmark backward discovery)算法,即信標節點后向推移算法。根據ITGR算法,路由模式mode在B1點將變為GREEDY,此時節點將采用LBD算法轉發數據,算法偽代碼如表1所示。LBD首先判斷信標節點的上一跳節點是否比信標節點到目標節點的距離更遠。如果不是,則直接繼續按ITGR原來算法運行;如果是,則更改數據包模式并將數據包發送給上一跳節點,然后按照左手法則依次向回查找距離目標節點,直到查找到新的信標節點或者回傳數據包到局部最小節點。
評論