无线自组织网络aodv协议仿真研究内容摘要:
MEOUT值。 中间节点回复的RREP主要字段设置如下:“目的节点口地址”设为目的节点口地址,“目的序列号”设为节点路由表项中存储的目的序列号,“源节点口地址”设为产生RREQ的源节点口地址,“跳数”设为自己到达目的节点的跳数值,RREP里的生存期域是由路由表的过期时间减去当前时间计算得来的。 无偿RREP的主要字段设置如下:“目的节点口地址”设为产生RREQ请求的节点的IP地址,“目的序列号”设为RREQ中的源节点序列号,“源节点口地址”设为RREQ中的目的节点IP地址,“跳数”设为该中间节点到源节点的跳数值,“生存时间”设为:中间节点所知的,通往RREQ发起者路由的剩余生存期。 ⑤回复了RREP后节点就可丢弃已处理过的RREQ。 (3) 路由回复的处理与转发①当节点收到RREP消息时,它首先建立或更新没有有效序列号的到上一跳的路由。 ②然后,将RREP中的“跳数加1,得到新跳数值。 ③接下来,若不存在一条指向目的节点的路由,则创建一条到达目的节点的正向路由。 否则,看节点路由表中该正向路由是否需要更新,是则给予更新。 己经存在的路由表项在下面几种情况下会进行更新:现有表项中的序列号已经被标志为无效;RREP信息里的目的序列号比该节点己知的目的序列号大并且已知目的序列号的是有效的;序列号相同,但是路由己经被标志为不活跃;序列号相同,但新跳数值比现有表项中的跳数值小。 ④若当前节点不是源节点,则找出路由表中通向源节点的反向路由(在处理RREQ时已建立),节点根据反向路由的表项信息,决定接下来将RREP单播传给哪个节点。 若当前节点是源节点,它就可立即使用该正向路由来进行数据包的发送。 路由维护路由维护的方式分为邻居发现和链路层反馈两种。 邻居发现是节点周期性的广播TTL=1的HELLO广播报文,收到报文的节点知道发送者是其邻居,这样就维护和其邻居的本地互连性,HELLO报文格式和RREP报文格式相同。 如果在一定时间内,节点没有收到邻居的HELLO报文,并且路由表中存在以该邻居作为下一跳的路由表项,节点就会广播RERR报文。 链路层反馈是当转发数据报文时,如果在链路层收到下一跳节点路由信息里通告目的节点不可达的报文,即下一跳没有通往目的节点的路由,则表明路由中断,根据中断节点离源节点和目的节点跳数的比较来选择进行本地恢复或广播RERR报文。 在下面三种情况下,节点会发送RERR报文:1) 邻居发现时,当邻居不可达时,遍历路由表找到所有以该邻居作为下一跳的路由表项,构造RERR报文,把这些路由表项中的目的地址、序号依次放入RERR报文的不可达目的节点地址数组、序号数组中,然后广播此报文;2) 转发数据报文时,存在到目的节点的路由,但其标志为DOWN,说明此路由表项过期,构造RERR报文,把这个路由表项中的目的节点地址和序号放入报文不可达目的节点地址数组和不可达目的节点序号数组中,并丢弃数据报文;3) 转发数据报文时,存在到目的节点的路由;其标志为UP,但实际转发时,收到链路层的不可达报文,如果当前节点到目的节点的跳数大于到源节点的跳数,会广播路由错误报文,这是通过链路层反馈得到邻居节点不可达信息,采用和第一种情况相同的方式构造RERR报文。 收到RERR报文的节点,对报文中每个不可达目的节点,在路由表中查找以不可达目的节点为目的节点并且以RERR报文发送者作为下一跳的路由表项,把路由标志置为DOWN状态,并判断路由表项的前向节点地址是否为空,如果不为空,则把这个不可达目的节点信息放入新构造的RERR报文中。 只有当使用一条状态为UP的路由表项转发报文失败时,并且当前节点到目的节点的跳数小于到源节点的跳数,才进行本地恢复。 当前节点把转发失败的数据报文插入报文缓存队列中,并把使用到的那个路由表项置为REPAIR状态,然后广播RREQ报文,同时开启一个本地恢复定时器,如果在定时器到期时,当前节点仍然没有收到RREP报文,则会把使用的路由表项置为DOWN。 如果收到RREP报文,则说明到目的节点的路由恢复。 当中断节点发送RREQ报文时,原来路径中的上一跳节点和下一跳节点由于具有到中断目的节点的活跃路由,都会发送RREP报文。 根据收到RREP报文时更新到目的节点路由的条件3)得知,为了消除回环,只有当从新路径比原来路径到失败目的节点的跳数小时,才接受RREP报文。 AODV协议的流程图可用图23表示:图23 AODV协议的流程图 AODV路由建立和维持举例如图24所示,有8个编号由1到8的node,当source有TCP的资料要传送时,AODV会将RREQ的信息广播出去,中间的node第一次收到RREQ就会再加以广播出去,并将RREQ的org IP填到routing table。 这个routing table在RREP送回source时会用到,如果已经收到过相同的RREQ,则会将RREQ丢弃掉。 图24 收到RREQ后各个node的routing table改变的情形当destination收到RREQ,回送RREP的信息给source,当中间的点收到RREP时就会将RREP的dst IP填到routing table的destination,将RREP的org IP填到routing table的next hop建立routing table,并更新RREP的org IP为自己的IP。 如此路径上的点都知道要到destination的next hop是哪个node,如图25所示。 图25 收到RREP后各个node的routing table改变的情形当node3检测到断线,node3会判断自己离destination的hop数是不是小于1/3的network diameter,此为AODV中的参数,会随着网络的大小而不同,如果小于1/3的network diameter则会启动local repair的机制,会从node3将RREQ的信息广播出去,并且把source传来的packet buffer在node3,直到收到RREP,才把buffer的packet送出去。 但是经过一段时间而一直没有收到RERR的信息,则表示local repair失败,会清除buffer的packet,并送回RREP的信息给source。 反之,如果大于1/3的network diameter的话则会传出RERR的信息给他的上游node和source告知断线,收到RERR的node会将Unreachable Destination从routing entry删除,当source收到RERR如果AODV的queue中有packet要传送的话,则会发出RREQ的信息区重新找寻路径,如图26所示。 图26 node4移动后由node3进行local repair之后routing table改变的情形 本章小结本章是对AODV协议进行研究的重点内容,在这一章中,分为五个部分来分析AODV协议,第一部分是AODV路由协议基本原理,第二部分是AODV路由表结构,第三部分是AODV路由协议消息控制帧,分别包括路由请求RREQ,路由应答RREP和路由错误RERR消息,第四部分是AODV路由算法的详细过程,主要由路由发现过程和路由维护过程,第五部分用举例的方式来更形象地说明了AODV协议的路由建立和保持。 3 AODV路由协议仿真研究网络仿真是进行网络技术研究的一种基本手段。 在新技术的研究过程中,由于各种原因,实际网络系统的实现往往是代价较高的或是不现实的。 这种情况下,仿真就成了最佳可供选择的测试、评估和验证手段之一。 网络仿真有着周期小、成本低的特点,而且可以使研究者更专注自己研究的部分而不必为系统其它部分耗费过多精力。 典型的用于Ad Hoc网络研究的网络仿真器主要有NS2[911],OPNET,其中OPNET是商业软件,价格昂贵,而NS2属于免费开源软件,被世界各国的网络研究者广泛使用,在国际学术上享有很高的声誉。 本论文选择免费开源软件NS2。 NS2仿真平台 NS2简介NS2,即Network Simulator Version 2,是面向对象的、离散事件驱动的网络环境模拟器,主要用于解决网络研究方面的问题[12]。 NS2提供了在无线或有线网络上的TCP、路由、多播等多种协议的模拟。 NS2采用C++和Otcl两种语言共同工作[13]。 一方面,具体的协议实现需要一种系统编程语言,它能有效地处理字节、报头和算法,其关键是整个协议的运行时间;另一方面,网络参数和仿真场景关心的是收发功率、传输速率、节点和拓扑生成等配置性工作,其模型建立的配置时间显得尤为重要。 C++是一种编译语言,编译时由编译器一次性生成可执行代码,运行速度较快,但每改动一次都需要重新编译,比较费时;而Otcl是一种脚本解释语言,运行时由解释器逐行地解释,方便修改,无需重新编译,但运行效率低。 NS2通过使用这两种语言的对象分裂模型来提高效率,C++运行速度快且不易改变,因而它适合于实现具体协议;Otcl运行较慢,但可以交互的进行改变,适合用来做仿真环境配置。 NS2内核的层次结构如图31所示。 图31 NS内核的类层次结构NS2仿真器用到了六种Tcl类,它们是:(1)Tcl类:封装TOtcl解释器实例,向外提供方法(methods)来访问解释器,①获得Tcl实例的一个参考;②过解释器激活otcl过程;③返回结果;④报告错误状态:⑤存储和查找Tcl对象。 (2) Instvar类:定义了一些方法和机制,在编译类结构对象的成员变量和对应的解释类结构对象的成员变量之间建立映射,使两类变量一致共享。 (3)Tclclass类:把用户通过类Tclobject在解释器中建立的类结构映射至I]NS编译类结构,提供方法来实例化新的对象。 (4) Tclobjeet类:是所有仿真对象的基类。 封装了绑定、跟踪和对相关命令的调用机制。 (5) Tclmand类:提供一种机制使NS内核向解释器输出简单的命令。 (6) EmbededTcl类:允许用户以编译代码或解释代码来扩展NS功能。 NS2仿真环境的搭建VMware Workstation软件允许操作系统和应用程序在一台虚拟机内部运行。 在 VMware Workstation 中,可以在一个窗口中运行一台虚拟机,这个虚拟机可以加载自己的操作系统。 在Windows平台上按照虚拟机软件VMware Workstation ,在该虚拟机上新建客户机并安装了Ubuntu ,最后还需要安装NSG2[14]、gnuplot[15]等相关的仿真所需工具。 AODV路由协议的实现与NS2仿真 仿真性能指标及场景参数的确立参照IETF RFC2501[16] (移动专用网:路由协议性能问题和评估考虑)的规定,通常用端到端的分组投递率、端到端的平均延迟(delay)这两个指标用来对仿真结果进行分析,估算各协议的性能[17]:1)分组投递率分组投递率:即应用层目的端接收的分组数目与源端发送的分组数目之比。 描述的是通过应用层观察到的丢失率,又反映了网络所支持的最大吞吐量。 它是路由协议完整性和正确性的指标。 分组投递率=接收分组数/发送分组数=(发送分组数丢弃分组数)/发送分组数2)端到端延迟端到端时延主要包括路由查找时延、数据包在接口队列中的等待时延、传输时延及MAC层的重传时延,这个参数很好地表明了路由有效性。 在网络通信中,尤其对于语音数据包的传输而言,端到端时延太大会严重影响通信质量。 端到端延迟=接收到数据包的时间发送数据包的时间本文使用端到端的分组投递率、端到端的延迟(delay) AODV协议的性能评价指标。 分组投递率是评估路由协议的一个重要参数,它可以反映网络所能支持的最大吞吐量,从而在一定程度上刻画了协议的完整性和正确性。 对于路由协议要求具有较小的端到端的延迟;具有较高的成功分组投递率。 本文以智能家居系统为Ad hoc网络的应用背景,模拟一般智能家居系统中无线传感器网络节点分布结构建立仿真模型,设定网络节点数为11个;通常在智能家居室内系统中,大型家用电器即部分网络节点的移动并不频繁,而是个别网络节点,比如个人终端,会因家庭主人的移动而四处移动,设定移动节点数为1个;同时在智能家居室内系统中,传送的数据量也不会特别大,大多是一些控制信号, 设定两个cbr数据源(其中一个移动)。 另外,为避免修改节点传输距离,可将仿真场景大小、移动节点移动速率同时增大到适配NS2中默认节点传输距离,设定场景大小为500*400m,移动速率为5m/s,最终建立的仿真场景如图32所示。 图32 仿真场景图 使用NS2进行仿真自20世纪70年代美军DARPA资助研究的分组无线网项目开展以来,国内外许多研究人员从不同角度提出了一系列的Ad Hoc网络路由协议。 但目前移动自组网中路由协议通常根据路由发现驱动模式策略划分,分为表驱动路由协议(Table Driven ProtocolS)、按需驱动路由(Source—Initiated OnDemand Protocols)和混合路由协议。 在本章将把AODV协议与表驱动路由协议中比较典型的DSDV协议进行性能对比。 网络仿真的主要仿真参数如下:(1) 初始仿真参数set val(chan) Channel/WirelessChannel。 channel typeset val(prop) Propagation/TwoRayGround。 radiopropagation modelset val(netif) Phy/WirelessPhy。 network interface typeset val(mac) Mac/802_11。 MAC typeset val(ifq) Queue/DropTail/PriQueue。 interface queue typeset val(ll) LL。 link layer typeset val(ant) Ant。无线自组织网络aodv协议仿真研究
相关推荐
1、农业技术全集之植,)食用菌因品系不同,栽培方式各有所异,一般可分为三大类 1. 段木栽培法。 就是将天然木料砍伐下来,经过简单处理后直接接种,培养管理。 适合栽培的食用菌有香菇、银耳、黑木耳、毛木耳、平菇、滑菇等木生食用菌。 2粪草栽培法。 它是利用禽畜粪便及各种秸秆进行堆制发酵,作为培养料,进行接种栽培的,如双孢蘑菇、草菇、大肥菇等草生、粪生食用菌。 3代料栽培法。
来很可能会提出来的要求,这样做的目的是在设计过程中 对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行一些扩充和修改。 本软件虽然能够捕获到本网段的数据,并可以对捕获的数据进行简单的分析,还可以进行指定对象的监听和将结果显示出来等功能,但在实际的运用中,用户肯定会遇到更多的问题,以下是对本软件的扩充性能的一些初步预计: ( 1)自动获取本机和网关的 IP 和 MAC地址; (
菇“怪胎”早预防畸形菇通风不顺畅、菇室二氧化碳含量超过 ,易出现畸形菇。 出菇部位过深,在粗土缝间长出的菇也往往呈畸形。 应重点注意菇房的通风换气。 水锈斑菇菇房内及培养料表面喷水后没有及时通风换气,菇房湿度过大,蘑菇表面出现小水滴,时间一长,会形成铁锈色的斑点。 所以,每次喷水后应打开门窗 30 分钟至 60 分钟通风换气。 空根白心菇喷水太少,覆土层较干燥,子实体得不到充足的水分
显示被控发光二极管的序号。 受控电器电源开关的设计 由于本设计无法使用 6 个家用电器开关作为受控开关 ,故用 6 个发光二极管来代替 .其中接端口 的二极管作为可调节亮度的灯 .为了保证发光二极管安全正常工作 ,特取 1kΩ电阻作为限流电阻 . 设计电路图如下 : 21 图 调光电路设计 晶体三极管主要用于放大电路中起放大 作用, 本设计采用的是一个 9012 三极管,为了得到更大的放大倍数
户市场的现状而言,我想用 困惑和硝烟并存 来形容。 对于门户实施的主体的 CIO们来说,他们更多的是困惑:他们害怕 为了使用这个门而重建一所房子 ,他们不仅要考虑不同的产品套件的产品成熟度、技术风险和应用风险,还要考虑到企业现有的应用、系统以及员工的工作习惯、部门的经济利益等等,要进行较多的权衡与折衷实在是困惑。 而对于提供企业门户套件或解决方案的国内外厂商,他们背后则在进 行一场没有硝烟的战争