c)AODV路由表的管理
节点的路由中除了存储源和目的节点的序列号外,还存储了其他有用的信息,这些信息成为有关路由项的软状态。与反向路由相关的是路由请求定时器,这些定时器的目的是清除一定时间内没有使用的反向路由项。定时器的设置依赖于自组网的规模大小,与路由表相联系的另外一个重要的参数是路由缓存时间,即在超过这个时间之后,对应的路由表就变为无效。
此外,在每一个路由表中,还要记录本节点用于转发分组的活跃邻居。如果节点在最近一次活跃期间发起或者转发了到某个目的节点的分组,那么就可以称这个节点为活跃节点。这样,当到达某一个目的节点的链路有问题时,所有与这条链路有关的活跃节点都可以被通知到。一个路由表还有活跃邻居在使用,就可以认为是有效的。通过各个活跃路由项所建立的源节点到目的节点的路径,也就是一条活跃路径。路由表中的目的节点序列号,正如在DSDV路由协议中所使用的那样,可以在无序分组的传送和节点高度移动的极端条件下避免路由环路的产生。
移动节点为每一个相关的目的节点文护了一个路由表。每一个路由表包含以下一些信息:目的地址、下一跳地址、跳数、目的序列号及路由项的生存时间。路由表在每一次被用来传送一个分组时,它的生存时间都要重新开始计算。如果一个移动节点被提供了到达某一个目的节点的新路由,那么它就会把这个新路由的目的序列号与自己路由表中己有的目的序列号做比较,并将目的序列号大的作为到达目的节点的路由表。如果目的序列号相同,则采用到目的节点所经过的节点数(跳数)最少的那个路由。
d)AODV路由文护
AODV中周期性发送的Hello分组可以用来确保链路的对称性,并检测不能用的链路。一旦一个节点的下一跳节点变得不可达,这时它就要向利用该损坏链路的活跃上游节点发送未被请求的RREP(RERR)分组,这个RREP(RERR)分组带有一个新的序列号(即在目的序列号上加1),并将跳数值设置为二。收到这个RREP(RERR)分组的节点再依次将RREP(RERR)分组转发到它们各自的活跃邻居,这个过程持续到所有的与损坏链路有关的活跃节点都被通知到为止。源节点在收到断链的通知后,如果它还要与目的节点联系,它就需要再次发起新的路由发现过程。这时,它将会广播一个RREQ分组,这个RREQ分组中的目的序列号要在源节点已知的最新目的序列号之上加1,以确保那些还不知道目的节点最新位置的中间节点对这个RREQ分组做出响应,从而能保证建立一条新的、有效的路由。 基于网络编码的路由协议的实现与仿真(5):http://www.751com.cn/tongxin/lunwen_4858.html