在无线网络中,一些协议与命令与传统网络并不相同。所以我们要与之区分开来。尤其是在路由协议方面,更有着许多差异。例如我们接下来将要讲到的AODV协议。这个协议时在无线Ad hoc网络中所使用的路由选择协。它能够实现单播和多播路由。该协议是Ad Hoc网络中按需生成路由方式的典型协议。

AODV

无线自组网按需平面距离矢量路由协议(Ad hoc On-Demand Distance Vector Routing,AODV),是应用于无线网状网络(也称作无线Ad hoc网络)中进行路由选择的路由协议,AODV是由Nokia研究中心的Charles E.Perkins和加利福尼亚大学Santa Barbara的Elizabeth M.Belding-Roryer以及Cincinnati大学Samir R.Das等共同开发,已经被 IETF MANET工作组于2003年7月正式公布为自组网路由协议的RFc标准。AODV实质上就是DSR和DSDV的综合,它借用了DSR中路由发现和路由维护的基础程序,及DSDV的逐跳(Hop-by-HoP)路由、目的节点序列号和路由维护阶段的周期更新机制,以DSDV为基础,结合DSR中的按需路由思想并加以改进。AODV在每个中间节点隐式保存了路由请求和应答的结果,并利用扩展环搜索的办法来限制搜索发现过的目的节点的范围。

AODV支持组播功能,支持Qos,而且AODV中可以使用IP地址,实现同Internet连接,但是不支持单向信道。和DSDV保存完整的路由表不同的是,AODV通过建立基于按需路由来减少路由广播的次数,这是AODV对DSDV的重要改进。和DSR相比,AODV的好处在于源路由并不需要包括在每一个数据分组中,这样会使路由协议的开销有所降低。AODV是一个纯粹的按需路由系统,那些不在路径内的节点不保存路由信息,也不参与路由表的交换。

AODV协议可以实现在移动终端间动态的、自发的路由,使移动终端很快获得通向所需目的的路由,同时又不用维护当前没有使用的路由信息,并且还能很快对断链的拓扑变化做出反应。AODV的操作是无环路的,在避免了通常Bellman-ford算法的无穷计数问题的同时,还提供了很快的收敛速度。AODV的路由表中每个项都使用了目的序列号(Destination Sequence Number)。目的序列号是目的节点创建,并在发给发起节点的路由信息中使用的。使用目的序列号可以避免环路的发生。

实现技术

它是反应式路由协议,也就是说当向目的节点发送包时,源节点才在网络中发起路由查找过程,找到相应的路由。相反的,很多普通的因特网路由协议都是先验式的,也就是说它们查找路由是不依赖于路径上的节点是否要发包,而是每个节点维护一张包含到达其它节点的路由信息的路由表。节点间通过周期性的交换路由信息来不断更新自身的路由表,以便能够及时的反映网络拓扑结构和变化,以维护一致的、及时的、准确的路由信息。正如协议的名字所示,无线自组网按需平面距离矢量路由协议是一种平面距离矢量路由协议。

在AODV中,整个网络都是静止的除非有连接建立的需求。这就是说一个网络节点要建立连接时才广播一个连接建立的请求。其他的AODV协议节点转发这个请求消息,并记录源节点,和回到源节点的临时路由。当接收连接请求的节点知道到达目的节点的路由时,就把这个路由信息按照先前记录的回到源节点的临时路由发回源节点。于是源节点就开始使用这个经由其他节点并且有最短跳数的路由。 当链路断掉,路由错误就被回送给源节点,于是源节点就重新发起路由查找的过程。

大多数协议的复杂性在于为了保证网络性能而减少消息数量。例如,每个路由请求都会有一个序号,节点使用这个序号以避免它们重复转发这个路由请求。路由请求有一个“生存时间"数,这将减少他们被重传的次数。还有就是如果路由请求失败,其他的路由请求将会在先前的路由请求消息超时后的两倍的“生存时间"之后,才被发送。

相关的路由协议

AODV协议对在这方面有多种解决方法。还有一种路由协议是动态源路由协议(DSR),这个路由协议充分***化网络的通信量。另外就是优化的链路状态路由协议(OLSR)也是解决这方面问题。OLSR不断地收集节点之间能相互通信的数据,并对每个节点保持一个***化的路由表。所以连接可以很快的建立。但是OLSR是一个相对比较大而且复杂,它要求大型复杂的计算机、很大的内存和计算。同时频繁进行网络其他节点的发现过程是一个巨大的负担。对于其他可选择的方法可以参照无线自组网协议列表。

【责任编辑:佟媛微 TEL:(010)68476606】

点赞 0

