[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc

上传人:sccc 文档编号:4561390 上传时间:2023-04-27 格式:DOC 页数:32 大小:447.50KB
返回 下载 相关 举报
[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc_第1页
第1页 / 共32页
[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc_第2页
第2页 / 共32页
[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc_第3页
第3页 / 共32页
[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc_第4页
第4页 / 共32页
[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc》由会员分享,可在线阅读,更多相关《[计算机硬件及网络]无线传感器网络路由协议的分析与评价.doc(32页珍藏版)》请在三一办公上搜索。

1、无线传感器网络路由协议的分析与评价数学计算机学院软件工程专业2012届 黑敏星摘 要:无线传感器网络综合了传感器技术、嵌入式计算技术、无线网络通信技术、分布式信息处理技术,能够实时监测和采集网络分布区域内的各种检测对象的信息,并发送给观测者。传感器网络具有硬件资源有限、动态拓扑、电源能量有限、无中心基站、多跳路由、以数据为中心等特点,能够应用于军事、环境检测、机械监控等领域。 本文首先概述了无线传感器网络的概念、特点、体系结构、协议栈、应用领域和关键技术。接着通过对无线传感器网络路由协议的分类,对几种典型的无线传感器网络路由协议进行了详细的介绍。最后对几种典型的协议在分类和性能上进行了比较。其

2、次,本文先对洪泛协议(MFlood)进行了简单的介绍,然后详细介绍了网络模拟器NS2,并且了解了NS2的层次结构、组成部分、NS2仿真模拟的步骤。最后,利用NS2对MFlood协议进行仿真,并由仿真得到的trace文件对MFlood协议的端到端延时、节点间的传说速率、延时的抖动率和网络吞吐量进行了分析。关键词:无线传感器网络;路由协议;MFlood;trace;NS2中图分类号:TP393无线传感器网络路由协议的分析与评价1 引言近年来,随着传感器技术、嵌入式计算技术、无线通信技术的快速发展,由具有感知能力、计算能力、通信能力的微型传感器自组织而成的无线传感器网络(WSN)引起了人们的极大关注

3、。国内外对无线传感器网络有着一些特定的研究。在国外,1996年,美国学者straser、Kiremidjian提出运用无线技术替代结构监测有线系统的思想,开辟了无线传感技术在结构监测领域中应用,并研制了一套实时的损伤识别结构健康监测系统:以上述学者的工作为基础,Lynch等运用标准的集成电路开发了一个无线传感器的模型:整个传感器节点包括一个八位微处理器,检测单元采用微加速度芯片构成,并且所集成的无线传感器在实验室中得到了验证。比如日本大型机械监控技术应用研究主要利用移动通信技术与智能传感器技术相结合,实现了对集装箱装卸设备的远程监控;马来西亚港口设备监控与调度管理系统;德国基于非线性神经网络的

4、钢板厚度监控系统;荷兰基于GIS和无线通信的港口智能化信息管理系统等等。在我国,无线传感器网络研究起步较早,中科院、哈尔滨工业大学、清华大学、北京邮电大学、西北工业大学、天津大学、国防科技大学较早开展了无线传感器网络方面的研究工作1。如上海交通大学基于移动通信技术的港口起重机远程监控系统;天津港基于短信平台的起重机动态监测装置;华中科技大学网络化远程监控等等2。2 无线传感器网络概述 2.1 无线传感器网络概念无线传感器网络3(wireless sensor network, WSN)是一项新兴的网络技术,它是由大量随机分布的包括集成传感器、数据处理段元和通信单元的微小节点通过自组织方式构成的

5、无线网络,所有网络节点协同合作完成特定的任务。它综合了传感器技术、嵌入式计算技术、现代网络技术、无线通信技术和分布式信息处理技术等多种技术。 2.2 无线传感器网络的特点无线传感器网络与传统的无线通信网络有着不同的设计目标和技术要求。前者以数据位中心,而后者则以传输数据为目的。无线传感器网络因其所应用的特殊性决定了无线传感器网络具有以下的一些特征:(1) 硬件资源有限无线传感器网络传感器节点的数量较大,往往需要投放在特定的检测区域。由于受体积及成本等因素的限制,其计算能力、对数据的处理能力、存储能力都相当的有限。(2) 动态拓扑无线传感器网络的拓扑是动态变化的,节点是可以随处移动的,并且有多节

6、点可能受到自然或人为的破坏,有的节点可能由于电池耗尽而退出网络,还有的节点则可能是新加入的节点。这些原因都会使整个网络的拓扑结构随时发生变化,因此网络具有动态拓扑的特点。(3) 电源能量有限由于传感器节点往往被投放在一些不适合进行电源补给的环境和无人区域,所以一般都为一次性供电,一旦电池耗尽,很难再给电池充电或者更换电池。(4) 无中心基站无线传感器网络没有像传统网络中的基站之类的控制中心,所以节点都是平等的,是一个对等式网络。(5) 多跳路由无线传感器网络的传感器节点散布的检测区域往往比较大,而由于受到节点能量的限制以及对等网络无中心的特点,网络数据的转发往往采取多跳转发的方式,不仅可以节省

7、发射功率,还可以不用专门设置路由器,同时每个节点都有附加路由转发的功能。(6) 以数据为中心无线传感器网络是用来检测各种感兴趣的被测量的数据,其主要目的是为了获得检测区域的检测数据。在网络设计过程中,主要考虑如何高效处理感知数据,并将获取的数据传送到用户节点,因此无线传感器网络的特点是以数据为中心。 同时无线传感器网络还具有组网快捷、灵活,且不受有线网络约束的特点。 2.3 无线传感器网络体系结构无线传感器网络体系结构4如图2.1所示。无线传感器网络系统通常包括传感器节点、汇聚节点和监控中心主机(包括服务器和用户访问管理终端)。大量的传感器节点随机散步在指定检测区域内。传感器节点将检测到的信息

8、以多跳中继的方式传送到汇聚节点。汇聚节点是一个固定的或可以移动的节点,一般具有更多的能量、更强大的数据处理能量和存储能力。汇聚节点将从外部网络接收到的控制命令发送到检测区域内的传感器节点,以及传感器节点的数据信息传送到外部网络,再由外部网络传送给服务器。服务器用于接收检测区域内的数据,用户可以远程访问服务器,从而获得检测目标的状态信息以及实现对传感器网络进行配置和管理、发布检测任务等功能。图2.1 无线传感器网络体系结构 2.4 无线传感器网络协议栈无线传感器网络协议栈5主要包括物理层、数据链路层、网络层、传输层和应用层,与互联网的五层协议相对应。如图2.2所示:应用层传输层网络层数据链路层物

9、理层能量管理平台移动管理平台任务管理平台图2.2 无线传感器网络协议栈另外,无线传感器网络协议栈同时还包括能量管理平台、移动管理平台和任务管理平台。这种管理平台使得传感器节点能够按照能量高效的方式协同工作,在节点移动的传感器网络中转发数据,并支持多任务与资源共享。各层协议和平台的相关功能如下:1) 物理层提供简单和健壮的信号调制和无线收发技术;2) 数据链路层负责数据成帧,帧控制,媒体访问和差错控制;3) 网络层负责路由的生成和路由选择4) 传输层负责数据流的传输控制,使保证通过通讯服务质量的重要部分;5) 应用层包括一系列基于检测任务的应用层软件6) 能量管理平台管理传感器节点如何使用资源,

