大学毕业论文-—基于aodv的无线传感器路由协议的研究.doc

上传人:知****量 文档编号:91603187 上传时间:2023-05-27 格式:DOC 页数:39 大小:778.50KB
返回 下载 相关 举报
大学毕业论文-—基于aodv的无线传感器路由协议的研究.doc_第1页
第1页 / 共39页
大学毕业论文-—基于aodv的无线传感器路由协议的研究.doc_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《大学毕业论文-—基于aodv的无线传感器路由协议的研究.doc》由会员分享,可在线阅读,更多相关《大学毕业论文-—基于aodv的无线传感器路由协议的研究.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 本科毕业设计说明书(论文) 第 39 页 共 39 页1 绪论1.1 研究背景 随着无线通讯技术,嵌入式技术的逐渐成熟,网络系统不在单一化,而是形成一种由多个具有传感和通信功能的传感器连接设备构成的新型网络无线传感器网络(Wireless Sensor Network,WSN),并且该网络形式已然起人们极大关注1。无线传感器网络结合传感器技术,信息技术,分布式处理,嵌入式计算机和通信技术,使其能够协助并对分布区域内的信息进行的感知、采集、检测,获取详细和准确的信息,将信息传输到用户,以满足用户的需求。无线传感器网络利用传感器节点对周边环境进行震动、雷达、热、红外等信号的监测,来获取温度、光强

2、度、物体的大小、压力、速度和方向等目标属性,然后各个节点之间协同合作,完成数据的感知采集和处理,发送给用户。它具备以下优势:网络覆盖区域广,部署比较灵活;节点分布密集,靠近目标区域,可实现多方位和高精度的信息获取;低成本,冗余网络设计,保证网络的高可靠性;分布式自组织网络结构,支持并发访问和任务的实现。无线传感器网络具有非常广阔的应用前景,可广泛应用于军事,环境监测,目标跟踪,医疗,智能家居等诸多方面。其研究和发展涉及国家安全,经济发展等重大方面,因此近年来,无线传感器网络的应用引起了广泛的国际关注和投资。1.2 国内外研究前景无线传感器网络作为一种新的计算机模型,以用于促进社会进步和科技开发

3、,其研究已涉及到国家的经济和社会安全,成为国际竞争,新的制高点,因此引起世界各地的工业部门军事部门的极大关注。英特尔,微软等信息产业巨头也设立或启动相应的行动计划。美国国防部和各军事部门对无线传感器网络给予高度重视,把无线传感器网络作为一个重要研究领域,设立了一系列的军事无线传感器网络研究项目。许多国家已经纷纷展开了该领域的研究。近年来,中国已开始重视无线传感器网络技术研究。国家自然科学基金资助了无线传感器网络研究项目,包括重点工程和表面工程。“中国在未来20年技术预见研究”报告中,在传感器网络方面的技术课题达到了7个。我国关于无线传感器网络的应用方面的研究起步略晚,但目前已经越来越受到重视,

4、正逐渐成为热点,并已开展有关于该领域的研究,其研究对社会、经济有着长远的战略性意义。1.3 论文主要的内容及结构本文首先对无线传感器网络路由协议AODV的原理进行了讨论,并进一步阐述了其实现方法。然后,对它的传输时延,平均时延,分组投递率,路由发现时间进行研究。并在此基础上把AODV协议与DSDV协议从性能上进行了比较。全部章节如下:第一章简单介绍了无线传感器网络的背景,及网内外研究现状和简单阐述了本论文的章节安排。第二章对无线传感器网络,包括其结构和特点进行了概述。第三章对无线传感器网络路由协议进行了分类和比较,并进一步的阐述了AODV协议。第四章介绍了AODV路由协议来源,进一步阐述了路由

5、算法的原理和操作方法。第五章在NS-2平台上对AODV协议进行了仿真模拟,对其平均时延,分组投递率和路由发现时间进行研究。并在此基础上把AODV协议与DSDV协议从性能上进行了比较。2 无线传感器网络概述2.1 无线传感器网络的介绍无线传感器网络(Wireless Sensor Network,WSN)是一种新的科学技术网络,该研究始源于美国军方。无线传感器网络是由大量具有特殊作用的无线传感器节点,通过自组织的方式进行信息传递,互相协作完成特定功能的智能型网络2。它结合了微机电系统(Micro.Electron Mechanical System,MEMS),传感器技术,嵌入式计算技术,现代网

