一种基于信标的地理信息位置路由协议的改进
因此我们可以在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点都可以直接使用贪婪算法转发。本文引用地址:https://www.eepw.com.cn/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原来算法运行;如果是,则更改数据包模式并将数据包发送给上一跳节点,然后按照左手法则依次向回查找距离目标节点,直到查找到新的信标节点或者回传数据包到局部最小节点。
评论