10、在各个协议层都要考虑节省能量;7) 移动管理平台检测并注册传感器节点的移动,维护到汇聚节点的路由,使得传感器节点能够动态跟踪其邻居节点的位置;8) 任务管理平台在一个给定的区域平衡和调度检测任务。 2.5 无线传感器网络的应用随着研究的深入,无线传感器网络的应用领域非常广泛。目前,随着传感器技术、通信技术、嵌入式技术及分布式信息处理技术的快速发展,无线传感器网络正被广泛应用在人们生活的各种领域,例如:军事领域、工业领域、农业领域、生态环境监测、家具生活领域、医疗健康领域、城市交通领域等等,总之,无线传感器网络已经是当今科学领域最具有代表性的通信技术性支持,已经渗透到千家万户、各行各业。 2.6

11、 无线传感器网络的关键技术在无线传感器网络研究的过程中,存在着一些关键技术问题,主要的问题有:路由技术、安全问题、时间同步、数据融合、能量问题等等。(1) 路由技术由于传感器节点的计算能量,存储能力、自身能量有限,大部分节点并不能直接将数据发送到汇聚节点,而要采用多跳路由方式向汇聚节点发送数据,因此,每个节点不仅要进行数据的采集和传输,还要具有转发数据的能力。(2) 安全问题在无线传感器网络中,大量的传感器节点密集分布在一个区域里面,消息可能需要经过若干节点才能达到目的地,而且传感器网络具有动态性和多跳结构,要求每个节点都应该具有路由功能。由于每个节点都是潜在的路由节点,因此更容易受到攻击,使