6、络及无线通信技术,通过集成微传感器对各类分布式信息处理技术和软件编程技术实时协作,对各种环境实时监控,将监测对象控制地区的采集到的数据聚集,通过自组织多跳网络的方式传送给用户终端,从而实现物理世界,计算机世界和人类世界社会的三元连接。无线传感器网络的应用有着广阔的发展前景,在工业,农业,交通,军事,医疗,空间监测,环境监测,抢险救灾,危险区域及其他重要领域有着实际的作用,因此近年在国内外引起了广泛的关注,并投入大量的资金。2.2 无线传感器网络系统及其协议的体系结构通常情况下,无线传感器网络体系结构如2.1所示,无线传感器网络中的各个部分分布着众多具有射频功能的传感器节点,并负责收集数据,并通

7、过无线传感器网络技术将数据发送到接收器节点汇聚节点(网关或基站),汇聚节点通过公共网络监控和管理中心(如Internet网络/卫星通信网络等)传达给用户,用户对收集到的数据处理和分析,作出判断或决定。图2.1 无线传感器网络体系结构与其他网络相同,无线传感器网络分层的网络通信协议的包括物理层,数据链路层,网络层,传输层和应用层,其协议结构2.2所示。物理层负责数据的抽样量化,信号的调制,发送和接收,即负责比特流的传输工作;数据链路层负责数据成帧,对帧实行监测,介质访问控制,差错控制,以减少传输节点间的冲突;网络层的任务,例如,实现数据传输,传感器和传感器,传感器和信息中心的通信;如果信息在内部

8、传递,不需要传输层,但从实际应用的角度来看,无线传感器网络和外部需要通讯传输数据,因此在无线传感器网络以数据基础的网络寻址到外部寻址,即完成数据格式的转换功能;在应用层,根据不同的应用需求,可以实现无线传感器网络的特殊用途的应用。和蜂窝网络、无线局域网等其它网络相比,无限传感器网络有上述显著的优点。根据其特点结合实际应用,无线传感器网络需要采取一种灵活的解决方案。在网络层,针对不同的应用需求,采用节能分布式路由算法和协议和数据融合算法。从图2.2可见,在无线传感器网络协议体系结构中定义了,如能源管理,拓扑管理的跨层管理技术和应用支持技术。应用支持技术分布式网络服务端口分布式网络管理接口应用层传

9、输层网络层数据链路层物理层能量管理拓扑管理QoS管理网络管理网络安全管理移动控制远程管理分层的网络通信协议无线传感器网络跨层管理技术图2.2 无线传感器网络协议体系结构2.3 无线传感器网络的特点无线传感器网络是一个“智能“网络,它具有一定的独特性。也正是因为这些特点,无线传感器网络有其自身的优势,也有许多问题需要解决,无论是对现在研究人员来说,还是对无线传感器网络在实际中的应用来说,都具有很大的挑战。无线传感器网络具有以下主要特点。(1) 传感器节点密度高,数目多,采用空间位置寻址4。在无线传感器网络中,为了保证网络上数据传输的可用性和可行性,因此需要节点的密度相对比较高。正因为存在大量的传

10、感器节点,网络一般不支持两个节点之间进行点对点通信,并且每个节点不存在唯一的标识符,故而采用空间位置寻址对数据进行传输。(2) 传感器节点计算能力和存储容量能源有限5。随着微型化传感器节点的产生,电池所能提供的能量越发的有限,并且由于节点分布的环境并不稳定,很难更换电池。所以如何限制节点能源的消耗就成为网络设计当中的瓶颈,它直接决定着网络使用的寿命。另一方面,传感器节点的存储容量小,低计算能力,数据存储不能复杂。因此,无线传感器网络的研究人员构成了挑战,他们必须设计简单,高效的无线传感器网络路由协议。(3) 具有自组织能力随着无线传感器网络能源需求增加,传感器节点可以工作和睡眠之间随时切换,由

11、于各种原因导致的故障或失效,或增加新的传感器网络节点,这些事件都会使得无线传感器网络的拓扑结构在使用中容易改变。此外,因为节点有移动性,必须更改网络的拓扑结构。基于网络的拓扑结构变异,无线传感器网络已经具有自我组织,自我配置功能。(4) 传感器节点具有数据融合能力在无线传感器网络中,由于存在大量的传感器节点,多个节点可能采集到相同类型的数据,因此,通常需要一些节点具有数据融合能力,可以将多个传感器的数据融合,然后发送给信息处理中心。数据融合可以减少冗余数据,从而减少在传输过程中的能量消耗,延长网络的寿命。3 无线传感器网络中的路由协议3.1 无线传感器网络路由协议的分类无线传感器网络路由协议的

