2 RREP 协议帧格式
RREP 路由应答协议帧如表3 所示。
4 MSAODV 路由协议的操作
由于MSAODV 路由协议是对AODV 协议的改进演化,所以MSAODV 路由协议的操作 与AODV 路由协议的操作大同小异,为了清晰起见,对MSAODV 协议的操作做一详细的介绍 还是有必要的。
4.1 产生路由请求
无线网络中某个节点需要和网络中的另一个节点通信时,他首先会查找自己的路由表,以 确定是否有通往该目的节点的有效路由,如果有的话,从对应的目的节点路由表项中取出下一 跳节点地址,然后构造数据包并把该数据包发往下一节点,如果不存在通往目的节点的路由, 那么该节点就要发起一次路由请求。
4.2 处理和转发路由请求
处理和转发路由请求是针对源节点和目的节点之间的中间节点而言。这些中间节点可能 不止一个,在他们收到源节点广播的RREQ 路由请求帧之后,必需处理和转发该路由请求帧。
在某个中间节点接收到源节点广播或者由其他节点转发的RREQ 请求帧后,他首先会判 定该RREQ 请求帧是否己经被成功接收过,判断的依据就是源节点的IP 地址和广播ID 号,如 果发现由源节点和广播ID 唯一标志的RREQ 请求帧是新的,也就是没收到过,就会根据此 RREQ 请求帧更新自己路由表中对应的项。很显然,该路由表项的目的节点IP 字段就是是源 节点IP 地址,下一跳IP 地址就是发送此RREQ 请求帧的节点IP 地址,有可能是源节点也有可 能是另一个中间节点。接下来此中间节点判断该RREQ 请求帧的目的IP 是不是就是自己, 如果是就回送一个RREP 回应帧,不是就转发该RREQ 请求帧。
4.3 产生路由应答
RREQ 经过中间节点的转发到达目的节点或者是直接到达目的节点后,目的节点要进行 相应的处理。
目的节点收到 RREQ 请求包,首先会判断是否已经收到过此请求包,如果没有收到过则更 新自己相应的路由表项,目的节点把该路由表项的目的IP 更新为源节点的IP 地址,下一跳IP 为发给他RR 卫Q 请求帧的节点IP,目的节点序列号填上源节点的序列号,该序列号在RREQ 请求帧里,跳数直接从RREQ 请求帧里拷贝。在确认请求的节点就是自己后,目的节点要给源 节点发送一个RREP 应答帧,接下来目的节点构造一个RREP 应答帧并正确初始化该帧。类 型字段为2,表示该帧是RREP 应答帧。跳数字段为0,因为是目的节点发起的RREP 应答帧。 目的节点产生一个RREP 应答包之前,必需更新自己的序列号,更新值为当前序列号与RREQ 请求包中的目的序列号两者中的最大值,目的序列号字段被初始化为这个最大值。源IP 地址 指的是发起RREQ 请求帧的源节点的IP 地址,而不是指目的节点的IP 地址,同样的,目的IP 地址就是目的节点的IP 地址,也就是发起RREP 应答帧的节点IP 地址。
在目的节点构造好 RREP 回应帧后,就要把该帧以单播的形式沿着反向路由传送,他的下 一跳节点IP 地址是发给他RREQ 请求帧的节点地址,可能是某个中间节点,也可能是源节点。 一切准备就绪,目的节点按照退避算法发送该帧。
4.4 接收和转发路由应答
由于无线网络的特点,尽管目的节点是以单播的形式向源节点回送RREP 回应帧,但是网 络中的很多节点也能接收到该帧,当然,这些节点只是简单的丢弃该帧,只有反向路由上的节 点才会接收该RREP 回应帧。反向路由上的节点会沿着反向路由顺利的把RREP 回应帧传给 源节点,同时他们也根据此RREP 回应帧建立了前向路由。
该节点下面要完成的工作就是把 该RREP 回应帧转发出去。他要知道下一跳节点的IP 地址,以RREP 回应帧中的源节点IP 地址为关键字查找路由表,得到下一跳节点的IP,这个表项是在建立反向路由时建立或更新 的。该中间节点在完成上面的步骤后,以退避算法转发该RREP 回应帧。与RREQ 请求帧的 转发不同,R.REP 回应帧的转发是单播的,他不会像R.REQ 请求帧那样可能被转发多次,所以 R.REP 回应帧的字段里不存在广播ID。
4.5 新节点加入
无线传感器网络中的节点在开机或重启之后,会向网络广播一个RESET 消息,网络中的 其他节点收到此RESET 消息后会转发该帧,最后主节点收到该帧。新节点在RESET 消息帧 里携带自己的IP 地址,这样当主节点收到该帧后就可以知道是哪个节点重启。 收到 RESET 消息帧的其他节点首先查找自己的路由表看是否有主节点的IP 地址,如果 有就以单播的形式发送该帧,反之则继续广播此RESET 消息帧。
每个节点都要保存上一次他 收到的RESET 消息帧中的源节点IP 地址,下次再收到RESET 消息帧首先要比较源IP 地址 是否和保存值相同,相同就不再转发该帧,在经过一段时间后,将保存值清零,这样就避免了重 复转发同一个RESET 消息帧,又避免了不再转发下次的RESET 消息帧。
4.6 其他操作
除了前文描述的产生路由请求、处理和转发路由请求、产生路由应答、接收和转发路由应答、新节点加入等主要操作外,MSAODV 路由算法余下的操作可以参考第二章介绍的 AODV 路由算法。
5 本文作者创新点
AODV 路由算法应用在无线传感器网络中有一定的局限性,不能很好得适合无线传感器 网络的体系结构。以无线传感器网络与传统移动无线网着重点不同为依据,本文提出了适合 无线传感器网络的路由算法MSAODV,并详细叙述分析了MSAODV 路由算法。