12、网络部安全。网络层路由协议为整个无线传感器网络提供了关键的路由服务,安全路由算法可以直接影响无线传感器网络的安全性和可用性。(3) 时间同步4时间同步技术是完成实时信息采集的基本要求,也是提高定位精度的关键手段。常用方法是通过时间同步协议完成节点间的对时。同时传感器节点需要相互合作,完成复杂的检测和感知任务,这样往往需要各节点保持时间上的一致性,方便出来一些与时间有关的操作。(4) 数据融合由于无线传感器网络的资源有限,电池能量、出来能力、存储容量及通信带宽都要统筹使用,在满足用户需求的情况下,需要对众多传感器节点的检测数据进行融合出来,从而节省通信带宽的能量,提高信息收集的效率。(5) 能量

13、问题在多数情况下,传感器网络中的节点都是由电池供电,电池容量非常有限,并且对于成千上万节点的无线传感器网络来说,更换电池非常困难,甚至是不可能的。如果网络中的节点因为能力耗尽而不能工作,会带来网络拓扑结果的改变以及路由的重新建立等问题,甚至可能是网络分成不连通的部分,造成通信的中断。因此,如何在不影响功能的前提下,尽可能地节约无线传感器网络的电池容量成为无线传感器网络软硬件设计中的核心问题。3 无线传感器网络路由协议概述3.1 无线传感器网络路由协议的分类无线传感器网络路由协议从驱动机制的角度可以分为主动式路由协议、按需式路由协议和混合式路由协议:主动式路由协议,所有的路由在使用之前已经形成;

14、按需式路由协议只有在需要使用的时候才形成;混合式路由协议是将上述两种思想结合起来的一种新的路由协议。由于无线传感器节点资源受限,且传感器网络中节点数目众多,传感器节点没有足够的空间来存储大量的路由表,因此在实际应用中,按需式路由协议和混合式路由协议更加受青睐。无线传感器网络路由协议从网络拓扑结构的角度可以分为:平面路由协议和层次路由协议,如图3.1所示。在平面路由协议中,所有节点的地位都是平等的,通过局部操作和反馈信息来生成路由。平面路由协议的优点是简单、以扩展,其缺点是缺乏对通信资源的规范化管理,每一个节点都需要知道到达其它所有节点的路由,维护动态变化的路由需要大量的控制信息。在层次路由协议

15、中,网络通常被划分为簇,每个簇由一个簇头和多个簇成员节点组成,簇成员节点负责采集数据,并将采集到的数据转发给簇头,簇头节点负责簇内部数据的接收和数据融合,然后将数据转发给更高层的簇。簇成员的功能比较简单,不需要维护复杂的路由信息,不同层次的节点的作用不同。这大大减少了网络中路由控制信息的数量,具有良好的可扩充性,其缺点是簇头节点能量消耗大,可能会成为整个网络的瓶颈。图3.1 无线传感器网络按拓扑结构的路由协议分类3.2平面路由协议在平面路由协议中,各网络中的各节点在路由功能上地位相同,没有引入分层管理机制。平面结构路由的优点是网络中没有特殊的节点,网络流量均匀的分布在网络中,路由算法易于实现。