12、分类延续了Ad Hoc网络的基本传统的分类方法,根据不同的角度可进行不同的分类。从路由发现策略的来看,可分为主动和被动两种类型的路由;从网络管理的逻辑结构可以分为,包括泛洪、SPIN、SAR和定向扩散在内的平面路由协议,和包括LEACH、TEEN、PEGAGIS和多层类聚算法在内的分层路由协议两类3。(1) 主动路由也称为表驱动路由(Table Driven),主动路由发现策略类似于传统的路由协议,节点周期性的广播路由信息包交换路由信息,主动寻找路线,而所有的网络节点都必须保持对所有节点路线,即主动路由协议,网络中的所有节点之间保持通常是源节点和目的节点的路由表,无论路线是否必要。主动式的路由

13、协议通常包括“邻居探测“和路由广播两个过程。(2) 被动路由又称为按需路由(On Demand)路由,和主动路由相反,被动路由认为在动态变化的网络中,没有必要维持到所有节点的路由信息,它只会在没有去目的节点路由时“按需“的路由发现。被动式的路由协议报文传输请求根据网络的传输请求,被动节点从源节点搜索到目的节点的路由。当没有传输请求数据包时,路由器是在安静的状态,并不需要相互交换路由信息。拓扑结构和路由表内容按需建立,它可能只是拓扑结构的一部分。(3) 平面路由平面结构是指网络中,每个节点在路由功能上的地位相同,通过本地业务和反馈信息生成路由,并没有引入分级管理机制。(4) 分层路由分层路由是平

14、面路由对应的路由协议。分层路由协议使用簇来分类传感器节点,即相邻节点集群的概念,每个群集有一个簇首。由簇首完成簇内通信,簇首节点汇聚簇内节点的信息,以减少交通量,并最终通过簇首节点将收集到的数据传递给终端节点。因此,无线传感器网络具有可扩展性,同时尽量避免了传感器节点的能量消耗,使网络的生命周期延长。针对这些特点,许多大学开始对无线传感器网络通信协议进行研究,提出了多种路由协议,主要是平面路由(如:FLooding协议、SPIN协议、SAR协议和DD协议)和分层聚类协议(如:LEACH协议,PEGAGIS协议,TEEN协议)6。如图3.1所示。平面路由分层聚类FloodingAODVSARDD

15、LEACHPEGAGISTEEN路由协议图3.1 无线传感器网络的路由协议3.2 表驱动路由与按需路由协议的比较卡耐基梅隆大学,Josh Broch等人以NS-2网络仿真工具为基础开发了无线移动网络仿真模块,并在相同的仿真环境分析DSDV,DSR和AODV协议进行性能比较,他们模拟节点具有低移动率,节点具有较高的移动率,节点移动慢三仿真环境10。他们的仿真结果是,在三种仿真环境下,被动路由协议(DSR和AODV)的性能都比表驱动路由(DSDV)好很多。在中等的流量负载下,DSR的性能要比AODV协议好,而在高负载的情况下AODV的性能高于DSR。产生这种结果的具体原因,主要是由于表驱动路由协议

16、可以使路由表比较准确的反映出网络的拓扑结构。一旦节点发送数据包,可以立即获取目的节点的路由,所以路由协议的时延较小,但该协议需要付出大量的路由控制包,造成更大路由开销。因此,在网络负载中等的情况下适于使用,在比较大的网络规模和移动性大的情况下不应使用。相反,按需路由协议并不需要周期性的维护不需要的路由,而是当需要获取路由的时候在发送数据请求数据包,因此所产生的路由控制信息比表驱动路由要少很多。但是由于数据在传输之前需要建立路由,所以存在一定的时延。故按需路由协议在节点移动不大的场合下比较适用。4 AODV协议4.1 AODV协议的来源DSDV协议DSDV是表驱动路由协议,由传统的Bellman

17、 . Ford(DBF)路由协议改善而成。在DSDV中,每个移动节点需要维护一个路由表。路由表条目包含目标节点、跳数、目的序列号,其中目的序列号主要是用于确定是否过时,避免路由回路分配。在DSDV使用序列号最高的路由,如果两个路由具有相同的序列号,那么选择最佳路线,就是最小跳数路由。4.2 AODV简述AODV协议是移动自组织网络MANET(Mobile Ad Hoc Network)应用最广泛的按需路由协议,采用最短路由选路,注重网络吞吐量和网络服务质量。无线传感器网络是MANET网络技术中一个主要应用领域,所以可以将AODV协议移植到WSN中。当网络拓扑发生变化,AODV协议快速收敛。计算

