085412RREQRREP7963Sou rceSink广播式的发送过程10故障的节点RREQRREQRREQ从分组的公共(cmn)分组头中知道分组的类型从分组的AODV分组头中知道协议分组的类型处理数据分组AODV协议分组PT_AODVAODV数据分组处理路由请求分组RREQ处理Hello 分组HELLO处理路由错误分组RERR处理路由应答分组RREP路由请求分组路由应答分组路由错误分组Hello 分组处理路由请求分组该分组是否由自己产生回收分组是是否已经收到过该分组否回收分组是将收到的广播分组存入Broadcast ID Cache中否是否存在反向路由项新建反向路由项是原来的反向路由项是否需要更新否是更新反向路由项否节点是否有发往反向路由目的节点的数据分组,并且路由是否有效是将数据分组转发转发或处理路由请求分组否转发或处理路由请求分组节点本身是否是路由请求分组的目的地址向源节点发送路由应答分组,并且回收路由请求分组是否节点是否有到达目的节点的足够新的路由是否向源节点发送路由应答分组更新正向路由项和反向路由项的前驱列表向目的节点发送路由应答分组,并且回收路由请求分组继续转发路由请求分组处理路由应答分组查找是否存在正向路由项新建正向路由项是原来的正向路由项是否需要更新否是更新正向路由项否节点本身是否有发往正向路由目的节点的数据分组,并且路由是否有效是将数据分组转发否节点本身是否是路由应答分组的目的节点计算路由延迟是否转发或处理路由应答分组转发或处理路由应答分组节点本身是否是路由应答分组的目的地址回收路由应答分组是否检查节点是否有到达路由应答目的节点的有效路由是否按照反向路由转发路由应答分组更新正向路由的前驱列表丢弃路由应答分组对其中的每个不可达目的节点,是否有相应的受影响的正向路由项将相应的正向路由项置为无效,并且更新路由项的目的节点序列号优先队列中是否有发往不可达目的节点的数据分组是否是否丢弃优先队列中发往不可达目的节点的数据分组正向路由项的前驱列表是否为空将无效的正向路由项的目的节点加入新的路由错误分组的不可达目的节点列表是否清空正向路由项的前驱列表新的路由错误分组是否存在不可达目的节点是否广播本节点新产生的路由错误分组回收新产生的路由错误分组回收本节点原来收到的路由错误分组处理路由错误分组RERR处理Hello 分组发送Hello 分组的节点是否在本节点的邻居列表中更新该邻居节点的有效期将该节点加入本节点的邻居列表中是否回收Hello 分组