16、缺点是可扩展性小,在一定程度上限制了网络的规模,对网络动态变化的反应速度较慢。以数据位中心的典型平面路由协议主要有:泛洪(Flooding)、SPIN(Sensor Protocols for Information via Negotiation)、定向扩散DD协议(Directed Diffusion)等。3.2.1 洪泛路由协议洪泛协议(Flooding)是以中传统的网络路由协议,不需要任何路由算法,也不需要维护网络拓扑结构。在该协议中,节点向它的所有邻居节点广播接收到的数据,如此反复,直到数据到达目的节点或者所有节点拥有此数据副本为止。洪泛协议所具有的优点是:实现简单;不需要为保持网络

17、拓扑信息和实现复杂的路由发现算法而消耗计算资源;适用于健壮性要求高的场合。洪泛协议存在的问题有5:存在消息内爆问题,即出现一个节点收到一个数据的多个副本现象。如图3.2(a)所示,节点S要将数据发送给节点D,首先节点S要将数据发送到它的所有邻居节点A、B、C。A、B、C再将数据广播给各自的邻居节点(除了发送此数据给自己的邻节点外),这样节点D就会收到很多份一样的数据。存在信息重叠的问题,即处于同一观测环境的相邻同类传感器节点同时向一个节点发送数据,从而收到双份数据副本的想象。如图3.2(b)所示,节点A收到节点B、C对同一区域R2的检测数据。盲目利用资源,即节点不考虑自身能力状况,只要接收数据

18、就进行转发。 图3.2(a) 消息“内爆”现象 图3.1(b) 消息“重叠”现象 针对以上提到的消息内爆和重叠现象,S.hedetniemi等人提出了闲聊(Gossping)协议。避免洪泛协议的内爆问题,节点随机选取一个邻居节点转发数据包,而不是向所有邻居节点广播数据包。然而,这却增加了数据端到端的传输延迟。3.2.2 SPINSPIN(Sensor Protocols for Information via Negotiation)6是一种以数据为中心的自适应通信路由协议,其目标是通过使用节点间的协商机制和资源自适应机制,从而解决泛洪协议存在的数据内爆问题和重叠现象。传感器节点在传送数据之前

19、彼此进行协商,协商制度可确保传输有用数据。节点间通过发送元数据,而不是采集的整个数据进行协商。由于元数据大小小于采集的数据,所以传输元数据消耗的能量相对较少。SPIN协议有 3 种数据包类型,即 ADV、REQ和 DATA。ADV用于元数据的广播,REQ用于请求发送数据,DATA为传感器采集的数据包。数据发送之前,节点要进行“元数据协商”,协商是通过发送端广播ADV包告知邻居节点自己有数据要发送,如果邻居节点愿意接受数据中转,就会返回REQ信号来完成握手过程,握手完成后就进行DATA的传输,DATA可以经过多个节点的中转最后到达目的节点,这样就保证了网络中没有冗余数据。3.2.3 定向扩散DD

20、路由协议定向扩散(Directed Diffusion)7是一种以数据位中心且基于查询的路由机制,其最大的特点就是引入了网络梯度概念,并将局部算法相结合应用于无线传感器网络的路由通信机制。网络梯度7的思想本身源于生物学中的蚂蚁种群模型,一般定义为属性值和方向。属性值可以依据数据速率、功率或者地理信息确定,方向由接收节点指向发送兴趣的邻居节点,引导数据扩散。定向扩散路由机制分为兴趣的洪泛,双向梯度的建立,探测分组的洪泛,路径的选择与将强,数据的发送五个阶段组成。3.3 层次路由协议与平面路由协议相对应的是分层结构的路由协议。分层路由协议采用簇的概念对传感器节点进行层次划分。若干个相邻节点构成一个