18、量比较小,占用较少的存储资源,能够自我修复短路,减少网络带宽。当源节点需要发送数据到目的节点,且源节点的路由表中没有到达目的节点的路由记录时,源节点将启动路由发现过程。AODV适用于资源受限的自组织无线网络,它不需要定时广播路由信息,节省有限的网络带宽,降低网络的控制开销。AODV中源节点和目的节点之间的通信分为三部分:(1)路由请求(2)路由应答(3)数据传输AODV算法中使用4种类型的控制分组:(1)Route Request (RREQ),路由请求分组(2)Route Reply (RREP),路由回复分组(3)Route Error (RERR),路由错误分组(4)Hello 分组AO

19、DV使用洪范(Flood)方式,从源节点广播RREQ请求进行路由发现。当源节点S要建立到目的节点D的路由时,源节点向周围相邻节点广播路由分组请求(RREQ),RREQ请求分组扩散到全网之后将建立所需路由。中间只有在第一次接收到该分组时提取RREQ请求分组中的目的节点与自身IP地址进行比较。如自身是目的节点,立即向源节点回复应答分组(RREP)。如自身不是目的节点,则提取RREQ请求分组中的源节点IP和广播ID判断是否转发过该分组。如已转发过,则丢弃该RREQ分组,若没有转发过,则将源节点的IP地址和广播ID写入路由请求记录表,并建立到源节点S的反向路由。同时,请求数据包RREQ跳数字段(Hop

20、 Count)值加1,然后转发RREQ给邻居节点。一旦RREQ分组到达目的节点D,或有“足够的新“路由到目的地节点D(“足够新“意味着这条路由相应的序列号(Sequence Number)大于或等于RREQ消息的序列号),该节点将按刚刚创建好的路线返回源节点S RREP分组,以单播的方式11。RREP应答分组会沿着中间节点建立好的反向路由单播到源节点。当源节点S接收到目的节点的RREP应答分组时,就可以通过建立好的正向路由向目的节点发送数据。图4.1和图4.2分别是AODV协议路由请求和路由应答过程的示意图。图4.1 源节点广播路由请求过程图4.2 目的节点单播路由应答过程图4.3为源节点建立

21、到目的节点路由的过程图4.4为路由建立后,监听的过程图4.3为源节点建立到目的节点路由的过程。路由建立后,中间节点会定时监听从邻居节点发来的Hello分组,如在定期时间内未收到来自下游邻居节点发送的Hello分组时,则判断路径发生断裂,并向上游节点单播路由错误分组RRER。当源节点接收到RRER分组后,将重新建立向目的节点的路由,发送一带有大于原先目的节点序列号的RREQ请求分组。另外,如与工作路由无关的节点移动或者断裂,应不影响到目的节点的路由。图4.4为路由建立后,监听的过程。4.3 AODV分组格式4.3.1 RREQ分组格式表4.1 RREQ分组分组格式分组包含以下的域:Type 1J

22、 加入标识符,标识是否为多播。R 修复标识符,标识是否为多播。G 非必要的RREP标识符,表明是否需要单播RREP分组和目的 节点IP地址给指定的节点。D 目的节点唯一性标识符,表明只有目的节点才对RREQ做出回应。U 未知序列号标识符,表明目的节点序列号当前未知。Reserved 设为0,接收时忽略。Hop Count 从源节点到当前节点所处理的RREQ的节点的跳数。RREQ ID 和源IP地址一起保证和标志该路由建立过程发送的RREQ分组的唯一性。Destination IP Address目的节点的IP地址。Destination Sequence Number源节点收到的最新的目的节点

23、序列号。Originator IP Address源节点的IP地址Originator Sequence Number源节点的序列号4.3.2 RREP 分组格式表4.2 RREP分组格式分组包含以下的域:Type 2R 修复标识符,在多播情况下使用的字段A 确认标识符,表明是否需要确认收到RREP分组Reserved 保留字段,设为0Prefix Sz 前缀长度,如果非零,说明指定的下一跳将被当作前缀相同的节点的目的节点。Hop Count 源节点到目的节点的跳数。Destination IP Address目的节点的IP地址Destination Sequence Number目的节点序列

