您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > AODV协议操作过程
AODV协议徐炜AODV协议的三种基本报文三种基本报文,RREQ,RREP,RRERRREP报文格式RRER报文格式路由表结构1目的节点IP地址2目的节点序列号3目的序列号标记4下一条节点IP地址5跳数值6生存期值7状态标记1.AODV协议操作过程路由请求分组RREQ的转发过程类似于DSR协议。简单描述如下:收到“路由请求”分组的节点,在路由表中设置反向路径表项指向源节点。目的是使RREP分组能够返回源节点。当目标节点接到RREQ分组时,它就发送RREP分组。RREP分组沿着反向路径(RREQ分组经过时形成的路径的反方向)1.1路由发现1)RREQ分组的产生产生条件:结点在需要时(路径不存在或者无效),向其邻居广播RREQ分组用于路由发现。RREQ分组包括:信源地址、信源序列号、广播ID、信宿地址、信宿序列号、跳计数A:信源地址,广播ID唯一地标识了一个RREQ分组;B:信源序列号由信源结点维护,用于表示“到信源的反向路由的新旧”;C:信宿序列号表示信源可接受的“到信宿的前向路由”的新旧,等于过去接收到的有关信宿的最大序列号。因此,结点需要为每一个信宿维护一个信宿序列号。D:RREQ的跳计数=0;1.2对RREQ的处理(1)创建一个表项,先不分配有效序列号,用于记录反向路径;(2)如果在“路由发现定时”内已收到一个具有相同标识的RREQ分组,则抛弃该分组,不作任何处理;否则,更新该反向路由表项:A:信宿序列号=RREQ分组的信宿序列号;B:下一跳结点=广播该RREQ的邻居(从哪个邻居接受到的此RREQ分组);C:跳数=RREQ分组的“跳计数”字段值;D:设置表项的“过时定时器”;(3)如果满足如下条件,则结点产生“路由回答分组”RREP,并发送到信源;否则,转入到(4)进行处理;A:该结点就是信宿;B:结点的路由表中有到信宿的活动表项,且表项的序列号大于RREQ中的信宿序列号(新);(4)更新RREQ分组,并广播更新后的RREQ分组A:信宿序列号=本结点收到的该信宿相关的最大序列号;B:跳计数加1;2.1RREP的传播RREP的传播1)产生RREP的条件如上所述,RREP中的内容包括:跳计数、信宿序列号、信宿地址、信源地址、生存时间等。结点通过前面建立的反向路由反馈给源结点点,并且是以单播方式发送;2)转发RREP的中间结点f会更新路由表,记录转发路由的下游结点D、跳数、生存时间、目的序列号等内容,并根据先前记录的反向路由将RREP报文转发给上游结点e,直至源结点s;3)源结点s收到RREP报文后,就获得了到目的结点D的路由2.2RREP分组各字段设置如下(1)信宿结点产生的RREPA:RREQ的信宿序列号=信宿维护的当前序列号?是则信宿将自己维护的序列号加1否则不变;B:RREP中的信宿序列号=信宿维护的序列号;C:跳计数=0;D:设置定时器值;(2)中间结点产生的RREPA:本结点所获取的该信宿的最大序列号;B:跳计数=本结点到信宿的跳数(查相应表项可得到);C:更新本结点维护的“前向路由表项”的下一跳和“反向路由表项”的前一跳;2.3对RREP的处理结点对接收到的RREP分组作如下处理:(1)如果没有与RREP分组中的信源相匹配的表项,则先创建一个“前向路由表”空表项;(2)否则,满足如下条件下对已有表项进行更新:A:现有表项的信宿序列号RREP分组中的信宿序列号;B:现有的表项没有激活;C:信宿序列号相同,但RREP分组的“跳计数”值小于表项相对应的值,通过更新或创建,产生一个新的前向路径;(3)下一跳(forwardpointer)=广播RREP的邻居结点;(4)信宿序列号=RREP中的信宿序列号;(5)跳计数加1;对RREP的处理按照上述过程,任何转发RREP的结点,都记录了到信宿的下一跳,当RREP到达信源时,结点地址匹配,不再转发RREP,信源到信宿的前向路径已建立起来了。信源可以沿着这条前向路径进行分组传输。3.对链路断的修复AODV链路状态检测机制邻居节点周期性的互相广播“Hello”信息,用来保持联系。若在一段时间内,没有收到“Hello”信息,则认为链路断。AODV链路断的信息通告当节点X、Y之间的链路断,数据分组无法从源节点S传到目的节点D,节点X产生RERR(Routeerror)分组向源节点报告此情况。RERR分组通过广播方式传送,维护路由表的节点收到RERR分组后,更新路由表(将X、Y间的链路设为无效),并转发RERR分组。
本文标题:AODV协议操作过程
链接地址:https://www.777doc.com/doc-4342386 .html