21、簇,每一个簇有一个簇首。簇与簇之间可以通过网关通信。网关可以是簇首也可以是其它簇成员。网关之间的连接构成上层骨干网,所以簇间通信都通过骨干网转发。分层路由协议8包括成簇协议、簇维护协议、簇内路由协议和簇间路由协议四个部分。成簇协议解决如何在动态分布式网络环境下使移动节点高效地聚集成簇,它是分层路由协议的关键。簇维护协议要解决在节点移动过程中的簇结构维护,其中包括移动节点的退出和加入簇,簇的产生和消亡等功能。分层路由协议比较适合于无线传感器网络,但成簇过程会产生一定的能源消耗。分层路由协议主要有:低功耗自适应聚类路由协议LEACH、门限敏感的高效能耗传感器网络协议TEEN等。3.3.1低功耗自适

22、应聚类路由协议LEACH(low energy adaptive clustering hierarchy)LEACH9协议是有MIT的Heinzelman等人提出,它是第一种基于分簇结构和分层技术的无线传感器网络协议,在无线传感器网络路由协议中占有重要地位。LEACH协议的基本思想是通过随机循环地选择簇首节点将整个网络的能量负载平均分配到每个传感器节点,从而达到降低网络能源消耗、提高网络整体生存时间的目的。与一般的基于平面结构的路由协议和静态的基于多簇结构的路由协议相比,具有以上的优点。在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合并把结果发送给汇聚节点。由于簇头需要完成数据融合

23、、与基站通信等工作,所以能量消耗大。LEACH算法能够保证各节点等概率地担任簇头,使得网络中的节点相对均衡地消耗能量。3.3.2 TEENTEEN协议就是为反应式无线传感器网络而设计的路由策略,它具有实时性,可以对突发事件作出快速反应。TEEN和LEACH的实现机制非常相似,只是前者是响应型的,而后者属于主动型传感器网络。TEEN协议的优点:协议适合于需要实时感知的应用环境中;通过设置硬阀值和软阀值2个参数,TEEN可以大大减少数据传送的次数,比LEACH节约能量等。缺点:不适合应用在需要周期性采集的应用系统中,这是因为如果网络中的节点没有收到相关的阀值,那么节点就不会与汇聚节点进行通信,用户

24、也就完全得不到网络的任何数据。3.4 各路由协议之间的比较平面路由协议的优点在于实现简单,但是它也存在着可扩展性差的缺点,无线传感器网络拓扑结构通常是由分布在一点区域内的成千上万个节点所构成的,网络的规模非常之大。相比之下,分层路由协议由于它的可扩展性好的优点,能够适合大型的无线传感器网络。分层路由协议之所以要优于平面路由协议的原因在于:分层路由协议把所有的节点分为多个簇,每个簇拥有一个簇首和多个成员节点。成员节点在收集有效的信息后,不是无目的的传输信息,而是在簇首节点分配给自己的时隙内发送信息,信息发送完成后,该节点可以进入睡眠状态,等待信息收集的开始或传输时隙的到来。同时各种路由协议还有以

25、下的比较:表3.1 无线传感器网络路由协议的分类比较路由协议多跳单跳平面型分层型数据融合Flooding是是SPIN是是有DD是有LEACH是是有TEEN是是有表3.2 无线传感器网络路由协议的性能比较路由协议性能比较以数据位中心生命周期传输延迟路径容错可扩展性Flooding短短好差否SPIN短长好差是DD长较短好较好是LEACH长较短较好较好否TEEN长较短较好较好是说明:这些路由协议都是基于特定的应用环境下而设计,在不同的条件下,不同的协议表现出不同的性能,因此,不能绝对说哪种协议最优。4 洪泛 (MFlood)协议的仿真分析与评价无线路由通讯协议MFlood路由算法是一种传统的广播式路

26、由协议10。它不需要维护网络的拓扑结构和路由计算,每个节点都使用广播转发收到的数据分组,若收到重复的分组则进行丢弃处理。通过设定合适的TTL值来避免由于大面积的扩散而占用过多的网络资源,使扩散收敛,保证数据分组只经过有限跳路由;此外为了进行重复分组检测,每个节点需要维护一个数据分组序号SEQ和一张路由表,原节点每发送一个分组则将SEQ加1,并将该SEQ添加到数据分组的IP头部,其余节点受到数据分组后会将该SEQ记录到路由表并根据该SEQ进行重复分组检测。由于洪泛算法会产生大量的分组,占用网络资源,所有效率很低。但是它是一个最简单又有效的路由算法4.1 NS2简介4.1.1 NS-2概述NS-2