24、号Originator IP Address源节点IP地址Lifetime 生存时间,收到RREP的节点认为保留该路径所需要的时间,以毫秒为单位。A标识位是在发送RREP链路不可靠或者信息单向传播时,进行设置,收到RREP的节点被期望返回一个RREP-ACK分组,格式如表4.4所示。4.3.3 RERR 分组格式表 4.3 RERR 分组格式分组包含以下的域:Type 3N 不删除标识,当节点实现本地链路修复时设置该位,并且上游的节点不应删除这条路径。Reserved 保留字段,设为0DestCount 不可达的节点的个数,至少为1Additional Unreachable Destinat

25、ion IP Address因链路中断而变得不可达的目的节点的IP地址Additional Unreachable Destination Sequence Number因链路中断而变得不可达的目的节点的序列号4.3.4 RREP-ACK分组格式表 4.4 RREP-ACK分组格式Type 4Reserved 保留字段,设为04.4 AODV路由算法的原理AODV路由协议是一种按需距离矢量路由,和表驱动路由协议不同,按需路由协议只有需要一个源节点到目的节点的路由,或者当一个节点想要加入一个多播组才进行路由发现12。AODV路由在Ad Hoc移动网络中单播,组播或广播的移动网络协议。当源节点需要

26、一条通往目的节点,将发起一个网络路由发现过程。当寻找到一条路径,或所有可能的路径已被检查后,路径发现过程完成。一旦路径建立,路由表将维持到不再需要该路径、该条路由失效或超过生存期。AODV路由查找使用广播机制。除了源路由,AODV协议还依靠中间节点动态创建路由表项。该协议借用DSDV中的目的序列号机制,每个节点维护一个单调递增序列号计算器,用它来标记在缓存中路由的新旧。4.5 AODV路由算法基本操作4.5.1 维护序列号一个节点只有在以下3种情况中会改变路由表项中的目的节点序列号:(1) 它自己本身就是目的节点;(2) 它收到了一个更新的有关目的节点序列号的信息。(3) 到目的节点的链路终止

27、或中断。目的序列号会在接收到RREQ,RREP或RERR中新的信息时更新。AODV依靠网络中的每个节点去保存和维护它的目的节点序列号,以保证没有环路。一个目的节点会在两种情况下增加它自己的序列号:(1) 当需要对同一个目的节点启动新的路由发现(route discovery)时,它必须增加它自己的序列号。这会防止与之前建立的到源节点的反向路径出现冲突。(2) 当目的节点即将发送的RREQ消息响应一个RREP,必须更新自己的序列号,使当前的RREQ分组的序列号和目的节点是序列号最大的一个13。为了保证关于目的节点的信息不会变得陈旧,节点比较当前的序列号和从分组中获得的序列号。这种比较必须使用32

28、位的有符号整数,这是为了实现序列号的轮转。如果新获得的序列号减去当前的序列号结果小于0,那么新获得的序列号就会被忽略。另一种会改变路由表项中目的节点序列号的情况是当去往下一跳的链路中断或终止时,节点会把相应的路由项置为无效,同时增加这些路由项的序列号。4.5.2 产生路由请求当目的节点未知、原路径失效或终止,且节点(即源节点)在需要发现路由的时候会发送RREQ分组。RREQ中的目的节点序列号域先设为最后所知道的序列号,若序列号未知,则必须设置未知序列号标识。节点自己的序列号在复制到RREQ中后自我增值。RREQ ID域设为最后使用的RREQ ID加一。跳数域设为0。广播RREQ消息前,源节点将

29、缓存的RREQ ID和自己的IP地址的PATH_DISCOVERY_TIME长时间,这样,当它从邻居节点接收到相同的RREQ分组,不要发送,处理重复14。当源节点期望能和目的节点进行双向通信时,源节点会设置G标识位。这样目的节点就能接收到反向路径的通报。一个源节点每秒内不应发送超过设置的请求分组带宽的RREQ。如果在等待了NET_TRAVERSAL_TIME毫秒后节点还没收到相关路由信息,节点会再次尝试发送RREQ,最多尝试RREQ_RETRIES次。为了减少网络的拥塞,同一个节点重复的请求会利用利用二元指数后退算法。即节点第一次发送RREQ时,等待NET_TRAVERSAL_TIME毫秒,随

