版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
典型的Ad-Hoc网络的每一个节点都是可以运动的,此种自组网络拓扑结构是动态变化的。移动的无线自组网最早萌发与军事通信领域,可以类比到相同的动通信领域,船舶、浮标、鱼排在海洋中的快速移动性可以组成多种多样的拓扑结构,这样的移动的无线自组织网络弥补了传统网络的不足,可以在浮标、鱼排的传感器数据采集、可以多船舶定位、扩大通信范围上有很大的发展前景。由于移动AdHoc网络是一种移动的、多跳的、自组织的网络,所以它会有以下一些特点ADDINNE.Ref.{FB933533-5E6C-481E-973F-49E6C3BAB2B0}[44]:一、具有变化的拓扑结构;二、由于网络拓扑结构随时间变化,所以每个网络节点转发的数据容量也随时间变化,因为节点与节点之间没有固定的链路,每条链路的带宽也是有大小之分的。三、网络节点的电源是有限的,电源不能够无限期的供电,这就会造成网络节点容易失效。四、无线AdHoc网络是移动的容易受到外界环境的干扰和破坏。无线AdHoc也是无线自组网络的一种,这种网络和Mesh网络的主要区别:一是在网络节点移动性方面,无线Mesh网络的网络节点是不能移动的或者移动性比较差,AdHoc的网络节点具有较强的移动性。在拓扑结构方面,Ad-Hoc网络的网络拓扑结构是动态变化的,因为无线Mesh网络的网络节点是静止的,一旦网络的节点布置好了,无线Mesh网络的拓扑结构是不变的。综合以上原因考虑,无线AdHoc网络的路径规划是比较复杂的,不仅仅要考虑网络所处的环境因素,更要考虑无线AdHoc的移动节点之间的相对运动。综合以上因素,在对无线AdHoc网络进行路由优化时应该充分考虑无线AdHoc的综合性能和网络的鲁棒性。在国内外主要无线AdHoc网络路由算法中主要提出了新的路由算法协议,主要有DSDV、WRP、AODV、DSR、TORA等比较通用的协议。目前已经实现的四种协议分别为DSDV、DSR、AODV、以及TORADSDV算法协议中,路由消息的交换发生在相邻的移动节点(例如该移动节点是在对方通信范围内的移动节点),路由更新可以是实时发布或者定期发布执行。当一个节点从一个邻居节点得到的路由信息会导致路由表的内容发生变化是=时,路由被更新。如果要发送的分组的目标节点路由信息未知,则节点会将改分组缓存起来,同时发送路查询消息,直接收到目标节点的路由答复消息。这些等待路由信息的分组的数量受缓存门限(maximumbuffersize)的控制,当缓存的分组超过这一门限时,分组将被丢弃。DSR代理会检查所有数据分组来获得源路由(source-router)信息,并根据这些信息转发分组。如果他在分组中,找不到路由信息,但自己已经知道了达到目的节点的路由,则会设置分组的源路由;否则它将分组缓存起来并向外发送路由查询消息(route-query)。路由查询消息总是那些不知道目的节点路由的分组所触发,且最初会被广播到所有邻居节点。那些能够提供到达目的节点路由的中继节点,或者目的节点自己,则会发送路由应答消息(route-reply)作为响应。TORA是一种基于链路反转算法(linkreversalalgorithm)的分式路由协议。NS中使用TORA时,每个节点为它的所有目标节点都运行一个独立的LORA拷贝。当节点需要到达某个目标节点的路由时,它就广播一个包含目的节点地址的查询消息。这个查询分组在网络中传播,知道被目标节点或者某个知道目标节点路由的中继节点所接收。接收到查询分组的节点就会广播一个更新消息,其中列出了该节点相对于目标节点的高度,随着消息在网络中传播,所有节点都按照它接收到的更新消息修改自己相对于该目标节点的高度,使得自己记录的高度始终比邻居节点的该高度值大(即目标节点高度为0,则其邻居节点相对于他的高度为1,邻居的邻居节点高度为2),这样做的结果是形成了从查询消息发起节点到目的节点的一系列有向链路。如果一个节点发现某个目的节点无法到达了,则他相对于该目标节点的高度设置为无穷大。当节点无法找到任何邻居节点相对于目标节点的高度为有限值时,他便启动新的路由发现过程。如果出现网络分离时,节点就会广播一个清除消息,重置所有路由状态,并删除无效的路由。AODV(Ad-HocOn-demandDistanceVectorRouting)是一种按需路由协议。当其中一个网络节点需要给网络中的其他节点发送数据时,如果没有达到目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。RREQ报文记录着源节点与目标节点的网络层地址,邻近节点收到RREQ,AODV算法发送RREQ消息过程如图4-3,首先判断目标节点是否是自己,如果是,则向发起节点发送RREP(路由回应),如果不是则首先在路由表中找到是否有到达目标节点的路由,如果有,则向源节点单薄RREP,否者继续转RREP进行查找。图4-3AODV算法网络节点发送RREQ消息过程AODV是DSR和DSDV协议的混合,它具有DSR的路由发现和路由维护功能,同时又使用了DSDV采用的逐级跳路由。节点也要查询给定目的节点的路由时会生成一个路由请求消息。中继节点在转发路由请求消息的同时,也建立起了一条他自己到达目的节点的反向路由。具有到达目的节点路由的节点在接受到路由请求消息后,会生成一个一个路由请求消息的之后,会生成一个路由应答消息,该消息包含了他到达目的节点的跳数。所有参与转发这个应答消息到源节点的中继节点也都建立了一条到达目的节点的转发路由。这条由源到目的之间各个节点建立起来的路由是一个逐级路由,只有在源节点处的路由才包含完整路由信息。如图4-1所示,这是路由发现的示意图。A节点是源节点,F是目的节点。当A源节点向在B、C两个节点发出请求路由信号时,只有B会生成一个路由响应。B、D之间要没有别的中间节点,所以D节点必然会响应B的请求,在D发出路由请求时,F在在D点的通信范围内,F目标节点就就会响应D节点。AODV算法寻找路由的原则是在源节点到目标节点的中间节点的跳数最少。图4-1路由发现示意图AODV的仿真实验本文通过MATLAB环境中设置50m*50m的仿真网络环境,设置节点的数量,设置节点的最大的运动速度为10m/s,节点传输距离为10m。通过设置不同的源节点和目标节点可以得出AODV算法中在无线自组网络中有较好的路由规划作用,可以有效地减少网络跳数。当网络节点的数量设置为50个时,在当设置1号节点是源节点时,50号节点时目标节点时,可以得到运行的仿真结果,源节点1到目的节点50的路径为:1-37-47-28-4-16-2-15-5,跳数为8,如图4-2所示。当网络节点的数量设置为75个源节点时,节点1到目的节点50的路径为:1-73-66-4-69-15-50,跳数为6,如图4-3所示。网络节点的数量设置为100个时,源节点1到目的节点50的路径为:1-65-80-7-44-50,跳数为5,如图4-3。所示当网络节点设置为125个时,源节点1到目的节点50的路径为:1-18-125-101-19-57-29-50,跳数为7,如图4-4所示。(1)图4-1显示的是50个网络节点的AODV算法仿真结果图4-150个网络节点的AODV算法路径寻优图4-2图4-4100个网络节点的AODV算法路径寻优图4-5125个网络节点的AODV算法仿真虽然AODV算法在路径寻优中可以减少源节点与目标的跳数,但依然存在一些不足,AODV算法最少要两个通信信道才能瞒住条件,AODV算法在路由寻优过程中,当链路中的某个网络节点失效时,又得按照重新建立新的路由规则,这样会增加网络源节点到目标节点的网络延时时间,降低网络的传输效率。网络节点与网络节点之间的跳数基于AODV路由协议在移动节点中的缺点,本文提出一种双向搜索路由的算法对路径进行规划。双向路由算法是比较常用的数据算法,它的原理是源节点和目标节点同时出发,如图4-4所示,源节点为1号节点,目标节点为15号节点。从一号节点出发,1号源节点按照通信范围内距离号源节点的欧式距离最短的原则,4号节点在按照通信范围内距离4号节点的欧式距离最短的原则找到6号节点,6号节点按照通信范围内距离6号节点的欧式距离最短的原则找到7号节点。从15号节点出发,15号节点按照通信范围内距离15号节点的欧式距离最短的原则找到14号节点,14号节点也按照通信范围内距离14号节点的欧式距离最短的原则找到8号节点,8号节点也按照通信范围内距离8号节点最短的原则找到7号节点;这种算法是有效的算法。图4-6双向搜索算法示意图从双向搜索法的原理出发分析,双向搜索算法比AODV算法路由建立的时间少,因为双向搜索发是从源起点和目标节点的两端出发,这样搜寻建立的路由时间比较短。双向搜索法不仅可以减少在路径寻优的时间,而且在性能上也有所提高。NS-2是一种网络仿真器,是NS的第二个版本。目前,经过几代科学家的努力,这款软件已经不断完善,已经成为一个比较受欢迎的网络仿真模拟器。NS-2是一个用C++语言编写、以Otcl解释器为前台,面向对象的模拟器。该模拟器支持C++的层次结构(也叫作编译层次)和Otcl解释器的相似层次结构(也称作解释层次)ADDINNE.Ref.{3EAF0083-3073-4690-8A7C-BAE1A0FA8EAF}[45]。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS-2可以用于仿真各种不同的IP网,已经实现的一些仿真有网络传输协议,比如TCP和UDP,业务源流量产生器ADDINNE.Ref.{1B1F3B26-9F0D-4EA3-9E52-8ADC01EC7D92}[46]。NS-2网络模拟器需要有两种不同类型的事情要做,NS-2使用C++和OTcl两种语言,通过这两种语言来满足两种需求。C++能够快速执行,使其适于具体协议的实现。OTcl执行得比较慢却可以迅速变化(交互式),使其成为模拟配置的理想对象。NS-2通过tclcl提供了两种语言的对象和变量同时出现的纽带。,C++适用于处理数据流里的每个分组OTcl适用配置、安装以及一次性的工作。OTcl是OjectTcl的缩写,它是在Tcl基础上面向对象的封装,是一种面向对象的脚本语言它主要包括以下几个类:TclOject类是解释和编译层次大多数其它类的基类。TclOject类中的每个对象都由用户从解释器中创建。编译层次中同时有一个与之对应的影子对象被创建。这两个对象相互紧密联系。TclClass类是一个纯虚类。从这个基类派生出来的类提供两种功能:构建与编译类层次镜像的解释类层次、提供实例化新TclOjects的方法。Tcl类封装是OTcl解释器真正的实例,并提出与解释器访问及通信的方法。该类提供了以下操作方法:一是获得Tcl实例的指针;二是解释调用OTcl过程三是取出结果返回给解释器;四是报告错误状态并统一的方法退出;五是存储并查找“TclObjects”六是获取对解释器的直接访问。下面对其中的两种方法的具体操作过程。获取Tcl类实例的指针:一个简单的实例在~tclcl/Tcl.cc中被声明为一个静态成员变量;程序员必须获取一个这个实例的指针,用来访问这个部分描述的其他方法。对该实例的访问需要的命令表达为:Tcl&tcl=Tcl::instance();调用OTcl过程:通过Tcl,一共有四种不同的方法来调用一个OTcl命令。他们在调用参数方面有着本质的区别ADDINNE.Ref.{051BDFD6-2B38-4FDA-9091-7921C275A8CD}[47]。每个函数传递一个字符串给解释器,然后解释器通过一个全局文本来识别这个字符串,如果解释器返回TCl_OK,则这些函数将会返回一个相应的OTcl过程。反过来,如果解释器返回TCL_ERROR,则这些函数将调用tkerror{}。用户可以重载(overload)这个过程,以便有选择地忽略某些类型的错误。具体方法如下:tcl.eval(char*s)调用Tcl_GlobalEval(),通过解释器执行s。Simulator类:NS-2的模拟器全都是在Tcl的Simulator类定义的,它提供了一套做模拟配置和选择用于驱动模拟的事件调度器类型的接口,当前模拟器有四种可用的调度器,其中每一种由不同的数据结构实现的。链表调度器是用链表结构来实现的堆栈调度器是靠堆栈的结构来实现的,时间队列调度器同时记录同月同日不同年的事件。实时调度器试图将事件的执行与实时同步。调度器先选取一个最早的事件执行,执行这个事件后进行下一个事件调度器所使用的时间是秒,当前的模拟器是单线程的,因此任意一个时刻只能对一个事件进行调度,如果在同一时刻有多个事件被调度。NS-2需要在cygwin的环境下虚拟处UNIX/Linuix环境下进行安装,NS-2必须在Unix/Linuix平台下运行,既可以采用windows+VMmare+NS的组合方式也可以采用Windows+cygwin+NS-2组合的方式,。本文采用是windows+VMmare+NS-2的组合方式安装虚拟机的。要在电脑上安装NS-2软件必须先在windows系统创建cygwin环境下运行,cygwin的具体过程如下:图4-5NS-2运行示意图无线模型本质上是由移动节点作为核心,并附加各种支持特性而成,以实现Ad-Hoc网络和无线局域等的仿真。移动节点类继承自节点类,因此一个基本的Node对象附加上无线和移动节点的功能就构成移动节点,这些附加在功能包括给定拓扑结构中进行移动的能力,以及通过无线信道接受和发送信号的能力。普通节点和移动节点之间最大的区别就是移动节点不是通过链路与其他节点或者其他移动节点相连节点。移动节点支持的四个协议通常有DSDV(DestinationSequenceDIstanceVector目的序列矢量)、AODV(AdhocOn-demandDistanceVectorAdhoc按需距离矢量)、TORA(TemporarilyorderedRoutingAlgorithm、临时按序路由算法)、DSR(DynamicSourceRouting)等路由协议无线模型的创建主要有Tcl脚本完成,具体可以分为以下步骤Step1:创建一个wireless.tcl文件Step2:设定模型的必须属性,如移动节点的数量、场景的面积大小移动节点的信道类型。Step3:建立Simulator的实例对象,赋值给nsStep4:打开一个名为wireless.tr的文件用来记录trace的数据,打开一个wireless.nam的文件用来记录nam的trace数据。Step5:建立一个拓扑对象,无线网络节点在拓扑边界以内运动Step6:确定模拟场景的大小,节点的参数包括节点的初始位置,节点的运动速度和运动方向Step7:调用一个s投票过程用来关闭两个trace文件。在完成以上7个步骤后,tcl创建的无线模型就创建好了。移动节点是最基本的NS节点对象,但是他有自己的特点移动性,以及在信道上发送和接受数据等特点使NS能够创建无线移动模拟环境。移动节点可以在一个三维的拓扑中运动,然而实际上第三维(Z轴)并没有被使用。这样移动节点就假设为总是在一个Z=0的二维平面运动,节点的三维作为(x,y,z=0)随着他的运动不断调整ADDINNE.Ref.{B130A412-73C4-4051-9C79-B243229D0E77}[48]。本中加入一些简单的语句,这些文件中就会包含详细的信息。NS-2网络仿真模拟器主要有对经典协议的仿真都是用NS-2。当然,也可以利用C++设计一套全新的路由算法。图4-6NS-2的仿真过程在本节中,可以设置50m*50m的场景大小,节点随机移动的速度最大值可以设置为10m/s,最小的速度为0m/s,暂停时间和仿真时间、为了对比结果,节点的停留时间可以设置为0秒,50秒,100秒,150秒,200秒,250秒,300秒等,由此对AODV路由协议和双向搜索法进行比较,场景通过setdest来生成,随机数据流文件由cbrgen工具生成。Setdest工具在NS-2中的具体格式如下:表4-1具体代码格式的含义num_of_nodespausetimeMaxspeedsimtimemaxx、maxy<outdir>/<scenario-file>仿真节点数节点运动时的停留时间节点运动的最大速度仿真时间运动的范围出场景文件所在的位置和文件名NS-2有两种具体文件记录仿真结果,一个是生成一个后缀名为**.trc的trace的文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油天然气开采安全生产管理技术方案
- 2026年留学顾问合同(1篇)
- 故事分享:绘声绘色的小故事小学主题班会课件
- 个人诚信履行承诺函9篇范文
- 健康堡垒科学预防六年级主题班会课件
- 团队激励与绩效考核设计指南
- 热包使用指南与护理要点
- 能源行业可再生能源利用与分析报告
- 团结友爱班小学主题班会课件
- 警惕交通安全守护生命之花小学主题班会课件
- 海蒂整本书课件
- 红楼梦章节阅读理解题集
- 环境规划与管理试题及答案
- 雨课堂在线学堂《美术鉴赏》单元考核测试答案
- 2025年宁夏区委党校在职研究生招生考试(政治理论)练习题及答案一
- 电池舱吊装专项施工方案
- 战斗机介绍教学课件
- 新疆园林植物养护课件
- 药厂化验室基础知识培训课件
- 教材选用与审查会议纪要范文
- 文件记录管理办法
评论
0/150
提交评论