27、11的全称为Network Simulator Version 2。是美国加州大学伯克利分校(University of Califorlia, Berkley)开发的一个事件驱动的网络仿真器。由于具有开放源代码、可扩展性强、仿真速度快效率高等优点,目前NS2已被研究者广泛地用于各种网络的仿真。NS-2是面向对象的,离散事件驱动的网络环境模拟器,主要用于解决网络研究方面的问题。NS-2提供在无线或有线网络上,TCP、路由、多播等多种协议的模拟。NS具有开放性好、扩展性强、适用于Windows和Linux系统平台的特点,是一个出色的研究网络拓扑结构、分析网络传输的仿真工具。与其他的网络仿真工具相

28、比,NS对相应数据流的仿真能量尤为突出。NS仿真环境中有两种分工不同的开发语言:C+和Otcl ( ObjectTcl, 即Tcl面向对象的扩展)。C+描述网络协议的细节,Otcl提供面向对象的接口,通过配置仿真活动中的各种参数,建立仿真的整体框架,C+和OTCL之间通过TclCL关联起来。C+运行速度快,使模拟具有高性能;而用Otcl进行模拟配置,可以不必重新编译情况下随意修改模拟参数和模拟过程,提高了模拟的效率。4.1.2 NS-2的层次结构NS2是一个用C+编写的面向对象的仿真器,它的前端是一个OTcl解释器仿真器内核定义了有层次结构的多种类,称为编译类结构;OTcl解释器中有相似的类结

29、构,称为解释类结构。NS2内核的层次结构9如下图所示。图4.1 NS2的层次结构如上图所示:NS2用到了六种TCL类,分别是:(1) Tcl类:封装了OTcl解释器实例,向外界提供方法来访问解释器。(2) TclObject类:它是两种类结构中的大多数的基类。(3) Tclclass类:把用户通过类TclObject在解释器中建立的类结构映射到编译类结构,提供方法来实例化新的对象(4) TclCommand类:提供一种机制使NS2内核向解释器输出简单的命令。(5) EmbededTcl类:允许用户以编译代码或解释代码来扩展NS2功能。(6) Instvar类:定义了一些方法和机制,在编译类结构

30、对象的成员变量和对应的解释类结构对象的成员变量之间建立映射,使两类变量一致共享。4.1.3 NS-2模块概述NS2功能非常强大,由12个模块组成,下面分别介绍各模块的功能:(1) Tcl:Tcl提供了一个强有力的平台,可以生成面向多种平台的应用程序,协议,驱动程序等等。它与TK(toolkit)协作,可生成GUI应用程序,可在PC、Unix和Macintosh上运行。Tcl还可用来完成与网页的相关任务,或是为应用程序提供强有力的命令语言。(2) TK:与Tcl协调工作的图形工具包。(3) OTcl:MIT Object Tcl的简称,是Tcl/TK面向对象编程的扩展。(4) Tclcl:此目录

31、下含有tcl/C+的接口,vic、vat、ns、rtp_play和nam都会用到。(5) NS:NS的主体代码,内含一个节点移动产生器、两个传输事件产生器。(6) TclDebug:Tcl调试工具包。(7) Nam:即UCB/LBNL Network AniMator,它与NS协同工作,将NS仿真过程动态的表现出来。(8) Xgraph:Xgraph是X-Windows应用程序,包含:交互式测量和绘制和动画效果。4.1.4 NS-2的组成部分(1)离散事件调度器(Scheduler):调度器是仿真器的心脏,它记录当前时间,调度网络事件链表中的事件。它有一个静态成员变量instance,供所有的