30、后的每次尝试等待的时间都是前一次等待时间乘2。4.5.3 路由请求消息的控制传播为了防止的RREQ分布扩展至整个网络,源节点将使用扩展环式搜索技术。在这种技术,为源节点的RREQ分组的IP中初始化一个TTL=TTL_START,并设置收到RREP时间为RING_TRAVERSAL_TIME毫秒。用来计算RING_TRAVERSAL_TIME的TTL_VALUE设置为IP头中TTL的值。当RREQ超时,重发RREQ时,TTL增加TTL_INCREMENT。如此继续,直到TTL达到TTL_THRESHOLD,此后的重试中设TTL=NET_DIAMETER。每一次等待RREQ的计时时间都为RING_

31、TRAVERSAL_TIME,当需要重试的分组跨越整个Ad hoc网时,可以把TTL_START和TTL_INCREMENT都设为NET_DIAMETER。当需要对同一个目的节点启动新的路由发现时,RREQ中的TTL将被初始化,成为原有失效的跳数加上TTL_INCREMENT。一个过期的路由表项在DELETE_PERIOD的时间内都不能被擦除。另外还能够设置更长的擦除时间。任何一个正在等待RREQ的路由表项在2*NET_TRAVERSAL_TIME的时间内都不能被擦除。4.5.4 处理和转发路由请求当一个节点接收到RREQ消息时,它首先创建或更新没有有效的路由表项。然后查看在至少PATH_DI

32、SCOVERY_TIME是否收到相同的源IP地址和RREQ ID消息的RREQ分组,如果有的话,忽略目前收到的RREQ分组。当收到的RREQ不被忽略时,首先把RREQ中的跳数增1,然后在路由表中搜寻到源节点的反向路径,使用最长匹配原则,如果有需要,则创建新的反响路由表项,或者用RREQ中的源节点序列号更新原有路由表项。当反向路径被创建或更新时,将会执行下面的操作:如图4.5图所示。(1) 将RREQ消息源节点序号的和相对应的反向路由中的目的节点序列号作比较,如果前者比后者大,前者将取代后者。(2) 路由项的有效序列号域被设为真。(3) 路由项的下一条设为向该节点传送RREQ的节点,这个从IP头

33、部中的源地址IP中获得。不管何时收到一个RREQ,反向路由项的生存期都会被设为ExistingLifetime和MinimalLifetime中的较大者,其中MinimalLifetime=(当前时间+2*NET_TRAVERSAL_TIME.2*HopCount*NODE_TRAVERSAL_TIME).如果一个节点不产生一个RREP,且收到的RREQ的IP头中的TTL大于1,则这个节点向它的每一个接口用255.255.255.255作为目的地址广播RREQ。这些RREQ的TTL减1,而跳数则增1。最后,目的节点接收到RREQ分组设置为自己的节点和目的节点序列号中最大的序列号值。然而,即使收

34、到的RREQ目标节点序列,它比目前的保存自己的目标序列号大,也不能修改其保存的值。如果一个节点会产生RREP,则可忽略它收到的RREQ。注意,如果一个中间节点对每一个RREQ都作出回复,那么目的节点可能收不到任何路由发现的信息。在这种情况下,目标节点无法从RREQ分组中获取源节点的路由。这将导致目标节点也该发起路由发现过程。为了避免这种情况,当目的节点可能需要一条到源节点的路径时,源节点会设置RREQ中的G标志域。当一个节点收到设置了G域的RREQ,当它回复RREP给源节点时,它也必须同时单播一个非必要RREP给目的节点。图4.5 节点收到RREQ处理过程4.5.5 产生路由应答一个节点在以下

35、2种情况会产生RREP:(1) 它本身就是目的节点(2) 它有一个有效的路由到达目的节点,而路由表项的目标序号大于等于RREQ消息序列数目,且D标志未设置。当产生RREP时,节点复制RREQ中的目的节点IP地址和源节点序列号到RREP中的相应域中,其余的操作,视上述两种情况有细微的不同,下面将作仔细的说明。因为RREP是反向发送到源节点,因此在每一跳的过程中,跳数都会被增1。因此,当RREP到达源节点,源节点跳数表示到目的节点的距离。4.5.5.1 目的节点产生的RREP当节点本身是目的节点时,如果它自身的序列号增1后与RREQ中的序列号相等,则将自身序列号增1,否则,在产生RREP之前不改变

