我是靠谱客的博主 忧伤热狗,最近开发中收集的这篇文章主要介绍无线传感器网络路由协议AODV(Ad hoc on-demand distance vector routing),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

AODV(Ad hoc on-demand distance vector routing)是一种源驱动路由协议。当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。RREQ报文中记录着发起节点和目标节点的网络层地址,邻近节点收到RREQ,首先判断目标节点是否为自己。如果是,则向发起节点发送RREP(路由回应);如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP,否则继续转发RREQ进行查找。

AODV协议能够确保找到的路径不含环路并且最短,当路由错误时还能动态适应以便寻找新的路由。

下面看图一步一步说明AODV协议

  • 需要建立到目的节点(dst)的路由时,源节点(src)广播路由请求(RREQ)给所有邻居结点。
  • 源节点等待路由回应(RREP)
这两步可以看下面三张图片:

    

路由请求(RREQ,Route Request)

路由请求包含序列号信息,每个结点生成自己的序列号。当邻接点发生变化(比如链路断开),序列号增加。对每一个路由,目的序列号(DSN)都会存储在路由表中。源节点将最近一次收到的目的结点序列号和源节点序列号一起放在RREQ中发送给目的节点。


RREQ不会收集沿途经过的节点的信息,它只会记录所经过的跳数。

而收到RREQ的节点会更新自己的路由表:

  • 记录向自己发来RREQ的邻居节点的地址(n1)。
  • 如果一会收到路由回应(RREP),那么就会把这个回应发给邻居结点n1。
  • 同时也会记录向自己发来RREP的那个邻居结点的地址,把这个地址当做去目的节点(dst)的下一跳地址
                           

                               

AODV的路由表中只会记录到达目的结点的下一跳地址。如下图



路由回应(RREP,Route Reply)

当一个含有到达目的节点路由表的节点收到路由请求后,首先判断RREQ中的目的节点序列号(DSN)和自己路由表中的DSN是否一样。如果RREQ中的DSN比较大,说明当前路右表不是很新,就继续广播请求。否则就返回RREP给源节点。

总的来说,路由的建立是在RREQ广播到目的节点和RREP返回到源节点这两个过程完成后建立的。下面几幅图描绘了这两个过程:

图例说明:白色空心箭头表示路由请求RREQ。绿色空心箭头表示路由回应RREP。实心箭头表示建立的路由。







===============================================================================================================


最后建立起了源节点到目的节点的路由,如下图:


最后

以上就是忧伤热狗为你收集整理的无线传感器网络路由协议AODV(Ad hoc on-demand distance vector routing)的全部内容,希望文章能够帮你解决无线传感器网络路由协议AODV(Ad hoc on-demand distance vector routing)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部