32、类访问同一个调度器,提供函数产生新事件,指定事件发生的时间。目前NS2支持四种事件调度器,分别为链表式(linked-list)、堆式(heap)、时间队列式(calendar)和实时(real-time)调度器,其中时间队列式为默认的事件调度器。(2)事件处理器(Handler):Handle是所有处理事件类的基类,它只是一个虚拟函数,每个继承类实现自己的功能。(3)节点(Node):节点是对实际网络中分布在不同地理位置的主机、交换机、路由器等网络设备的统一抽象,是构成网络拓扑结构的一个重要组成部分。(4)链路(Link):链路用来连接节点和路由器。一个节点可以有一条或多条输出链路(如路由器

33、),所有的链路都以队列的形式来管理分组到达、离开或丢弃,统计并保存字节数和分组数。另外还有一个独立的对象来记录队列日志。(5)代理(Agent):代理是实际产生和消费分组的对象,它们属于传输层实体,运行在端主机,节点的每一个代理自动被赋与一个唯一的端口号(模拟udp/tcp端口),代理知道与它相连的节点,以便把分组转发给节点,它也知道分组大小,业务类型,目的地址。Agent类是各种UDP/TCP实现类的基类,代理被保存在一个称为demux的链表中。(6)NS对象(NsObject):NsObject是所有网络实体的基类,包括节点、链路、代理,业务记录(Trace)和数据源等。节点、链路、代理同

34、时继承了NsObject和事件处理器类,因为这三种对象要处理多种事件,其他对象则不需要。(7)匹配器类(Matcher):匹配器类用来标识有实例对象生成的类,用户给出标识匹配器类的关键字,匹配器类返回相应的新建对象。4.1.5 NS2仿真模拟的步骤进行网络模拟前,首先要分析模拟要涉及哪几个层次。NS模拟分两个层次:一个是基于Otcl编程的层次,利用NS已有的网络元素实现模拟,无需对NS本事进行任何修改,只要编写Otcl脚本;另一个层次是基于C+和Otcl编程的层次,如果NS中没有所需的网络元素,就需要首先对NS进行扩展,添加所需要的网络元素。这就要利用分裂对象模型,添加新的C+类和Otcl类,

35、然后再编写Otcl脚本。整个模拟过程图4.2所示,步骤如下:(1) 如果有需要,则对NS2进行扩展,添加新的模块或者对NS2中已有的模块进行修改;(2) 开始编写Otcl脚本。包括配置模拟网络的拓扑结构、确定链路的基本属性等;(3) 建立协议代理,包括端设备的协议绑定和通信业务模型的建立等;(4) 配置业务模型的参数,从而确定网络上的业务量分布;(5) 设置Trace对象。Trace对象能够把模拟过程中发生的特定类型的事件记录在trace文件中。NS2通过trace文件保存整个模拟过程。模拟完成后可以对trace文件进行分析研究。(6) 设定模拟结束时间,编写其它辅助过程,至此Otcl脚本编写

36、结束;(7) 用ns执行刚才的Otcl脚本,得到trace文件;(8) 对trace文件进行分析,得出有用的数据;(9) 调整配置模拟中的参数,重新进行模拟过程。图4.2 NS2仿真模拟流程4.2 仿真环境搭配4.2.1 Cygwin环境 NS2是在UNIX系统上开发的,因此可以再FreeBSD、SunOSc、Solaris定UNIX和类UNIX系统上安装。而本次仿真设计是建立在Windows环境下的,因此我们将要使用基于Windows平台的Cygwin环境来进行仿真。Cygwin11是一个在Windows平台上运行的Unix模拟环境,是Cygnus Solution公司开发的自由软件。它对学

37、习Unix/Linux操作系统,或者从Unix到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在Windows上进行嵌入式系统开发,非常有用。运行Cygwin后,你会得到一个类似于Linux的Shell环境,在其中还可以使用绝大部分Linux软件和功能,如Gcc,Make,Vim,Emacs等等。4.2.2 实验环境在仿真实验中采用了NS-2作为网络仿真的工具,它提供了通信模型、随机拓扑和节点移动模型生成等辅助工具。在仿真中使用的场景文件就使用了随机模型工具实现。在仿真中设置了以下的仿真情景:场景文件scene-50n-0p-40s-400t-1200-120