36、自身的序列号。然后目的节点把自己的序列号复制到RREP中,并把跳数设为0,把MY_ROUTE_TIMEOUT复制到RREP的生存期域中。每个节点都可以重新设置它们的MY_ROUTE_TIMEOUT值。4.5.5.2 中间节点产生的RREP当节点是中间节点时,它复制它所知道目的节点序列号到RREP中,并把它收到的RREQ中指示的上一跳节点添加到指向目的节点的路由项的前驱表中,而把去往目的节点的下一跳节点添加到指向源节点的反向路由项的前驱表中。最后,中间节点把目的节点的跳数复制到RREQ分组当中,而生存范围设置成路由项的到期时间减去当前时间。4.5.5.3 产生非必要RREP如果节点收到的RREQ

37、设置了G标志位,它必须单播一个被必要RREP给目的节点。非必要RREP包含了以下表中,如图4.5所示:跳数到源节点的跳数目的节点IP地址发送RREQ的源节点的IP地址目的节点序列号RREQ中的源节点序列号源节点IP地址RREQ中目的节点IP地址生存期到达RREQ的源节点的的路径的生存期图4.5 RREP内容注解RREP非必要,然后被发送到目的节点的下一跳,如果目标节点发送一个RREQ分组到源节点,而RREP分组对RREQ分组相同。而发往源节点的RREP不管RREQ有无设置G标志位都一样。4.5.6 接收和转发路由应答当一个节点收到RREP,它首先在路由表中搜寻到上一跳的路由项,如有需要,会创建

38、一条新的表项,但不包含有效的序列号。然后节点把RREP中的跳数增1,并称这个值为“新跳数”。如果去往目的节点的路径尚不存在则创建一条新的,否则把RREP中的目的节点序列号和已有的相比较。经过比较后,只有在以下几种情况中会更新已有的路由项:(1) 原路由项中的序列号被标志为无效;(2) RREP中的序列号大于原有的序列号;(3) 两个序列号相等,不过这条路径被标志为不活动的;(4) 序列号相等,但是新的跳数比原有的要小。如果去往的目的节点的路由项被创建或更新,会执行以下的操作:如图4.6所示。(1) 路径被标志为活跃的(2) 目的节点序列号被标志为有效的(3) 下一跳设为传来RREP的那个节点(

39、4) 跳数设为“新跳数”(5) 过期时间设为现在的时间加上RREP中的生存时间(6) 目的节点序列号设置成为RREP中的序列号如果当前节点不是RREP中的源节点,它会查询路由表以决定RREP的下一跳。如果节点发送的RREP的链路有错误或是单向的,节点会设置其中的A标志位,以使RREP的接收方会回复一个RREP-ACK。任何转发RREP的节点,都会把发送RREP的下一跳加入到去往目的节点的路由项前驱表中,在同一时间,修改源节点路径的生存期为现有的生存与(当前时间+ ACTIVE_ROUTE_TIMEOUT)的较大值。图4.6 节点收到RREP的处理过程4.5.7 单向链路上的操作当链路为单向的时

40、候,RREP的传送有可能会失败,如果源节点收不到RREP,在计时结束后,会重新尝试发起路由发现的过程。然而,这种情形可能一直重复而得不到任何改善,即使重复尝试仍然不能得到任何路径。在AODV中有对应纠正的操作,即节点只对第一个具有相同RREQ ID的RREQ做出回应,其他后续的RREQ都将被忽略。然而这又将产生新的问题,即第一个RREQ可能经过的路径中包含单向链路,但后续的RREQ可能经过双向链路到达,而它们将会被忽略。为了避免这种情况,当一个节点检测到一个RREP传输失败,它建立一个黑名单将刚刚传送的RREP的下一跳记录到其中。每个节点将忽略节点中黑名单所罗列的RREQ分组。黑名单中的节点在

41、经过BLACKLIST_TIMEOUT后会从名单中移除。RREP- ACK数据包不包含有关的信息的RREP。这个信息只是为了告诉发送方链路当前是双向的。4.5.8 Hello消息一个节点由当地广播Hello报文节点提供连接信息。每隔HELLO_INTERVAL毫秒,该节点将检查其是否在此期间发送了一个广播数据包,如果不是,它会广播TTL= 1的RREP,并称为Hello分组,它的格式如下设置,如下图4.7所示:Destination IP Address节点本身的IP地址Destination Sequence Number节点最新序列号Hop Count0LifetimeALLOWED_HE

