一種基于信標(biāo)的地理信息位置路由協(xié)議的改進(jìn)
因此我們可以在ITGR發(fā)現(xiàn)信標(biāo)節(jié)點(diǎn)的路徑上逆向?qū)ふ业谝粋€(gè)DISTANCE(X,Y)的峰值,并將其稱為新信標(biāo)節(jié)點(diǎn)。當(dāng)知道更新過(guò)信標(biāo)節(jié)點(diǎn)后,下次S點(diǎn)再發(fā)送數(shù)據(jù)包到D時(shí),直接將數(shù)據(jù)包發(fā)送給B2,然后由B2轉(zhuǎn)發(fā)給D點(diǎn)。從圖1中可見,未更新信標(biāo)節(jié)點(diǎn)前,數(shù)據(jù)包發(fā)送路徑為實(shí)線代表的路徑,共16跳;更新過(guò)信標(biāo)節(jié)點(diǎn)后,數(shù)據(jù)包發(fā)送的路徑為虛線所代表的路徑,共12跳??梢姼逻^(guò)信標(biāo)節(jié)點(diǎn)后,可以節(jié)省路由跳數(shù)。采用ITGR算法,S點(diǎn)第二次向D點(diǎn)發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)發(fā)送給間接目標(biāo)節(jié)點(diǎn)B1點(diǎn),但在使用貪婪算法向B1點(diǎn)發(fā)送數(shù)據(jù)的時(shí)候,到達(dá)Z點(diǎn)遇到空洞問(wèn)題,此時(shí)Z點(diǎn)使用周邊模式向B1轉(zhuǎn)發(fā)數(shù)據(jù)包。而如果采用了更新信標(biāo)算法,S點(diǎn)第二次向D點(diǎn)發(fā)送數(shù)據(jù)的時(shí)候直接將數(shù)據(jù)包發(fā)送給B2,此時(shí),路由路徑不需要進(jìn)入周邊算法模式,從S到B2和B2到D點(diǎn)都可以直接使用貪婪算法轉(zhuǎn)發(fā)。本文引用地址:http://m.butianyuan.cn/article/160706.htm
假設(shè)X為射線SB2上的一點(diǎn),Y為射線SB1上的一點(diǎn),Z為射線SP上的一點(diǎn)。則ITGR算法中目標(biāo)節(jié)點(diǎn)陰影區(qū)域?yàn)閅B2PZ,如圖2中的斜線區(qū)域;更新信標(biāo)節(jié)點(diǎn)后,目標(biāo)節(jié)點(diǎn)陰影區(qū)域?yàn)閄B2PZ,如圖中的網(wǎng)狀區(qū)域。由圖2可見區(qū)域XB2PZ比區(qū)域YB2PZ更大,說(shuō)明采用新信標(biāo)節(jié)點(diǎn)可以擴(kuò)大目標(biāo)節(jié)點(diǎn)陰影區(qū)域范圍。
改進(jìn)后的路由算法描述如下:源節(jié)點(diǎn)向目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),按照ITGR算法將數(shù)據(jù)包轉(zhuǎn)發(fā)到B1點(diǎn),在B1點(diǎn)按照ITGR算法數(shù)據(jù)發(fā)送模式由周邊算法模式恢復(fù)到貪婪算法模式中。我們?cè)诖思尤隠BD(landmark backward discovery)算法,即信標(biāo)節(jié)點(diǎn)后向推移算法。根據(jù)ITGR算法,路由模式mode在B1點(diǎn)將變?yōu)镚REEDY,此時(shí)節(jié)點(diǎn)將采用LBD算法轉(zhuǎn)發(fā)數(shù)據(jù),算法偽代碼如表1所示。LBD首先判斷信標(biāo)節(jié)點(diǎn)的上一跳節(jié)點(diǎn)是否比信標(biāo)節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的距離更遠(yuǎn)。如果不是,則直接繼續(xù)按ITGR原來(lái)算法運(yùn)行;如果是,則更改數(shù)據(jù)包模式并將數(shù)據(jù)包發(fā)送給上一跳節(jié)點(diǎn),然后按照左手法則依次向回查找距離目標(biāo)節(jié)點(diǎn),直到查找到新的信標(biāo)節(jié)點(diǎn)或者回傳數(shù)據(jù)包到局部最小節(jié)點(diǎn)。
評(píng)論