38、0中的50n表示50个节点,0p表示到一个地方的停留时间是0秒,40s表示节点移动的最大速度为40秒,400t表示模拟场景的持续时间是400秒,1200-1200表示场景的大小为1200m1200m。在模拟仿真的过程中,同时还需要为50个节点在某个随机时刻启动一个cbr流,该cbr流各节点间最大的连接数为30,每秒发送1个长度为512Byte的包。 4.23 代码实现#Agent/UDP set packetSize_ 6000 ;#设置包的大小set val(chan) Channel/WirelessChannel ;#信道类型set val(prop) Propagation/TwoRa

39、yGround ;#无线传播模式set val(netif) Phy/WirelessPhy ;#网络接口类型set val(mac) Mac/802_11 ;#MAC类型set val(ifq) Queue/DropTail/PriQueue ;#接口队列类型set val(ll) LL ;#逻辑链路层类型set val(ant) Antenna/OmniAntenna ;#天线类型set val(x) 1200 ;#移动拓扑的宽度set val(y) 1200 ;#移动拓扑的长度set val(ifqlen) 50 ;#接口队列最大长度set val(seed) 0.0set val(rp

40、) MFlood ;#仿真协议的类型set val(nn) 50 ;#移动节点的个数set val(cp) cbr-50n-30c-1p ;#cbr流文件#set val(sc) ./scene-50n-0p-2s-400t-1200-1200 ;#场景文件set val(sc) scene-50n-0p-40s-400t-1200-1200 ;#场景文件#set val(sc)./scene/jscene-50n-0p-2s-400t-1200-1200-1 ;#场景文件set val(stop) 100 ;#仿真时间=# 主程序=# 初始化模拟参数和跟踪对象set ns_ new Simu

41、latorset tracefd open mflood-scene2.tr w ;#trace文件跟踪$ns_ trace-all $tracefd#创建移动拓扑set topo new Topography#设定移动场景范围$topo load_flatgrid $val(x) $val(y)#nam文件跟踪set namtrace open wireless1-out.nam w $ns_ namtrace-all-wireless $namtrace $val(x) $val(y)# 创建God对象set god_ create-god $val(nn)# 创建$val(nn)个移动节

42、点并将它们连接到信道#配置节点属性set channel new Channel/WirelessChannel$channel set errorProbability_ 0.0 $ns_ node-config -adhocRouting $val(rp) ;#路由协议类型 -llType $val(ll) ;#链路层类型 -macType $val(mac) ;#MAC类型 -ifqType $val(ifq) ;#接口队列类型 -ifqLen $val(ifqlen) ;#接口队列的最大分组数 -antType $val(ant) ;#天线模式 -propType $val(prop)

43、 ;#无线信号传输模式 -phyType $val(netif) ;#网络接口类 -channel $channel ;#通信信道类型 -topoInstance $topo ;#拓扑范围 -agentTrace ON ;#打开agent层trace -routerTrace ON ;#打开路由层trace -macTrace OFF ;#关闭Mac层trace -movementTrace OFF ;#关闭移动trace#创建移动节点 for set i 0 $i $val(nn) incr i set node_($i) $ns_ node$node_($i) random-motion

44、0;# 定义节点移动模型puts Loading connection pattern.source $val(cp)#定义节点运行的模型puts Loading scenario file.source $val(sc)# 设置在nam中移动节点显示的大小for set i 0 $i $val(nn) incr i $ns_ initial_node_pos $node_($i) 20# 模拟结束后重设节点for set i 0 $i $val(nn) incr i $ns_ at $val(stop).0 $node_($i) reset;#调度整个模拟过程的运行$ns_ at $val(stop).0 stop$ns_ at $val(stop).01 puts NS EXITING. ; $ns_ halt;#定义结束进程proc stop global ns_ tracefd $ns_ flush-trace close $tracefdputs Starting Simulation.$ns_ run4.3 仿真结果与分析4.3.1 nam文件分析 (1) nam简介na

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号