DV路由协议分析研究
精选文档
TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-
西 南 交 通 大 学 本科毕业设计(论文)
AD HOC网络中AODV路由协议分析 THE ANALYSIS OF AODV ROUTING PROTOCOL IN AD HOC NETWORK
年 级 2008级 学 号 姓 名 专 业 通信工程 指导老师
2012年 6 月
承 诺
本人郑重承诺:所呈交的设计(论文)是本人在导师的指导下独立进行设计(研究)所取得的成果,除文中特别加以标注引用的内容外,本文不包含任何其他个人或集体已经发表或撰写的设计(研究)成果。对本设计(研究)做出贡献的个人和集体,均已在文中以明确方式标明。如被发现设计(论文)中存在抄袭、造假等学术不端行为,本人愿承担一切后果。
学生签名:
年 月 日
院 系 计算机与通信工程系 专 业 通信工程 年 级 2008级 姓 名
题 目 Ad hoc网络中AODV路由协议分析 指导教师
评 语
指导教师 (签章)
评 阅 人
评 语
评 阅 人 (签章)
成 绩
答辩委员会主任 (签章)
年 月 日
毕业设计(论文)任务书
班 级 学生姓名 学 号
发题日期:2012年 2 月 28 日 完成日期:2012年6月15日 题 目 Ad hoc网络中AODV路由协议分析 1、本论文的目的、意义
自从 1997 年 协议正式发布以来,无线局域网得到了快速发展,但 协议不具有转发功能,组成的网络规模小,传输距离近,需要铺设较多的 AP 点。而无线自组网则可以弥补这个缺点。而近几年,由于军用和民用需求的增加,大大促进了无线自组网的研究。无线自组网现在广泛应用于自然灾害抢险、科学考察、以及在战场等通信场合。
无线自组网研究的一个重要方面就是无线自组网的路由。移动Ad hoc网络中的拓扑结构始终是动态变化的,这导致路由成为Ad hoc网络设计中的根本问题,路由算法的研究也始终是移动Ad hoc网络研究中的一个至关重要的研究课题。 本课题任务是在 协议的基础上,在 Linux/Windows操作系统上实现 AODV(Ad hoc On-Demand Distance Vector)路由算法仿真。课题具有军民两用的特点,既能适
合军队的无线电台组网,又能扩展 协议的应用,具有广泛的应用前景。 2、学生应完成的任务
(1)完成资料收集、阅读等工作 (2)AODV 路由协议工作原理 (3)制定仿真方案 (4)分析仿真结果 (5)撰写毕业设计论文 3、论文各部分内容及时间分配:(共 16 周) 第一部分 第二部分 第三部分 第四部分 第五部分 完成选题、下达任务书 ( 1 周) 完成资料收集、阅读等工作 ( 1 周) 研究AODV 路由协议工作原理 制定仿真方案、分析仿真结果 ( 5 周)
( 5 周)
撰写毕业设计论文 ( 3 周) 评阅及答辩 ( 1 周)
备 注 指导教师: 年 月 日 审 批 人: 年 月 日
摘 要
自1997年协议正式发布以来,无线局域网得到了快速发展,但协议不具有转发功能,组成的网络规模小,传输距离近,需要铺设较多无线接入点,而Ad Hoc网络则可以弥补这些缺点。
Ad Hoc网络的路由协议作为影响网络性能的一个重要因素,是确保Ad Hoc网络正确运行的关键。由于传统的路由协议己无法满足移动Ad Hoc网络的要求,因此更适合移动节点特性的路由协议不断的被讨论。AODV路由协议作为Ad Hoc网络中代表性的按需路由协议,它既能适合军队的无线电台组网,又能扩展无线局域网的应用,具有军民两用的特点,具有广泛的应用前景。
本文首先简要介绍了移动 Ad hoc 网络的现状和发展前景,Ad hoc 网络的工作原理和特性,以及Ad hoc 网络的路由协议分析比较。然后,重点分析研究了AODV路由协议的报文格式和工作原理。在理论分析AODV路由协议的基础上,采用网络模拟器NS2实现 AODV 路由算法,通过对数据包投递率、端到端的平均延迟、归一化路由协议开销和平均跳数这四个方面进行了性能分析,得出AODV路由协议适用于规模较大的网络,并且在发包率较高的情况下性能表现良好,但是随着网络节点移动速度提升协议的通信质量将降低。
关键词 Ad hoc;AODV路由协议;性能分析;NS2仿真
Abstract
protocol has been officially released in 1997, the wireless LAN has developed rapidly .However protocol do not have a forwarding function. As a consequence, only a network of small scale can be constructed, and the transmission distance is not long enough. And relatively more Access Point are needed to deploy. But, Ad Hoc Networks compensate for these shortcomings.
However, as an important factor to affect the network performance, Ad Hoc network routing protocols are critical to ensure the correct operation of the Ad Hoc network.
However, Traditional routing protocols are unable to meet the requirements of mobile Ad Hoc networks, so routing protocols that are more suitable for the mobile node
characteristics are constantly discussed by people. AODV routing protocol is a typical on-demanded protocol in Ad Hoc Networks, it not only suitable for the armed forces radio network, but also extended the application of wireless LAN, it have dual-use features and broad application prospects.
This paper briefly describes the status and development prospects of the mobile Ad hoc networks, the principles and features of the Ad hoc network, as well as the Ad hoc network routing protocol analysis and comparison. Then, we spend most of the works in the study and analysis of the packets format as well as the working principle of AODV routing protocol. On the basis of the theoretical analysis of the AODV routing protocol by NS2, a network simulator is used for AODV routing algorithm. Through performance analysis on packet delivery ratio, average end-to-end delay, normalized routing overhead and average hop counts. The simulation results showed that the AODV routing protocol is applicable to the larger the network, and performed well in the case of high packet rate, but network nodes move too fast will reduce the communication quality agreement. Key words Ad hoc; AODV routing protocol; Performance Analysis; NS2 simulation
目 录
第1章 Ad Hoc网络
1.1 无线网络通信技术简介
随着科技的发展,无线网络通信得到了迅速的发展,以满足了人们生活和生产的需求,同时人们对摆脱有线网络束缚的要求也越来越强。在无线通信中,基于基础设施的无线通信技术越来越成熟,如基于基站和移动交换中心的蜂窝移动通信技术、基于有限骨干网的无线局域网(如IEEE 系列协议)等通信技术,在通信质量和通信范围上均达到商用标准。此外,GPS作为一个由卫星收发数据的通信技术,但其单向通信限制了在日常通信中的语音传输等。在某些特定场合和环境(如抗灾救险、偏远山区、沙漠和海洋科考探险等)中,基于基础设施的无线通信将无法使用,GPS能帮助人们定位,却不能在相互之间以及和外界进行有效地双向通信,因而无线自组网通信成为最适合的通信方式。无线自组网通信技术包含了蓝牙(Bluetooth)技术、移动Ad hoc(Ad Hoc是一个拉丁词汇,意思是即兴、临时)网络技术等。
蓝牙(Bluetooth)是由爱立信、英特尔、诺基亚、IBM和东芝等公司1998年推出的一种短距离无线通信技术,用于在较小的范围内通过无线连接的方式实现固定设备或移动设备之间实现灵活、安全、低功耗、低成本的语音和数据通信。蓝牙技术的连接方式无须任何复杂软件支持,其软件体系是一个独立的操作系统,不与任何操作系统捆绑。在组网方式上,通过蓝牙设备中的主设备与从设备可以形成一点到多点的连接,即在主设备周围组成一个微微网,网内任何从设备都可与主设备通信。但是一个主设备同时最多只能与网内的7个从设备相连接进行通信,在一个有效区域内多个微微网通过节点桥接构成散射网。但蓝牙设备相互之间的通信距离在
10米左右,距离稍远时无法实现有效通信。蓝牙技术常应用于应用到无线传感器网络,同时它也可广泛应用于无线短距离通信设备中,例如打印机、蓝牙耳机、医疗健身、智能建筑等无线短距离通信设备。
为了能够在没有固定基站或者接入点无法正常工作的环境中进行实时有效通信,一种能够临时快速自动组网的移动通信技术——Ad Hoc网络技术应运而生。
1.2 Ad Hoc网络的发展
Ad Hoc网络的前身是分组无线网PRNET(Packet Radio Network),对分组无线网的研究源于军事通信的需要。早在1972年,美国DARPA(Defense Advanced Research Project Agency)启动了分组无线网PRNET(Packet Radio NETwork)项目,研究分组无线网在战场环境下数据通信中的应用。项目完成之后,DAPRA又在1993年启动了高残存性自适应网络SURAN(SURvivable Adaptive Network)项目。研究如何将分组无线网PRNET的成果加以扩展,以支持更大规模的网络,还要开发能够适应战场快速变化环境下的自适应网络协议。1994年,DARPA又启动了全球移动信息系统GloMo(Globle Mobile Information Systems)项目。在分组无线网已有成果的基础上对能够满足军事应用需要的、可快速展开、高抗毁性的移动信息系统进行全面深入的研究,并一直持续至今。1997年成立的标准委员会采用了“Ad hoc网络”一词来描述这种特殊的对等式无线移动网络[1]。
由于无线通信和终端技术的不断发展,Ad Hoc网络在民用环境下也得到了快速发展,例如在没有有线基础设施的地区进行临时通信时,可以很方便地通过搭建Ad Hoc网络实现。
1.3 Ad Hoc网络工作原理
Ad Hoc网络是由一组带有无线收发装置的自主的无线节点或终端通过相互合作形成的网络,可以独立于固定的基础设施,是一种自创造、自组织和自管理的网络。Ad Hoc网络不需要有线基础设备的支持,通过移动节点自由的组网实现通信。
在Ad Hoc网络中,网络中所有节点的地位平等,均具有普通移动终端所需的功能,而且具有报文转发能力,无需设置控制节点。网络中节点间的通信可直接通信,也可以经过中间节点的转发完成,因此Ad Hoc网络的节点间通信可能经过多跳。当两个移动节点在彼此的通信覆盖范围内时,它们可以直接通信。但是由于移动节点的通信覆盖范围有限,如果两个相距较远的节点要进行通信,则需要通过它们之间的移动节点的转发才能实现。因此在Ad Hoc网络中,节点同时还是路由器,担负着寻找路由和转发报文的工作。在Ad Hoc网络中,每个节点的通信范围有限,因此路由一般都由多跳组成,数据通过多个节点的转发才能到达目的地,故Ad Hoc网络也被称为多跳无线网络[2]。
Ad Hoc网络可以看作是移动通信和计算机网络的交叉。在Ad Hoc网络中,使用计算机网络的分组交换机制,而不是电路交换机制。通信的节点一般是便携式计算机、个人数字助理(PDA)等移动终端设备。Ad Hoc网络不同于目前因特网环境中的移动IP网络。在移动IP网络中,移动节点可以通过固定有线网络、无线链路和拨号线路等方式接入网络,而在Ad Hoc网络中只存在无线链路一种连接方式。在移动IP网络中,移动节点通过相邻的基站等有线设施的支持才能通信,使用因特网的传统路由协议,而Ad Hoc网络没有这些设施的支持,网络节点间可直接通信。此外,在移动IP网络中移动节点不具备路由功能,只是一个普通的通信终端,当移动节点从一个区移动到另一个区时并不改变网络拓扑结构。而Ad Hoc网络中移动节点的移动将会导致拓扑结构的改变,当移动节点移动时(进入或者退出网络),Ad Hoc
网络节点检测其所涉及到的路由的更改,将会发出命令或请求(如RREQ)重新建立可用路由。
1.4 Ad Hoc网络特性及应用
1.4.1 Ad Hoc 网络特性
Ad Hoc网络具有常规移动蜂窝通信网和无线局域网所难以达到的网络特性,它所特有的网络特性如下[3]:
1. 自组织性:Ad Hoc 网络可以在任何时刻任何地点构建,而不需现有的信息基础网络设施的支持。节点可以通过自身分层协议和分布式算法协调各自行为,快速地组建一个独立的网络。
2. 分布式控制:Ad Hoc 网络没有严格的控制中心,用户节点之间的地位是平等的,路由功能集成到移动用户节点中,不存在类似基站的集中网络中心控制点。节点可以随时加人和离开网络,任何节点的故障都不会影响整个网络的运行,网络具有很强的抗毁性和鲁棒性。而常规的通信网络受基站、控制中心、路由器等束缚,用户之间地位不平等,影响网络的抗毁性和鲁棒性。
3. 多跳路由:当节点要与其覆盖范围外的节点进行通信时,需要中间节点的多跳转发。与固定网络的多跳转发不同,Ad Hoc 网络中的多跳是由普通的网络节点完成的,而不是由专用的路由设备完成的。
4. 动态网络拓扑结构:Ad Hoc网络中,用户终端的移动具有很大的随机性,加上无线发射装置发送功率的变化、无线信道间的互相干扰以及地形等综合因素的影响,网络的拓扑结构可能随时发生改变。
5. 能量限制:由于Ad hoc网络中节点均为移动节点,依靠电池供电,限制了其能量供给使用。
6. 安全性:Ad hoc网络作为无线网络,采用的无线信道、分布控制,其安全性相对有线网络差,更易受到窃听、电子欺骗和拒绝服务等攻击。
1.4.2 Ad Hoc 网络应用
Ad hoc网络特殊的网络特性决定了其应用范围和有线网络的有着较大区别。它常被用于无法或者不便铺设网络设施的场合、需要快速自动组网的场合等。这些特殊的环境可能在军事环境,也存在于民用或者商业应用上,具体的应用如下:
1. 移动会议:在室外临时环境中,工作团体的所有成员可以通过Ad Hoc组网方式组成一个临时网络来协同完成一项大的任务,或协同完成某个计算任务。在室内办公环境中,办公人员携带的包含收藏器的PDA可以通过Ad Hoc无线方式自动从台式机上下载电子邮件,更新工作日程表等。
2. 家庭网络:通过移动联网的方式把办公室的办公环境延伸到家庭,必要时在家庭办公。或者利用我们随身携带的个人无线设备与装备了收发器的家庭电器通信,自动完成开锁、开灯、打开娱乐设备、调节空调等操作。
3. 紧急服务:由于停电或其他灾害出现,网络基础设施遭到破坏时,组建一个网络帮助紧急救援人员完成必要的通信工作。
4. 传感器网络:最近人们开始关注大量分布的传感器协调工作问题。传感器可以工作在危险的环境(如化学有害物质泄漏现场),通过在传感器上装备位置指示器、收发器等,将传感器所在现场的信息传送到危险现场以外,避免救援人员进入现场,收集和辨别事故信息。
5. 军事无线通信:军事应用是Ad Hoc网络技术的主要应用领域。因其特有的无需架设网络设施、可快速展开、抗毁性强等特点,它是数字化战场通信的首选技术。Ad Hoc网络技术己经成为美军战术互联网的核心技术。
6. 其他商业应用:如未来装备收发设备的机场预约和登机系统可以自动地与乘客携带的个人无线设备通信,完成目前的换登机牌等手续。
第2章 AODV路由协议
路由协议作为影响网络性能的一个重要因素,是确保Ad Hoc网络正确运行的关键。路由协议的主要作用是迅速准确地计算到达目的节点的路由,同时通过监控网络拓扑变化来更新和维护路由。Ad Hoc网络中网络的拓扑结构是动态变化的,路由协议的周期性广播会涉及大量带宽和能量,对系统的性能起到决定性因素,因此,对路由协议的深入了解和分析至关重要。
2.1 Ad Hoc 路由协议介绍
Ad Hoc网络是由一系列移动节点组成的自组织网络,不依赖任何已有的网络基础设施或集中的管理控制中心。在移动自组网的研究和开发过程中,涉及到路由协议、功率控制、数据安全等关键技术,其中路由协议是人们研究的重点,并提出了一系列路由协议如 DSR,DSDV,AODV,TORA 等。通常将路由协议主要分为两种类型:表驱动路由协议和按需路由协议[4],[5]。
1. 表驱动路由协议
表驱动路由协议是网络不管是否需要通信时都建立从一个节点到网络中所有其它节点的路由,并以路由表的形式存储在节点中,当需要发送报文时则马上能找到所需路由并加以使用;当网络发生变化时,协议通过广播将包含路由变化的更新信息(即报文),从而保持路由表信息与网络拓扑结果的变化之间的一致性。典型的表驱动路由协议有DSDV(destination-sequenced distance-vector routing)、
CGSR(cluster head gateway switch routing)和WRP(wireless routing protocol)等。表驱
动路由协议虽然可以很快地获得到其它所有节点的路由,但是不可避免地存在信号拥塞和能量过度消耗的问题,在使用中规模和续航使用时间都存在不足。
2. 按需路由协议
按需路由协议和表驱动路由协议相反,只有在需要通信时才建立连接,即有报文需要发送时才开始寻找路由,找到路由后开始发送报文。典型的按需路由协议有AODV(Ad hoc on-demand vector touting)、DSR(dynamic source routing)、
TORA(Temporarily Ordered Routing Algorithm)等。当源节点需要到达某一目的节点的路由时,它在网络中发起一个路由发现过程,路由建立之后,会有一个路由维护程序进行维护,直到每条路径都断裂或者不需要路由为止。按需路由协议不像表驱动路由协议那样实时地维持每个节点的路由信息,因此降低了对网络带宽和能量的消耗。但是在发送数据分组时,如果没有去往目的节点的路由,数据分组需要等待因路由发现而引起时延。
通过对国内外有关方面研究的学习了解发现,在各种不同的情况下比较时,如数据源数、节点的移动性、自组织网络模型以及网络负载等等,按需路由协议要比表驱动路由协议在性能上有着明显的优势。本文就按需路由协议中的AODV路由协议进行学习,并搭建仿真平台,对AODV路由协议进行仿真分析。
2.2 AODV路由协议简介
AODV路由协议中文全称为无线自组网按需平面距离矢量路由协议(Ad hoc On-Demand Distance Vector Routing),该协议是在DSDV协议基础上结合类似DSR中的按需路由机制加以改进后提出的。AODV路由协议由Nokia研究中心的Charles E .Perkins和加利福尼亚大学Santa Barbara的Elizabeth M .Belding-Roryer以及
Cincinnati大学Samir R .Das等共同开发,已经被 IETF MANET工作组于2003年7月正式公布为自组网路由协议的RFC标准[6]
AODV路由协议采用了路由发现和路由维护机制,又利用逐跳路由、顺序编号和路由维持阶段的周期性更新,还加入了对组播路由QOS(Quality of Service)的支持。AODV路由协议其最显着的特点是为路由表中每个项都使用了目的序列号,因而还可以避免环路的发生,并且很容易编程实现。AODV路由协议是按需式路由协议(又称反应式路由协议)[7]。在源节点需要通信时才在网络中发送路由分组,而不会周期性地交互路由信息以得到所有其它主机的路由;同时它具有距离向量路由协议的一些特点,即各节点路由表只维护本节点到其他节点的路由,而无须掌握全网拓扑结构。
AODV协议工作过程可简单的看作是源节点发起路由请求RREQ,在查找并建立路由后进行通信,并通过使用一个或多个可用连接或者网络层的机制实现连接的保持,在通信完成后断开连接并释放带宽。AODV路由协议在节点移动而导致路由拓扑结果变化时,将会发出路由错误请求来删除错误路由,寻找合适畅通的路由,从而保证了路由信息和网络拓扑结构保持一致。
2.3 AODV路由协议路由表
AODV是一个路由协议,它的工作就是管理路由表。即使是短期的路由,也必须保留它在路由表里的信息,比如为RREQ临时存储的返回路径。AODV路由协议的每个路由表项将会包含下列的域:
1. 目的节点IP地址:每个表项都具有不同的目的路由器IP地址,以此作为区别和查找网络路由的关键字;
2. 目的节点序列号:可防止网络产生环路,只有当收到的RREP和RREQ中传送的序列号比本节点对应路由表项中目的序列号大时才能被接收并用于更新路由表项;
3. 目的节点序列号是否正确的标志:显示路由表项中目的序列号是否有效; 4. 网络接口;
5. 下一跳:到达目的节点的路径上的下一跳节点的地址; 6. 跳数:从本节点到达目的路由器所需要的跳数; 7. 生存时间:路由过期或应当删除的时间;
8. 先驱表:先驱链表指针指向使用此路由表项的所有可能的邻居节点地址; 9. 其他状态和路由标志:如路由有效、无效、可修复、正在修复。
当一个节点从它的邻居接收到一条AODV控制包时,以及为某个特定的目的节点或目的子网创建或更新它的路由表的时候,它就会去检查它的路由表里是否有一个表项对应到那个目的。当没有相关的表项时,新的表项就会被创建。
路由在新序列号满足以下三种条件时更新: 1. 新序列号要比路由表里原来的原目的序列号大;
2. 新旧序列号相等,但是新信息里包含的跳数加一比原来的跳数小; 3. 新序列号是未知的。
路由表里的生存期从路由消息里得到,或设置为ACTIVE_ROUTE_TIMEOUT毫秒。有效路由可以用作发送数据包,并且能满足其他的路由请求。当一条路由被用来转发一个数据包时,此路由的源节点、目的节点和下一跳节点的路由生存期都会被更新,新的值不小于当前时间加上ACTIVE_ROUTE_TIMEOUT(有效路由超时)。由于每对发起节点和目的节点之间的路由应当是对称的,节点上一跳路由的
生存期也会被更新为不小于当前时间加上ACTIVE_ROUTE_TIMEOUT。不管目的地址是单个的节点还是一个子网,每当路由被用到的时候,路由生存期都会被更新。
节点将相邻节点的连接状态保存在活动的路由表里,对每个放在路由表项里的有效路由,节点还会维护一张先驱表,这些先驱可能会沿着这条路由转发数据包。路由表项里的先驱列表包含的是都是本节点的相邻节点,路由回复信息将会被发送到这些节点,指出了不能再到达的目的节点。先驱表里的信息可以很轻易的从回传RREP消息的过程中获得。当检测到下一跳断开时,这些先驱就会从本节点收到通知(RERR消息)。
2.4 AODV路由协议分组格式
AODV路由协议通过路由消息传递信息,包含了路由请求RREQ(Route Request),路由回复RREP(Route Reply),路由错误RRER(Route Error)和路由回复确认RREP-ACK。在网络节点在维护通信时,还应用了一种TTL=1的RREP消息,这种消息叫做Hello报文。这些消息通过用户数据包协议(UDP,User Datagram Protocol)和通常的IP协议来接收。
2.4.1 RREQ 路由请求
在Ad Hoc网络中,当一个节点无法找到一个可用路由到目的节点时,它将会利用广播RREQ消息来寻找建立路由通路。路由请求消息的格式如图2-1所示。
类型 J R G D U 保留 跳数 RREQ ID 路由请求消息标识 目标节点IP地址 目的节点序列号
源节点IP地址 源节点序列号 图2-1 RREQ消息格式
路由请求消息的部分字段定义如下:
1. 类型:此字段值1;
2. J:Join flag加入标志,为多播保留; 3. R:Repair flag修复标志,为多播保留;
4. G:Gratuitous RREP flag免费路由回复标志,指是否该向目标节点IP地址域指定的节点发送一个免费路由回复消息;
5. D:Destination only flag仅允许目的节点回复标志,标志置位则仅允许目的节点回复本条路由请求;
6. U:Unknown sequence number未知序列号,指目标节点序列号未知; 7. 保留:发送时填充0,接收时忽略此字段; 8. 跳数:从发起节点到处理该请求的节点的跳数;
9. RREQ ID:路由请求标识,这是一个序列号,用它和发起节点的IP就可以唯一标识一个RREQ信息。
2.4.2 RREP 路由回复
当节点需要对收到的RREQ消息进行回复时,节点将会根据收到的RREQ消息和路由表信息生成路由回复消息RREP,然后按查找相应的反向路由转发RREP。路由回复消息的格式如图2-2所示。
类型 R A 保留 前缀长度 跳数 目的节点IP地址 目的节点序列号 源节点IP地址 生命期
图2-2 RREP消息格式
RREP路由回复消息部分字段解释如下:
1. 类型:此字段值2; 2. R:Repair flag修复标志
3. A:Acknowledgement required需要确认;
4. 前缀长度:非0代表下一跳节点可作任何具有相同路由前缀节点被请求时的目的节点;
5. 保留:发送时填充0,接收时忽略此字段;
6. 生命期:路由声明时间,单位为毫秒,在这段时间里,收到RREP的节点会认为这条路由是有效的。
2.4.3 RERR 路由错误
在Ad hoc网络中,可能出现节点间因为某一节点退出网络、信息不可达或者路由信息与网络拓扑结构不符等情况,这时节点将会把路由的错误信息RERR发给相邻节点。路由错误消息RERR的消息格式如图2-3所示。
类型 N 保留 不可达目的节点数 不可达目的节点IP地址 不可达目的节点序列号 附加不可达目的节点IP(if needed) 附加不可达目的节点序列号(if needed) 图2-3 RERR消息格式 RERR路由请求消息的部分字段解释如下:
1. 类型:此字段置3;
2. N:No delete flag不比删除标志:置位时上游节点就不删除此路由; 3. 不可达目的节点数:本消息包含的不可达目的节点的数目,必须至少为一;
4. 保留:发送时填充0,接收时忽略此字段。
2.4.4 RREP-ACK 路由回复确认
当目的节点成功收到RREP消息后,目的节点将会发送RREP-ACK消息确认路由回复,其消息格式如图2-4所示。
类型 保留位 图2-4 RREP-ACK消息格式 在路由回复确认消息中Type字段置位为4。保留位在发送时填充0,节点接收时忽略此字段。
2.4.5 Hello报文
在AODV路由协议维护整个网络连接情况时,节点利用周期性广播Hello报文来确定与邻居节点是否保持着连接,然后根据网络连接情况对路由进行建立或更新等维护。
Hello报文是 TTL=1的RREP,因此Hello报文只能在相邻节点间传送。对于 Hello报文,设置字段“目的节点IP地址”和“目的节点序列号”为生成本报文的节点IP地址和序列号,跳数设置为0,其余字段无效。
2.5 AODV路由协议工作过程
AODV路由协议在工作中涉及到生成路由请求、节点对生成路由请求的处理、节点接受和转发路由回复以及路由的维护等几个步骤,具体的工作过程如下[8],[9],[10]。
2.5.1 维护序列号
在Ad Hoc网络中,每个节点的路由表项必须包含关于目的节点IP地址的最新可用序列号,这个序列号叫做目的序列号。AODV网络为了保证源节点朝向目的节
点的所有路由路径都是无环路的,要求网络中每个节点都要拥有并维护其目的序列号。
当节点接收到了跟RREQ、RREP或者RERR消息中的序列号有关的新信息,目的序列号就会更新。在两种情况下目的节点会增加自己的序列号:
1. 在节点发起一个路径发现的请求之前,它必须增加自己的序列号。对于已经建立好了的朝向RREQ消息发起者的反向路由来说,这样可以防止本次请求与其相冲突;
2. 在目的节点生成RREP消息以响应RREQ消息之前,它必须更新自己的序列号,新的值是它目前的序列号和RREQ消息包中目的序列号的较大者。
目的节点的序列号在路由消息中占有32位,它通过无符号整型变量的形式来增加其序列号。当序列号达到32位无符号整型变量所能达到的最大可能值时,将会使序列号变0。为了确定目的节点的信息是否是新的,当前节点会拿它收到的AODV信息中的序列号数减去自己目前的序列号数,如果结果小于0的话,那么这个接收到的有关目的节点的AODV信息就必须被丢弃。
在目的节点使用了不可用的下一跳节点(下一跳丢失或者过期)时,当前节点会增加其序列号并把此路径标记为不可用。一旦节点接收到了一个足够新的(也就是包含大于等于本节点所记录的序号),并且是来自于已经标记相应路由表项为不可用的节点的路由信息时,当前节点应该以新的信息来更新其路由表信息。
当以下情况发生时,节点需要改变目的路由表项中的序列号: 1. 它自己就是目的节点,并且提供了一个到它自己的新的路由; 2. 它接收到了一个拥有关于目的节点序列号的新AODV消息; 3. 朝向目的节点的路径过期了或者崩溃了。
2.5.2 生成路由请求
在源节点需要与某一目的节点进行通信时,如果源节点路由表没有到目的节点相应的路由,或者当前路由过期了(或被标记为无效),源节点就会创建一个RREQ(Route Request Packet)消息,通过向自己的邻居广播RREQ来发起一次路由发现过程。RREQ消息在创建时信息位写入情况如下:
1. 目的节点序列号:填入最近一次获得的目的节点序列号。如果尚未获得任何目的节点序列号,则U(未知序列号)标志被置位;
2. 源节点序列号:是将发起请求的源节点自己的序列加1后放入;
3. RREQ ID:路由请求消息标识,填入该节点上次RREQ ID加1后的值,每个节点只维护一个RREQ ID;
4. 跳数:填0;
5. G:免费路由回复标志位在需要目的节点回复源节点请求时被置位。 在节点广播RREQ消息之前,源节点会将“RREQ ID”和“源节点IP地址”缓存一段时间,缓存时间由PATH_DISCOVERY_TIME决定。在RREQ消息中的“RREQ ID”和“源节点IP地址”就可以唯一标识一个RREQ信息。如果从邻居那里收到具有相同“RREQ ID”和“源节点IP地址”的RREQ消息,它将会认为这是一个发回来的包而将它丢弃。
为了避免RREQ的不必要广播,源节点采用“扩张式环搜索”作为优化方法,源节点在RREQ分组的IP报头中将生存周期TTL(time-to-live)设为初始值TTL-START毫秒, 设置等待RREP的超时时间为RING_TRAVERSAL_TIME毫秒。一旦等待超时,源节点重传RREQ,此时TTL值将被加上TTL_INCREMENT。这样
一直持续到RREQ包内的TTL达到阈值TTL_THRESHOLD。在达到阈值后,每次使用的TTL都将被设置为NET_DIAMETER。
等待路由的数据包(比如在送出RREQ消息后还在等待RREP消息)被存在缓冲区里,缓冲遵循“先进先出”原则。如果一个路由寻找过程已经在最大的TTL值下尝试了RREQ_RETRIES次而还没有收到RREP时,所有被缓冲的送往这个目的的数据包都应当被丢弃,并且还应当向应用程序回送一个“目的不可达”消息。
为减少网络拥塞,源节点向单个目的节点建立连接的尝试必须遵从二的幂次递减原则。当节点第一次广播一个RREQ消息时,它会等待
NET_TRAVERSAL_TIME毫秒来接收RREP消息。如果在这段时间内RREP没有到达,源节点就会送出一个新的RREQ。第二个RREQ的回复消息RREP的等待时间就应当遵从二的幂次递减原则,也就是,这个等待时间应该为2×
NET_TRAVERSAL_TIME毫秒。如果在这段时间内RREP消息仍然没到,另一个RREQ就又可以送出去了。在第一个RREQ消息发出去以后,最多还可以再尝试RREQ_RETRIES次。对每一次的尝试,它的等待时间都应当是上一次尝试时间的2倍。这样就从等待时间上保证遵从了网络协议的二的幂次递减原则。
2.5.3 路由请求处理
源节点发送的RREQ消息经过无线通路传播而被目的节点或中间节点接收和处理。当节点收到一条RREQ消息时,如果有必要该节点将创建一个到前一跳节点的反向路由或更新原已有反向路由。
在建立反向路由时,节点用RREQ中的“源节点序列号”作为路由表项中的“目的节点序列号”,建立或者更新通向源节点的反向路由。节点将对反向路由表进行下列操作:
1. 目的节点序列号:路由建立时,填入RREQ中“源节点序列号”;更新路由时,比较RREQ和路由表里的“源节点序列号”的数值,填入较大值;
2. 有效序列号:被设置为有效;
3. 下一跳:设置为向它发送 RREQ的上一节点; 4. 跳数:由 RREQ信息里进行拷贝。
任何收到RREQ消息,到发起者IP地址的反向路由表项的生存期设置为现有生存期和最小生存期里的最大值。同时,最小生存期=当前时间+2*NET_TRAVERSAL_TIME-2*跳数* NODE_TRAVERSAL_TIME。
收到RREQ路由请求的节点检查在PATH_DISCOVERY_TIME时间内是否收到过具有相同“源节点IP地址”和“RREQ ID”的RREQ消息,从而判断收到的路由消息是否重复。如果节点已经接收到过相同的RREQ消息,将丢弃这个RREQ而不作任何操作;如果接收到不同的RREQ消息,则会根据RREQ消息内容生成路由回复消息RREP,并查询节点的反向路由表,选择适当的路由发送RREP消息。
1. 节点转发RREQ
节点收到非重复的RREQ消息时,将搜索到源节点IP地址的反向路由,如果RREQ消息带“G”标志,则节点将建立或更新反向路由;然后检查RREQ消息的TTL是否大于1,如果TTL大于1,那么这个节点就更新这条RREQ消息;最后在查询路由表在相应网络接口上转发或者广播更新后的RREQ消息。
中间节点对RREQ消息做的更新是: (1) IP头内TTL或者跳数限制被减1; (2) 跳数:将被加1,用于对新的一跳计数;
(3) 目的节点序列号:设置为RREQ消息内对应值和节点本身维护的目的节点序列号之间的大者。但是,转发节点一定不能修改它维护的目的节点序列号,即使接收到的RREQ消息内的这个序列号比当前维护的值要大也不行。
对于RREQ消息带“G”标志时中继节点生成路由回复RREP的情况,在下面介绍节点生成回复RREP中详细讲解。
2. 生成回复RREP
当一个节点收到非重复的RREQ消息,在下面两种情况下会生成RREP消息: 第一种:节点自己就是目的节点;
第二种:节点到目的节点有一条有效路由,路由表项内的目的节点序列号有效并且不小于RREQ消息内的目的节点序列号,且RREQ内的“D”(仅目的节点回复)标志位未被置位。
节点收到非重复的RREQ消息并且满足以上两种情况时,节点将产生一个RREP消息,节点拷贝RREQ消息中的“目的地IP地址”和“源节点序列号”到RREP的对应字段。一旦建立了RREP,该节点就把RREP单播至通往RREQ请求发起者的下一跳,该下一跳在到发起者的路由表项中指出。随着RREP被转发回发起RREQ消息的节点,跳数字段也在每一跳加1。这样,当 RREP到达发起RREQ的节点,跳数就代表从目的节点到发起节点的距离。
(1) 目标节点生成路由回复
如果接收RREQ消息的节点就是目标节点,且该节点现有的序列号和RREQ信息里携带的“目的序列号”相同,该节点必须让自身的序列号加1。否则,目的节点不会在生成RREP包以前改变它的序列号。
目的节点在生成RREP消息时,将对RREP进行如下操作: a. 目的节点IP地址:发起RREQ的节点的“源节点IP地址”;
b. 目的节点序列号:填入目的节点的序列号(可能是新增加过的); c. 跳数:设置0;
d. 生命期:设置为MY_ROUTE_TIMEOUT的值,每个节点都可以在一定的限制下
重新配置MY_ROUTE_TIMEOUT的值。 (2) 中继节点生成路由回复
当节点是从源节点到达目的节点的路径上的一个中间节点时,通过把最后跳过的节点(从收到RREQ中IP报头源IP地址段中可得到)加入了前向路由表项的先驱表,更新了前向路由表项——即目的IP地址的入口。中继节点为逆推路由表项,通过把向目的节点的下一跳放入先驱表更新了RREQ发生节点的路由表项--即RREQ消息数据中起源IP地址字段的项。
中继节点在生成RREP消息时,将对RREP进行如下操作: a. 目的节点IP地址:发起RREQ的节点的源节点IP地址;
b. 目的节点序列号:设置为中继节点所知的“目的节点的序列号”; c. 跳数:中继节点到目的节点(用跳数在路由表中标识)的跳数; d. 生命期:设置为在路由表项中由满期时间减去当前时间得到的时间值。 (3) 生成未被要求的路由回复
当一个节点收到一个RREQ且收到RREP回复之后,它会丢弃掉这个RREQ。如果这个RREQ的G标识位被置位,且中间节点向发起节点返回一个RREP的话,它必须也要单播一个未被要求的RREP到目的节点。这个RREP的各消息字段值设置如下:
a. 目的节点IP地址:发起RREQ节点的IP地址; b. 目的节点序列号:来自RREQ的发起节点中的序列号; c. 源节点IP地址:RREQ中目的节点的IP地址; d. 跳数:在节点的发起节点路由表项中被标识;
e. 生存期:中间节点所知的从RREQ的发起节点开始的路由剩余生存期。
2.5.4 路由回复处理
当一个节点收到RREP消息后,它将使用最长前缀匹配方法搜索到前一跳的路由,并且将RREP消息中的跳数值加。当节点到目的节点的前向路由不存在时,则建立此前向路由。当前向路由存在,该节点将已存储的“目的节点序列号”与RREP中的“目的节点序列号”相比较,如果RREP消息中的“目的节点序列号”大,并且节点已知的“目的点序列号”是有效的,这时路由将会更新;如果目的序列号是相同的,但路由标示为无效或者新跳数小于路由表项中的跳数,路由也会被更新。
节点通过以下操作进行前向路由表项的创建或更新: 1. 此路由被标识为活动,且目标序列号被标识为有效;
2. 路由表项中的下一跳被指定为在收到的RREP的IP头的源IP地址段所指出的 节点;
3. 跳数被更新的跳数;
4. 路由过期时间被设置为当前时间加上RREP信息中的生命期; 5. 目的序列号取RREP中的目的序列号。
当节点不是RREP消息中标识的节点,且前向路由已被创建或更新,该节点查询它的路由表项来确定RREP的下一跳,然后使用路由表信息向源节点转发RREP。节点发送了一个RREP,符合目的节点的先驱表中加入下一跳节点以被更新,其RREP被转发。随着RREP传送回源节点,沿路的节点建立到发送RREP节点的转发指针,更新它的路由表中到源节点和目的节点的超时信息并记录请求目的节点的最新的序列号。
节点收到RREP消息后传播第一个从给定源节点到源端的RREP消息。如果它后来又收到RREP消息,只有当RREP消息比以前RREP消息有更大的目的节点序列号或者有相同的序列号。但是有更小的跳数时,它才更新它的路由信息并传播这个RREP消息。它阻止任何其他收到的RREP包。这样就减少了传播到源的RREP
数量并确保最新和最快的路由信息。源节点当第一个RREP收到后就可以发送数据包,并可以在知道更好的路由后更新路由信息。
如果一个节点通过以上路由转发一个可能出错或是单向的RREP,这个节点应该将“A”标志位置位以指示此RREP包的接受者送回一个RREP-ACK包确认已接收到该包。
2.5.5 路由维护
1. 维护本地连接
如果源节点在活动会话期间移动,它可以重新发起路由发现过程来建立到目的节点的新路由。当目的节点或者中间节点移动时,特别的RREP消息被发往受影响的源节点。定期的Hel10消息可以用来确保同步连接,也可以用来检测连接中断。相反,如果只有很少的延迟,这个错误可以用链路层应答检测到。当试图发往下一跳失败时也可以检测到链路中断。
Hello报文只能在相邻节点间进行传播,当节点收到一个Hello包后,就可以新建一个邻居条目或者知道邻居节点与自己依然保持着连接。如果节点在
HELLO_INTERVAL微秒内没有邻居节点的Hello包,则认为该邻居节点与自己不再连接,该邻居节点的路由将被设置为无效状态。就这样,AODV路由协议在Hello报文的协助下完成了整个路由的维护。
Hello信息,其RREP信息字段设置如下: (1) 目的节点IP地址:本节点的IP地址; (2) 目的节点序列号:本节点最新的序列号; (3) 跳数:为0;
(4) 生命期:设为ALLOWED_HELLO_LOSS * HELLO_INTERVAL。
节点收到来自邻居节点的Hello消息,就可以确信具有到这个邻居的有效路由。如果到这个邻居的有效路由不存在,则建立该路由;如果该路由已经存在,那么增加这条路由的生存期为ALLOWED_HELLO_LOSS*HELLO_INTERVAL。当前节点可以使用这条路线转发数据包。没有被其它活动路径使用的由Hello信息创建的路线将拥有一个空的先驱表,且如果临近节点移走或超时不会触发RRER信息。
2. 维护路由错误
当路由出现错误时,路由错误消息要么被广播(如果存在多个前驱节点),要么被单播(如果只存在一个前驱节点),要么被反复地单播到所有的前驱节点(如果广播不可用)。在三种情况下,节点会发起RERR消息过程:
(1) 节点检测到一条正传送数据的活动路由的下一跳链路断开;
(2) 节点接收到了一个数据包,而路由表中没有到数据包目的节点的活动路由而
且也没有修复,只有一个不可达目的地;
(3) 节点从邻居节点接收到了一个或多个活动路由的RERR消息。
节点首先产生一张不可达目的节点列表,包含不可达邻居节点、使用不可达邻居节点作为下一跳的其它任何目的节点、情况3中RERR中的一些目的地节点。这些目的地节点在本地路由表中存在着对应的路由表项,路由表项的下一跳是所收到的RERR消息的发送者。
在发送RERR消息之前,在路由表中要做某些更新,这些更新可能会影响到不可达节点的目的节点序列号。对于每一个目的节点,对应的路由表项应该按如下更新:
(1) 目的节点序列号:如果存在并可用,则增1;对于情况3则从接收到的
RERR消息中拷贝; (2) 标记路由表项为无效;
(3) 生存期:被更新为当前时间加上DELETE_PERIOD。
路由表中“生存期”扮演着两个角色——对于活动的路由来说,它是超时时间;对于无效路由来说,它是删除时间。如果接收到了一个无效路由的数据包,“生存期”就被更新为当前时间加上DELETE_PERIOD。
应该接收RERR消息的邻居节点都是在前驱列表之中的,这个前驱列表是新创建的RERR消息中不可达目的节点之一所创建的。如果只有一个需要接收RERR消息的邻居节点, RERR消息应该向那个邻居节点单播;否则, RERR消息会被发送到本地广播地址。不可达目的节点IP地址、不可达目的节点序列号、和不可达目的节点个数则会包含在EREE里。
3. 维护路由中断
当网络中路由发生了连接中断时,如果目的节点距离不超过
MAX_REPAIR_TTL跳数,发生中断位置的上游节点可能会选择在本地将其修复。为了修复连接中断,节点会增加到目的节点的序列号,然后广播一个到目的节点的RREQ消息。
这条RREQ消息的TTL域应该被初始化设置为以下的值: max(MIN_REPAIR_TTL, * #hops) + LOCAL_ADD_TTL
其中#hops是当前节点到源节点(目前不可达数据包的生成者)的跳数。 在本地修复期间数据包应该被缓存。初始化修复了的节点然后要等待发现时期“discovery period”这么长时间以接收响应RREQ消息的RREP消息。在发现时期内,如果修复节点没有接收到RREP消息,它就向目的节点发出一个RERR消息。如果修复节点接收到了一个或多个RREP消息,它首先用到目的节点的新路由跳数与对应路由表项的跳数相比较:当新路由跳数小时,则通过RREP消息建立该路由;当
新路由跳数大时,节点发出一个到目的节点的RERR消息,而且N位要设置为1,然后更新其到此目的节点的路由表项。
节点接收到带有N标记的RERR消息,一定不能删除到那个目的节点的路由。 (1) 如果RERR消息是从到目的节点路由的下一跳节点发过来,而且此路由上有一个或多个前驱节点的话,该节点将重发这条消息。
(2) 如果RERR消息是从到目的节点路由的下一跳发过来的话,当前节点就会选择重置路由发现请求。
当一条路由上出现连接中断时,上游节点会尝试立即执行本地修复,这个本地修复仅仅是朝向数据包前进方向上的那个目标节点而进行的。处理本地修复的节点会把其他使用同一连接的路由被标记为不可达,但是可能会把每个这种新丢失的路由标记为本地可修复,当路由超时的时候,这个路由表中的本地修复标志必须被重置。在超时发生之前,当去往其他目的节点的包到达时,这些其他路由将会按照需要被修复。如果对于某条路由的数据包没有到达,那么路由就不会被修复。因此,这些路由是按需修复的。
另外一种方法是,视本地网络拥塞状况,节点可能对其他路由开始进行本地修复的处理,而不等候新的数据包的到达。通过提前修复已经由于连接丢失而中断的路由,这些路由上接收到的数据包将不会受到修复路由所带来的延迟的影响,而能够被立即转发。然而,在数据包到达之前就修复路由可能会有风险,即修复了再也不使用的路由。因此,基于网络中的本地流量和是否正发生网络拥塞,节点可能会选择在数据包接手之前提前修复路由;否则,它会等候到有数据包接收到时,然后再开始路由的修复。
4. 维护路由重启
在重启以后,网络节点可能丢失了到所有目的节点的所有序列号,包括它自己的序列号,并且可能有邻居节点正在使用这个节点作为活动的下一跳,这就可能潜在地制造环路。为了防止出现这种可能,AODV路由协议采取相应的操作。
重启节点在发送任何路由发现消息以前,都要等候DELETE_PERIOD时间: (1) 如果重启节点接收了RREQ、RREP或RERR消息,它就以消息中的序列号信息来创建路由表项,但是它一定不能转发任何控制消息;
(2) 如果重启节点接收到了到其他目的节点的数据包,它将广播出RERR消息,并且重置等待计数器,此计数器在当前时间加上DELETE_PERIOD后过期。
在重启节点度过等待时间变为活动路由时,它的所有邻居节点都不会再把它当成活动的下一跳了。只要它从其他节点接收到了RREQ消息,它自己的序列号都会增加,因为RREQ消息总会带来路由上的最大目的节点序列号。如果没有这种RREQ消息到来,节点必须将它自己的序列号初始化为0。
2.6 AODV路由协议性能
基于AODV路由协议工作原理的分析,其在网络使用中的性能如下[11]: 1. 基于传统的距离向量路由机制思路简单易懂;
2. 通过使用目的序列号有效地防止了循环的发生解决了传统的基于距离向量路由协议存在的无限计数问题,并且易于编程实现;
3. 支持中间节点回答能使源节点快速获得路由,但存在过时路由问题; 4. 快速响应活跃路径上断链,当链路失效能够被立即报告,这样路由可重新建立;
5. 具有网络的可扩充性;
6. 需要周期性地广播报文需要消耗一定的电池能源和网络带宽。
第3章 AODV路由协议仿真
3.1 性能指标
AODV路由协议的任务是维护网络拓扑,为节点间的通信提供及时准确的路由信息。在对AODV路由协议进行仿真中,通常是针对AODV路由协议的性能参数,也就是性能指标进行评估,从而判定和得出协议的性能。下面就AODV几个主要的性能指标进行介绍[12],[13],[14]。
1. 数据包投递率
数据包投递率是节点间发送数据时由路由层的上层(应用层)统计的,代表应用层信宿接收的数据包个数与信源发送的数据包个数之比。从这个比率可以看出整个网络的数据成功传递的概率和数据包丢失的概率,能很好的反映出该路由协议在传输数据时的可靠性。数据包投递率越高传输可靠性就越高,协议完整性和正确性也越高。
其计算公式如下:
数据包投递率目的节点接收到的数据包个数(3-1)
源节点发送的数据包个数
2. 端到端平均时延
端到端平均时延是节点在接收数据时由路由层统计得出,其统计的是一个数据包从源节点的应用层成功到达目的节点网络层所平均经过的时间。它包含了在链路上的传播延时、报文的排队延时、报文的重传延时、数据报文处理延时、路由发现延时和在中间节点的转发延时等。为了准确的反映网络的时延情况,常常用端到端
平均时延作为网络延时度量参数。该参数能反映网络是否通畅,时延越小证明网络越通畅,网络的可用性越好。
其计算公式如下:
端到端平均时延(接收到的数据包的时间发送数据包的时间)发送的数据包个数
(3-2)
3. 归一化路由协议开销
该参数是路由层向下层发送数据包时由路由层统计的,其统计的是路由层平均传递一个数据分组需要传递的控制信息的比例[15]。它反映了网络的拥塞程度和节点电源的效率,开销大的协议拥塞的概率就大,且会延迟借口队列中数据的发送。
其计算公式如下:
归一化路由协议开销发送和转发的数据包个数(3-3)
接收到的数据包个数
4. 平均跳数
平均跳数即从源节点发出路由包到目的节点接收到路由包中间所经过的节点转发的次数,反映了网络拓扑结构、节点通信范围及路由效率。
其计算公式如下:
平均跳数转发的数据包与发送的数据包的个数和(3-4)
发送的数据包个数
5. 路由建立时间
路由建立时间统计的是为了找寻路由信息,从源节点长生路由请求信息到源节点最初获得路由信息所经过的时间。该参数考察路由协议中发现路由机制是否能快速地找到路由信息,以及在网络拓扑结构快速变化时,发现的有效路由能否快速地达到收敛状态。
6. 吞吐率
该参数是在接收数据时由路由层的上层统计的,其统计的是所有移动节点每秒收到的数据分组。它是在不丢包的情况下单位时间内通过的数据包数量,单位是字节每秒或比特每秒。
在本文中,主要对前四个主要的性能指标:端到端平均时延、数据包投递率、平均跳数、路由协议开销进行仿真结果分析,得出AODV路由协议在不同的环境中各个性能指标的变化,从而得出AODV路由协议各项性能在环境变化中受到的影响,分析得出其中的规律和协议在哪种环境中性能最好,由此提高ADOV协议在生产、生活乃至军事使用发挥最佳效果
3.2 仿真工具简介
3.2.1 NS2介绍
本文在对AODV路由协议仿真中,选用NS2(network simulator–version2)作为仿真软件,操作系统采用Windows XP。在Windows XP平台上安装Cygwin软件,然后在Cygwin环境下用allinone方式安装NS2。
NS2是面向对象的离散事件驱动的网络仿真器,由UC Berkeley研发,能够实现绝大多数常见的网络协议以及链路层的仿真。它是一个免费的软件,可以再Windows/NUIX上欲行,所有源代码公开,对网络研究和扩展非常方便。NS2底层的模拟引擎主要由C++编写,同时利用麻省理工学院(MIT)的面向对象的工具语言(OTcl)作为模拟时的命令和配置借口语言。NS2与NAM(network animaor)软件结合,能够动画显示仿真结果,适合用于具体的协议仿真分析。该仿真软件能实现运输层协议TCP、DUP等;业务源如FTP、Telnet、Web、CBR和VBR等;路由器队列管理机制:路由算法等。此外,NS2还能仿真多播及一些局域网的MAC协议。
应用层 传输层 网络层 MAC层 物理层 CBR DUP AODV 位置,无线电传播等 图3-1 NS仿真移动节点模型 3.2.2 NS2网络协议仿真
在使用NS2进行网络协议仿真时,基本步骤可分为以下几步 [16]: 1. 编写并测试所需构件
编写自己需要的相关构件,然后测试自己编写的构件能否通过。当NS 库中的构件满足仿真需要(例如对NS库已有的协议进行仿真),则仿真过程直接从第2步开始。AODV路由协议已包含在NS库中,因此不需要编写构件,直接从下面的步骤开始设计和仿真。
2. 编写TCL脚本文件
配置仿真网络的拓扑结构,确定链路基本特性,移动节点所使用的路由协议,节点的数量等,并进行端设备的协议绑定,设置仿真使用的场景和传输负载(TCP流或CBR流),设置仿真的开始和结束时间等,并在脚本文件里设置trace对象,trace文件是记录仿真过程中所发生的所有事件的文件,也可以同时设置nam对象,nam是用于演示网络运行动画的工具。 (1) 用NS命令执行脚本文件
在NS命令对相关脚本文件进行运行仿真,执行后会在与脚本文件同一目录下生成 .tr的文件,该文件记录了仿真结果。如果在脚本文件中设置了nam对象,则会在同一目录下生成 .nam的文件。 (2) 分析trace文件
Trace文件记录了节点间数据传输的相关信息,对其进行分析能够得到节点发送或者接收数据包的类型、时间、大小等相关信息。对Trace文件中的相关数据进行分析计算可以得出网络的数据包投递率、路由协议开销、端到端平均时延等性能指标,再用绘图工具将所得数据绘制成图以便直观分析。
3.3 AODV仿真环境
在使用AODV路由协议的Ad hoc网络中,节点可能是源节点,也可能是目的节点,并且所有的节点都具有路由和转发的功能。网络在不同的网络规模,不同的节点移动速率以及不同的数据包发送速率下性能都有着一定差异,因此本文针对这三个环境变量分别设置网络环境,从而对各个变量的影响进行分析和讨论。在三个仿真环境中,均利用NS2构建随机的节点运动场景,信源方式采用CBR方式,具体的仿真环境设置如下: 1. 不同网络规模的网络模型
建立仿真场景,设置仿真拓扑区域大小为1200m×1200m,数据源采用CBR源,节点数目分别为20、50、90个,节点随机移动,并且中途停留时间设置为0,其节点最大移动速度取值为10 m/s。每个节点随机选择目的节点发送分组,发包率为1 packet/s,仿真时长300s。
2. 不同移动速度的网络模型
在对移动速度不同的网络模型建立时,针对不同的实际情况分别选取当节点静止、节点以人的步行速度移动和节点按照汽车行驶速度移动下节点的移动速度作为仿真网络模型的速度。
成年人正常步行时一般步频约100步每分钟,脚(带鞋子)约30cm,跨度约36cm,速度约s,此处作适当调整选取速度为1m/s。驾驶汽车行驶时,如果在城市
道路,行驶速度不得高于70Km/h,一般为50 Km/h;而在高速公路上时,汽车行驶速度在60 Km/h至120 Km/h之间,此处综合城市道路和高速公路取70 Km/h(即 m/s),在仿真中取其整数值20 m/s;在用于飞机通信时,取其一般直升飞机速度220 Km/h(即 m/s),仿真中取其整数值60 m/s。
综合上面的分析,建立场景,设置仿真拓扑区域大小为1500m×1500m,节点数目选取为20个,发包率为1 packet/s,选取节点的移动速度分别为0m/s、1m/s、20m/s、60 m/s,节点从一个随机位置开始朝一个随机目的位置移动,模拟仿真时长300s。
3. 不同发包速率的网络模型
建立场景,节点数目为20个,节点均匀地分布在800m×800m范围内,按照随机选择的速率从一个随机位置移动,最大移动速度设置为10m/s,节点发包时间间隔分别为:、 、、、1s ,即发包率为40 packet/s、20 packet/s、10 packet/s、5packet/s、1 packet/s。
3.4 AODV仿真过程
在仿真过程中,需要建立相应节点移动场景和传输负载,节点以什么样的方式进行运动,以及采取数据发送快慢与大小,不同的节点移动场景和传输负载可以影响到网络协议具有不同的性能。本文针对在以上三个不同的仿真环境,应用NS2中的节点移动产生器(setdes工具)生成节点移动场景,用传输产生器(cbrgen工具)生成仿真网络的传输负载模型。
3.4.1 网络节点运动场景设计
在确定的仿真环境下,由于节点是处于随机移动状态,并且需要对网络节点数目、移动速度等进行设置,在固定编写tcl脚本很难实现,因此本文采用NS2中的节点移动产生器setdest命令来产生仿真所需的移动场景。
节点移动产生器中setdest命令格式如下:
./setdest -n 参数定义如下: 1. -n:num_of_nodes的值指定了场景中总共有多少个节点; 2. -p:pausetime 指定了节点运动到一个目的地后停留的时间,如果设为0,则节点不停留; 3. -M:maxspeed 指定了节点随机运动速度的最大值,单位是(m/s),节点的运动速度将在[0,maxspeed]中随机选择; 4. -t:simtine 指定了模拟场景持续的时间(单位为s); 5. -x:maxx 指定节点运动区域的长度(x轴方向,单位为m); 6. -y:maxy 指定节点运动区域的宽度(y轴方向,单位为m); 7. 3.4.2 网络负载场景设计 传输产生器cbrgen命令格式如下: ns [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] > 参数定义如下: 1. -type:该参数指定产生的是cbr流还是tcp流; 2. -nn:该参数指定了有多少个节点; 3. -seed:该参数指定了随机种子数; 4. -mc:该参数制定了这些节点间最大连接数; 5. -rate:该参数指定了每个连接之间的流的负载量,如果产生的是cbr流,则包长固定为512Byte,rate值指定的是每秒发送多少个包; 6. 3.4.3 tcl仿真脚本 基于节点移动场景和传输负载编写对应的tcl脚本,将移动场景和传输负载模型连接使用,最后在NS2中运行tcl脚本进行AODV路由协议的网络仿真。tcl模拟场景脚本包括以下具体内容: 1. 创建模拟实体,任何模拟都需要一个模拟实体; 2. trace文件的打开,包括tr文件和nam文件; 3. 节点配置,创建节点将要使用到的参数; 4. 创建节点和链接,以及使用这些链接的节点; 5. 通信相关事件调度,例如,通信产生器或代理的开始和终止; 6. 模拟结尾调用的完成过程,这个过程必须将所有trace文件输出到文件中并退出模拟。 3.4.4 仿真及结果分析 用NS命令执行tcl脚本,将在脚本文件同一个文件夹下产生对应的.tr文件(即仿真分析所需的数据文件),对tr文件进行分析。在本文中,由于节点和场景规模较大,产生的tr文件较大,因此采用gawk工具进行数据分析处理。根据确定的性能指标及其算法编写gawk程序,将gawk脚本程序和tr文件放在同一个文件夹中,然后在NS2中运行gawk程序,将结果输出到指定文件。 Gawk工具使用命令格式为: gawk -f program-file input-file > 1. program-file为编写的gawk程序; 2. input-file为需要进行分析的文档; 3. 根据分析数据,应用绘图工具进行绘图,得到形象直观的图形结果。 下面是在本次仿真中运用的一个tcl脚本: #================================================================= #定义操作参数 set val(chan) Channel/WirelessChannel ;#channel type set val(prop) Propagation/TwoRayGround ;#radio-progation model set val(netif) Phy/WirelessPhy ;#network interface type set val(mac) Mac/802_11 ;#MAC type set val(ifq) Queue/DropTail/PriQueue ;#interface queue type set val(ant) Antenna/OmniAntenna ;#antenna model set val(ll) LL ;#link layer type set val(ifqlen) 50 ;#max packet in ifq set val(nn) 20 ;#number of mobilenodes set val(rp) AODV ;#routing protocl set val(X) 1200 ;#X dimension of the topography set val(Y) 1200 ;#Y dimension of the topography set val(stop) 300 ;#simulation time set val(cp) \"cbr1-n20\" ;#数据流文件名称 set val(sc) \"aodv1-n20\" ;#场景文件名称 #主函数 set ns_ [new Simulator] ; #建立一个新的模拟对象 set tracefd [open w] ;#创建tr文件记录模拟过程 $ns_ trace-all $tracefd set namtrace [open w] ;#给nam创建跟踪对象 $ns_ namtrace-all-wireless $namtrace $val(X) $val(Y) set topo [new Topography] ;#设置网络拓扑结构 $topo load_flatgrid $val(X) $val(Y) set god_ [create-god $val(nn)] ;#创建一个God对象 set chan_1_ [new $val(chan)] set chan_2_ [new $val(chan)] #无限移动节点配置属性,将前面定义的变量赋值到对应配置属性 $ns_ node-config -adhocRouting $val(rp) \\ -llType $val(ll) \\ -macType $val(mac) \\ -ifqType $val(ifq) \\ -ifqLen $val(ifqlen) \\ -antType $val(ant) \\ -propType $val(prop) \\ -phyType $val(netif) \\ -channelType $val(chan)\\ -topoInstance $topo \\ -agentTrace ON \\ -routerTrace ON \\ -macTrace ON \\ # 创建移动节点 for {set i 0} {$i < $val(nn)} {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;#disable random motion } source $val(cp) ;#调用网络负载场景文件 source $val(sc) ;#调用移动节点场景文件 #定义节点在nam中的初始位置 for { set i 0} {$i<$val(nn)} {incr i} { $ns_ initial_node_pos $node_($i) 20 } #模拟结束前调用节点额reset函数 ,并执行finish函数 for {set i 0} {$i<$val(nn)} {incr i} { $ns_ at $val(stop).0 \"$node_($i) reset\"; } $ns_ at $val(stop) \"finish\" ;#在stop对应的时间调用finish过程 #建立一个finish过程,用来关闭两个trace文件 proc finish {} { global ns_ tracefd namtrace $ns_ flush-trace close $tracefd close $namtrace exit 0 } $ns_ run ;#开始模拟 第4章 仿真结果及分析 应用NS2仿真软件及其附带的工具对设定的三个不同的仿真模型进行仿真模型创建并仿真,然后应用gawk工具分析所得 “.tr”文件,然后应用绘图工具将分析所得数据绘制成图形,以便直观得出各参数的变化。 4.1 不同网络规模的网络模型 在网络规模分别为20、50、90个节点时,根据仿真环境利用NS2的setdest工具创建移动节点场景,节点停留时间设置为0(即节点处于时刻移动的状态),各个节点最大移动速度设置为10m/s,模拟时间设置为300s。然后利用NS2的cbrgen工具生成仿真网络的传输负载,仿真分析得到的数据分析图。 1. 数据包投递率 图4-1 不同网络规模下数据包投递率 在对节点数目改变时网络中数据包投递率仿真后得出,20节点时数据包投递达到%,50节点时投递率下降到%,90节点时只有%,数据分布如图4-1所示。分析可知,当网络中节点数目增加时,数据包投递率也随之下降,并且下降速度较快。 其主要原因是在网络规模增加时,即网络中节点个数的增加时,网络中各节点发送和转发的RREQ、RREP和RERR等消息都随之增多,网络中路由分组数量的增多增加了数据包传递的错误概率,因此数据包的投递率如上图所示随着节点数目增加而降低。 2. 端到端平均时延 图4-2 不同网络规模下端到端平均时延 从图4-2中可以看出节点间的端到端平均时延随着节点的增加而减少。当网络中节点数目只有20个时,网络中端到端平均时延迟最高,达到了秒,而当节点数目为50和90时,网络延迟有了明显降低,都保持在秒以下。在网络拓扑范围不变的情况下,由于网络中节点数目较少,节点间建立最佳路由数目少、质量较差,从而导致了数据包在节点间传播所需的延迟相应较高。AODV路由协议在网络规模较大时网络更通畅,路由的可用性也较强。 3. 路由协议开销 图4-3 不同网络规模下归一化路由协议开销 如图4-3所示,随着节点的增多,节点在寻找路由时需要找到路由数目较多,路由开销随着增大。当网络规模为节点数为90节点时,得出路由协议开销为,而当网络中节点数位20节点时,网络的路由协议开销只有,仅仅只有节点数为90节点时路由协议开销的45%。网络中节点数目变化时路由开销变化明显,说明AODV路由协议在网络规模较大时路由协议消耗明显加大,从而体现了网络发生拥塞的概率增大。 4. 平均跳数 图4-4 不同网络规模下平均跳数 如图4-4所示,随着网络中节点数目的增加,网络中节点间通信所通过的平均跳数减少,但节点数为50和90时相差不大。在网络中移动节点较少时,由于网络中各节点的通信范围的限制,网络拓扑结构较为简单,从而限制了其网络最佳路由 的选择,因此节点少时的平均路由跳数比节点多时平均跳数多。从分析可以得出AODV路由协议在网络规模较大时,网络整体的拓扑结构变得更实用,网络的路由效率更好。 5. 结论 在使用AODV路由协议时,网络性能指标随网络规模中节点数目增加发生改变:网络中端到端平均时延减少,而数据包投递率、路由协议开销和平均路由开销都有所增加。网络性能指标的变化可以看出AODV路由协议下的网络在随着网络规模较大时,网络的可靠性、可用性较好,并且网络中的拓扑结构适应性强,路由效率也表现良好,但网络的整体稳定性变差,网络因协议开销增大而影响移动设备的电源效率。综合分析可以得出AODV路由协议适用于网络规模较大的场景。 4.2 不同移动速度的网络模型 针对不同的应用场景,节点的移动速度有所不同,根据设定的不同移动速度来检测网络性能,其节点最大移动速度选取有0m/s、1m/s、20m/s、60 m/s。在拓扑为1500m×1500m的区域中模拟AODV协议性能,得到如下结果。 1. 数据包投递率 图4-5 不同速度下数据包投递率 如图4-5所示,当节点的移动速度增加时,节点的数据包投递率有明显的降低。分仿真分析得出,当节点最大移动速度为0m/s时数据包投递率最高,达到了100%;而节点最大移动速度为60m/s时数据包投递率最低,为%。在节点的移动速度增大时,网络拓扑结构变化加剧,节点间路由更容易发生改变或错误,从而节点间的数据包投递可以发生错误或丢失,数据包投递降低。使用AODV协议的网络对 节点的移动性较为敏感,特别是节点在速度为60m/s时网络投递率较低,只有%以上,说明网络在节点移动速度过快时其可靠性明显降低。 2. 端到端平均时延 图4-6 不同速度下端到端平均时延 如图4-6所示,当网络中各节点的最大运动速度增加时,网络端到端的平均时延随之升高。随着节点移动性的增强,节点间链路断开的几率上升,源节点和目的节点对之间的路由失效次数随之增多,AODV协议需要耗费更多的时间进行重新路由,因此端到端的平均时延也随之增加。在节点都处于静止状态时网络端到端延迟最低,仅为秒,而在节点最大移动速度增加到60m/s时,端到端平均延时达到秒,为节点静止时延迟的倍。从中可以分析得出,AODV路由协议在网络节点速度增大时网络的畅通性降低,路由的可用性也随之降低,特别是网络节点速度达到60m/s时性能最低。 3. 路由协议开销 图4-7 不同速度下路由协议开销 从图4-7可以得出,随着节点运动速度的增加,节点间通信的路由协议开销增加。在节点的行动力较差时,它需要付出的路由开销也越低。反之,当节点运动较活跃时,节点需要更多的路由开销来寻找到目的节点的合适路由,从而增加了整个通信中发送和转发数据包的数量,路由协议的开销增大。当路由协议开销增大的同时,网络拥塞更易发生,并且会延迟借口队列中数据的发送。 4. 平均跳数 图4-8 不同速度下平均跳数 网络拓扑结构决定了网络中节点间通信的平均跳数,当节点的移动速度增大时,网络的拓扑结构变化增大,数据包从源节点到目的节点的路由就更容易发生变化,整个路由过程的跳数将随着增加。如图4-8 所示,网络中节点移动速度的增加 对节点间通信的平均跳数影响较大,节点静止时平均跳数最少,通信质量最好。当节点移动速度达到60m/s时,网络的平均跳数超过,比移动速度在20m/s及以下速度的跳数明显增加,体现了AODV路由协议路由效率明显降低。 5. 结论 通过分析得出,在网络节点移动速度增加时,网络的性能指标中端到端时延增加,归一化路由协议开销增加,平均路由跳数增加,数据包投递率下降。这些参数的变化说明了网络随着节点移动速度的增加,其可靠性降低,网络拥塞程度加大,网络拓扑变化也随之加剧,使AODV路由协议的效率降低。ADOV路由协议对节点移动速度的增加性能随之降低,在节点移动速度在60m/s以下时表现良好,对较高速度则性能较差。 4.3 不同发包速率的网络模型 在网络模型的变量为节点的发包速率时,可以在不同的发包间隔下通过网络指标的分析得出网络负荷和网络通信质量等的变化。按照设定的数据包发送间隔,,,,1s进行AODV路由协议的网络仿真,得到如下结果。 1. 数据包投递率 图4-9 不同发包率下数据包投递率 由图4-9可以看出,当网络中节点发送数据包间隔增大时,数据包投递率明显上升。当节点发送数据包间隔时间为秒时,整个网络的数据包投递率为%,而当间隔时间增大到秒时,数据包投递率达到了%,当节点发送数据包间隔时间大于秒时,随着间隔的增大数据包接收率有所增加,但是增加幅度很小。网络节点发包率代表了节点向网络发送数据的速率,从而影响了网络总流量。当发包率增加时,使 用AODV协议网络的数据包投递率在发包率降低的情况下,数据包投递率明显上升,网络的可靠性和完整性更好。 2. 端到端平均时延 图4-10 不同发包率下端到端平均时延 从图4-10可以看出,网络在数据包发送间隔增大时,即发包率降低时端到端的平均时延降低。当节点发送数据包间隔时间为时的端到端的平均时延确只有,而当发包间隔时间为时,端到端的平均时延为,是间隔为时的倍。从总体分析不难得出,网络在发包率增加时网络端到端平均时延增加,并且在节点发送数据包间隔时间为及以上时延迟最为明显,AODV路由协议的可用性降低。 3. 路由协议开销 图4-11 不同发包率下路由协议开销 路由开销还受到业务源发包率的影响,业务源发包率增加,路由开销增大。从图4-11可以看出发在网络节点数据包发送间隔时间为时路由协议开销最小,只有;而间隔时间为1s时开销较大,达到了。在发包率增加时网络的路由协议开销降低说明了发包率增加时使用AODV路由协议的网络拥塞程度降低,AODV路由协议稳定性增强。 4. 平均跳数 图4-12 不同发包率下平均路由跳数 从图4-12可以看出,在网络节点数据包发送间隔时间增加时,网络的平均路由跳数明显增加。当网络节点发送数据包间隔时间为时网络的平均路由跳数最低,只有;在间隔时间为1s时,虽然平均跳数增加到最大,但平均跳数只有。网络在发包率增加时平均路由跳数变化较小,说明AODV路由协议的网络拓扑结构在节点发包率增加时适应性较好,网络的路由效率变化不大,AODV路由协议能适应数据流量的变化。 5. 结论 从以上数据和分析可以得出,随着网络节点发送数据包间隔时间增大时,即网络节点发包率降低时,网络的端到端平均时延降低,投递率、路由协议开销和平均跳数都随之增加。网络性能指标的变化说明在网络节点发包率降低时网络的可靠性有所增加,网络可用性增强,但是网络路由协议开销随之增加,表明网络的拥塞增加、电源效率下降。此外,网络的路由效率随着发包率的降低而降低。综合上述分析,AODV路由协议对发包率的变化有着较小幅度的变化,但是AODV路由协议能有很好的适应,其性能变现良好。 4.4 仿真分析结论 在三种不同网络场景下进行仿真分析,得出了AODV路由协议分别在三种场景中的性能指标的变化,从而得出了网络规模大小、网络节点移动速度和数据包发送率对网络协议性能的影响。下面综合分析AODV路由协议的仿真结果。 在网络协议性能指标中,投递率体现出数据传输的可靠性;端到端平均时延反映了网络是否通畅,体现了网络的可用性;归一化路由协议开销反映了网络的拥塞程度和节点电源的效率;平均跳数反映了网络拓扑结构、节点通信范围及路由效率。 在网络规模较大时,仿真性能指标的投递率和归一化路由协议开销变差,但是变化幅度较小,网络的可靠性降低,并且网络的整体稳定性变差,网络因协议开销增大而影响移动设备的电源效率;平均路由跳数的减小和时延的降低体现出AODV路由协议的网络在网络规模增大时路由可用性反而更好、路由效率更高,综合体现了AODV路由协议对网络规模的适应性好。在网络节点移动速度增加时,网络对节 点移动速度改变较为敏感,四个性能指标均变差,在速度较低(速度低于60m/s)时变化幅度较小,说明此时的网络各项指标都表现良好,在节点静止时通信质量最好;在节点移动速度达到60m/s时性能指标下降幅度最大,网络的可靠性、可用性、路由效率和网络拥塞程度明显变差,因此为了保证网络通信质量,节点速度应限制在60m/s以下。在网络节点发包率增加时,仿真性能指标中的数据包投递率和端到端平均时延变差,网络的可靠性和路由的可用性降低,但是这两个参数变化幅度较小,网络性能仍处于较好状态;但是在发包间隔为秒时性能指标变化最大,在使用中应注意数据包发送速率应适当控制,否则网络会因数据流量过大而造成时延增大和投递率降低,网络的可靠性和使用性得不到保障。 从以上分析可以看出节点移动速度对使用AODV路由协议的网络的性能影响最大,其次是发包率,影响最小的是网络规模大小。AODV路由协议较适合大规模的网络环境,在数据包发送率较高的网络也能较好适应,但是AODV路有协议在节点高速移动的环境中性能较差。因此在AODV路由协议使用时应注意网络节点移动速度的限制,最好限制在60m/s以内,并且对网络数据包发送间隔控制在秒内,使网络能拥有更好的通信质量。 结 论 随着科技的进步,移动无线通信设备迅速流行,用户对无线通讯的需求也随之增长,从而无线自组网络得到了推广和不断的完善。为了实现这种无线自组网络通信,如AODV等路由协议被开发出来。AODV是设计用于Ad hoc移动网络,它允许任何时候有路由需求的时候,用户可以发现和维持到网络中其他用户路由。本文对AODV路由协议做了详细概述,并利用NS2仿真软件对协议进行仿真和分析。 在Ad hoc网络中,无线节点之间相互平等,每个节点都装配有无线收发天线,通过IEEE 无线接入技术实现通信,节点在其周围形成一个无线覆盖区域,在此区域内的节点可与其它节点的通信。AODV路由协议作为Ad hoc网络中代表性的按需路由协议,在网络节点移动、加入或离开网络而导致动态拓扑结构变化时能即时更新路由结构和路由信息,保证网络节点间有效的即时通信。 Ad hoc网路由协议的目标是快速、准确、高效、可扩展性好,因此本文就Ad hoc网中的AODV路由协议的基本工作原理进行详细分析,在理论上分析AODV路由协议性能。然后,在windows XP环境下通过在cygwin平台上搭建NS2,对AODV路由协议进行仿真,在仿真结果中较细致的分析了整个网络在通信过程中数据包投递率、平均端到端时延、归一化路由协议开销和平均路由跳数这四个性能指标,最后根据实际仿真结果得出AODV路由协议在实际应用中的干扰因素。这些工作为实际系统中应用AODV路由协议提供了较大的参考价值。 致 谢 在我毕业论文研究期间,得到了很多老师和同学的大力支持和帮助。 首先,我要感谢的是我的导师郑轶老师,在我的论文写作中, 老师自始自终都给予我启发、教诲和帮助。正是他的悉心指导,才使得我的毕业论文能够顺利进行,郑轶老师严谨的治学态度和渊博的知识让我在学业上获益匪浅。在此,谨向郑轶老师表示衷心的感谢。 其次,我要感谢西南交大峨眉校区的领导,在我的论文写作中给我提供了很多支持和帮助。 另外我还要感谢计算机与通信工程系的全体老师,感谢08通信的全体同学。在你们的帮助、鼓励和支持下,我的学业才得以顺利完成。 最后,再次对关心、帮助我的老师,同学和家人表示衷心的感谢。 参考文献 [1] 赵志峰.Ad Hoc网络.210016 [2] 孙学梅.Ad hoc网络的移动管理及其路由协议的研究.天津大学,2004 [3] 全武.Ad Hoc无线网络及其路由选择协议.100081 [4] Elizabeth . Review of Current Routing Protocols for Ad Hoc Mobile Wireless Networks[J].IEEE Personal Communications Magazine,1999(4) [5] Josh Broch. A Performance Comparison of Multi-Hop Wireless Ad Hoc Network Routing Protocols[C].1998 [6] . Network Working Group Request for [7] 张蕊.Ad Hoc路由协议解析.123000 [8] . Ad-hoc On Demand Distance Vector Routing[C].1999 [9] PERKINS Charles E. Ad hoc on demand distance vector routing. [10] 秦华.AODV可靠路由研究.100022 [11] 臧婉瑜.按需式ad hoc移动网络路由协议的研究进展.210093 [12] 郑丽娜.无线ad hoc网络路由协议及性能分析 [13] 李俭兵.NS2的Ad hoc网络AODV协议的仿真.400065 [14] 刘洛琨.AODV与DSDV路由协议性能仿真与比较.710072 [15] 张蕊.AODV协议性能仿真分析.123000 [16] 刘俊.基于NS的网络仿真探讨[J].计算机应用研究,2002 [17] 陈敏.OPNET网络仿真.清华大学出版社,2004 [18] 朱西平.基于不同发送速率下移动自组网AODV路由协议的性能比较分 析.610031 [19] 许浩敏.基于Ns2的移动Ad Hoc网络路由协议的仿真与改进.中山大学学 刊,2008 [20] 郑丽娜.移动Ad Hoc网络AODV路由协议分析和改进.山东大学学报,2004 [21] 金海军.Ad Hoc网络中AODV路由协议的优化.计算机系统应用,2008(12) [22] 夏丹丹.基于NS2的AODV改进协议仿真实现.微计算机信息,2008(24) 因篇幅问题不能全部显示,请点此查看更多更全内容