42、LLO_LOSS*HELLO_INTERVAL图4.7 hello分组的格式一个节点通过监听来自邻居的分组来决定连通性。如果在过去DELETE_PERIOD时间之内,节点已经收到了邻居的数据包,然后ALLOWED_HELLO_LOSS* HELLO_INTERVAL毫秒从未收到任何来自这个邻居的数据包,它就会认为到该邻居的链路当前已经中断,接着就执行5.4.11中描述的操作。当一个节点收到邻居的一个Hello分组时,它会认为它有一条到达邻居活跃路径。如果这条路径已经存在,它会延长相应节点的生存期,如有必要,可至少设为ALLOWED_HELLO_LOSS*HELLO_INTERVAL,并复制He

43、llo分组中最新的目的节点序列号到相应路由项中。4.5.9 维护本地连接性节点应该持续监测活跃下一跳和在(ALLOWED_HELLO_LOSS*HELLO_INTERVAL)时间内接收到过Hello分组的邻居连通性。一个节点使用以下的链路或网络层机制来维护上述相关节点的连通性的准确信息。(1) 任何合适的链路层通知,例如每次给活跃下一跳发送数据包时IEEE 802.11提供的一些通知,可以用来判定链路连通性。还有例如链路层ACK的缺失,或发送RTS后收不到CTS,甚至于达到重传次数的最大值时,都提示了链路层的中断。(2) 如果没有可用的上述通知信息,使用被动通知的方法。即当预期下一跳会转发分组

44、时,监听尝试传送的信道,如果再NEXT_HOP_WAIT毫秒内监听不到传送或下一跳就是目的节点时,使用下面的其中一种方法来判定连通性:收到任何来自下一跳的分组;单播一个RREQ给下一跳,询问到下一跳的路径单播一个ICMP响应请求给下一跳如果使用上面的任何方法都不能监测到到达下一跳节点的链路,那么这条链路则被认定为是丢失的。4.5.10 RERR消息,路由过期和路由删除对路由错误和链路中断的处理一般包含下面几步:(1) 把现有的相关路径置为失效;(2) 列出受影响的的目的节点;(3) 判定有哪些邻居受影响;(4) 传送RERR给这些受影响的的邻居。RERR可以使用广播或单播方式发送,也可以分别多

45、次单播给前驱表中的节点。一个节点每秒不能产生超过RERR_RATELIMIT个RERR。一个节点在以下3种情况中会准备发送RERR:如图4.7所示。在发送数据时探测到一个往下一跳的链路中断,或者路径修复失败;如果收到一个发往无相关活跃路径的节点的数据包;如果节点收到来自邻居的RERR。对于情况和情况,节点首先会列出那些使用该下一跳的无法到达的目的节点列表。如果一个与子网相关的路由项变得不可达,那么将会对该子网的IP地址附加0前缀。对于情况,无法到达节点列表应由RERR中的目的节点组成。列表中的不可达目的节点可能也被其它邻居节点使用,因此节点会给相关节点发送新的RERR,这个RERR要包括不可达

46、目的节点列表里的前驱表不为空的节点。在发送RERR前,对不可达目的节点的路由项作以下处理:(1) 如果路由项存在且有效,则对于上面的情况、,把目的节点序列号增1,对于情况,直接把RERR中的序列号复制到路由项中。(2) 把相关路由项设为无效的;(3) 相关路由项生存期更新为当前时间加上DELETE_PERIOD。图4.7 RRER发送过程4.5.11 本地修复当链路中断,以及对目标节点的距离不超过请求设置的最大跳,在上游节点中断,可以选择本地修复这条链路。为了解决这个链路,节点增加目的节点的序列号,并广播一个到达目的节点的RREQ分组,这个RREQ的TTL被初始化为max(MIN_REPAIR

47、_TTL,0.5*#hops)+LOCAL_ADD_TTL,#hops的意思是当前节点到达不可达数据包源节点的跳数。在本地修复期间,所有发往相关目的节点的数据包应该被缓存。如果在路径发现周期结束后节点仍没收到RREP或者其他相关控制信息,它就会发送RERR。如果它收到了RREP,它首先比较新路径的跳数和原无效路径的跳数,如果新路径的跳数更大,节点将会发送设置了N标志位的RERR。当一个节点收到设置了N标志位的RERR,它必须不能删除到相关目的节点的路由项,唯一能做的就是转发RERR。当源节点收到RERR时,可能会选择重启路由发现。当链接被破坏,往往有多个目的节点的影响,但上游节点的链路数据包中断只为本地修复目的节点,其它的相关路径则被置为无效,但是同时可能会被置为是可修复的,但是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