aodv协议C语言代码,AODV协议入门必读相关推荐

  1. aodv协议C语言代码,AODV协议的运行方式

    这也是一个网管必须具备的知识.那么在前面的文章中,我们已经对AODV协议的基础内容作了介绍,在这里我们主要讲解一下它的运行方式. (a)AODV路由发现 AODV路由协议是一种典型的按需驱动路由协议, ...

  2. 回退n帧协议c语言代码,[计算机网络]Ch.3 数据链路层

    数据链路层 1.DLL层设计问题 1.1 DLL层·功能 数据链路层使用物理层提供的服务在通信信道上发送和接收比特. (1) 向网络层提供一个定义良好的接口 (2) 处理传输错误 (3) 调节数据流, ...

  3. dmx512协议c语言编程,DMX512协议+c程序代码.pdf

    DMX512 协议 1.协议简介 DMX 是Digital MultipleX 的缩写 ,意为多路数字传输.DMX512 控制协议 是美国舞台灯光协会(USITT)于1990 年发布的灯光控制器与灯具 ...

  4. smtp协议c语言,编写SMTP协议邮箱发信(QQ邮箱为例)

    语言:C/C++ 编程软件:VS2015 字符集:ASCII码 主要使用:Winsock套接字库 说明:这里拿QQ邮箱做为例子,其他126.163邮箱也一样可以,大同小异. 首先你要知道QQ提供的用于 ...

  5. c语言写modbus协议,C语言编写modbus协议

    modbus.c #include "main.h" //字地址0 - 255 (只取低8位) //位地址0 - 255 (只取低8位) /* CRC 高位字节值表*/ const ...

  6. OC语言Block和协议

    OC语言Block和协议 分类: OC基础2014-10-07 09:24 162人阅读 评论(0) 收藏 举报 OC Block OC协议 OC语言BLOCK和协议 一.BOLCK (一)简介  B ...

  7. 阿联酋航空与中国南方航空签订代码共享协议

    总部位于迪拜的国际航空公司阿联酋航空(IATA代码:EK)和总部位于广州的中国南方航空公司(IATA代码:CZ)近日正式签署了一份合作谅解备忘录,以达成全面互惠的代码共享合作协议,为从中国前往中东和非 ...

  8. 从入门到入土:基于C语言采用UDP协议实现远程控制|详细说明|利用流套接字实现一个简单的远程控制系统|代码展示

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  9. 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  10. 从入门到入土:基于C语言采用TCP协议实现远程控制|详细说明|利用流套接字实现一个简单的远程控制系统

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

最新文章

  1. hihoCoder太阁最新面经算法竞赛18
  2. 影响数千万APP的安卓APP“寄生兽”漏洞技术分析
  3. 微信和QQ消息撤回可见app(仅限安卓手机系统的童鞋哟,本人亲测有效)
  4. [Java]Object有哪些公用方法?
  5. 异或方式找到一组数组中不重复的两个数(同班同学方法)
  6. android外置传感器,Android中外接键盘的检测的实现
  7. sublime运行前自动保存代码(转)
  8. linux 进程 释放内存,Linux 释放内存方法和原理
  9. WeakReference与SoftReference
  10. CNN tensorflow 人脸识别
  11. Win10网络共享设置的方法步骤
  12. css blink不闪烁_使它闪烁HTML教程–如何使用Blink标签以及代码示例
  13. mysql5.1编译安装centos7_02: mysql 5.7 编译安装 (centos7)
  14. 您的浏览器由所属组织管理_FB频繁被封,关于多账号环境管理的知识你掌握了吗?...
  15. scala学习-scala中的元组Tuple概念
  16. PHP网页截图-网页快照实现
  17. php 余额冻结设计_加密货币交易所:微服务架构设计
  18. Java调用Javascript、Python算法总结
  19. AIRS Opencat机器猫
  20. 【Java项目】社区论坛项目

热门文章

  1. WRF,WPS 安装记录
  2. ISSCC2021 基于SRAM的存内计算16.3阅读记录
  3. EN300328测试软件,EN300328是做什么测试
  4. 了解数据库(包括数据库发展史、分类、著名人物、主流数据库、关系与非关系型数据库)
  5. python安装pyaudio_关于python:PyAudio不会安装
  6. android 圆形进度条样式,Android编程之ProgressBar圆形进度条颜色设置方法
  7. Sublime插件 FileHeader 的安装、设置、使用
  8. MacBook Pro 进入屏保 发热严重
  9. linux服务网卡速率查看,linux 下查看网卡工作速率
  10. 《统计学》第八版贾俊平第十四章指数知识点总结及课后习题答案