毕业设计(论文)ZigBee路由协议分析及仿真实现_第1页
毕业设计(论文)ZigBee路由协议分析及仿真实现_第2页
毕业设计(论文)ZigBee路由协议分析及仿真实现_第3页
毕业设计(论文)ZigBee路由协议分析及仿真实现_第4页
毕业设计(论文)ZigBee路由协议分析及仿真实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要作为无线传感器网络(wsn wireless sensor networks)的一项新型技术,zigbee技术具有低功耗、低速率、低延时、低成本等特性,具有强大的组网能力和超大的网络容量,可以广泛应用在消费电子产品、家居与楼宇自动化、工业控制、医疗设备等领域。由于其独有的特性,zigbee无线技术也是无线传感器网络的首先技术,具有广阔的发展前景。zigbee协议标准采用开放系统接口(0si)分层结构,其中物理层和媒体接入层由ieee802.15.4工作小组制定,而网络层,安全层和应用框架层由zigbee联盟制定。本文根据ieee802.15.4标准规范与zigbee标准规范,简单扼要地阐述

2、了zigbee协议栈的协议栈架构,重点讲解了zigbee网络层树路由和网状网路由。然后讲解了ns2网络仿真软件的工作原理,详细介绍了仿真环境的搭建和仿真分析的过程。通过对cluster-tree路由算法和aodvjr路由算法在不同发包间隔下的平均延时、丢包率和控制包数量模拟,获得仿真结果。关 键字:ns2,zigbee,cluster-tree,aodvjrabstractas a wsn(wireless sensor network), a new technology, zigbee technology with low power consumption, low speed, lo

3、w latency, low cost features, is a powerful networking capabilities and large network capacity, and can be widely used in consumer electronics, home and building automation, industrial control, medical equipment and other fields.because of its unique properties, zigbee wireless technology is the fir

4、st technology of wireless sensor network, has a broad development prospects.zigbee protocol standard using open system interface (osi) hierarchical structure, including the physical layer and the media access layer shall be formulated by the ieee802.15.4 working group, and the network layer, securit

5、y and application framework layer shall be formulated by the zigbee alliance.in this paper, based on ieee802.15.4 standard specification and zigbee standards, briefly expounds the simple zigbee protocol stack protocol stack architecture, focusing on the zigbee network layer routing and mesh networks

6、 by the tree.then explained the working principle of ns2 network simulation software, introduces in detail the process of the construction of the simulation environment and simulation analysis.routing algorithm based on cluster - tree and aodvjr routing algorithm under different contract awarding in

7、terval average delay, packet loss rate and the control packet number simulation, the simulation results.keywords: ns2,zigbee,cluster-tree,aodvjr目录摘要iabstractii目录iii1 绪论11.1 背景介绍11.2 课程设计环境和工作内容12 zigbee技术及仿真软件介绍32.1 zigbee技术概述32.2 zigbee协议栈架构32.3 zigbee网络层路由协议52.3.1 zigbee支持的网络拓扑52.3.2 zigbee网络编址方式6

8、2.3.3 zigbee网络路由算法介绍62.4 ns2网络仿真软件介绍72.4.1 ns2软件概述72.4.2 trace文件格式介绍83 仿真环境搭建过程103.1 fedora 21安装过程103.2 ns2的安装过程183.3 ns2中添加zbr路由协议的过程213.3.1 协议底层文件213.3.2 需要修改的文件213.3.3 需要修改的具体内容223.3.4 编译273.3.5 测试脚本273.4 gnuplot的安装273.5 本章小结274 仿真过程与仿真结果分析284.1 使用ns2进行模拟的基本流程284.2 星型拓扑环境搭建和模拟294.2.1 任务分析294.2.2

9、编写tcl脚本294.2.3 执行模拟344.2.4 修改路由算法344.2.5 再次执行模拟354.3 星型拓扑仿真结果分析354.3.1 gawk工具介绍354.3.2 传输延时374.3.3 丢包率384.3.4 控制包数量394.4 树形拓扑环境的搭建和执行404.4.1 任务分析404.4.2 编写tcl脚本404.4.3 执行模拟454.4.4 修改路由算法454.4.5 再次执行模拟464.5 树形拓扑仿真结果分析464.5.1 平均延时464.5.2 丢包率474.5.3 控制包数量484.6 本章小结495 总结和展望505.1 总结505.2 展望50参考文献51致谢521

10、 绪论1.1 背景介绍随着科技的发展、文明的进步,人类对于信息的需求也日益增大,推广了信息的蓬勃发展。近年来,以移动通信和计算机技术为代表的信息技术更是进步飞速、普及广泛,在1997年6月ieee通过了ieee802.11标准及1998年ieee802.15工作组成立以后,无线通信技术的发展更是如虎添翼、日新月异,其中孕育了大量的无线通信技术,如蓝牙技术(bluetooth)、无线超宽带技术(uwb,ultra wideband)、无线高保真技术(wi-fi,wireless fidelity)、紫蜂技术(zigbee)等等,将无线通信技术带入了一个全新的阶段,而像手机、蓝牙、宽带卫星等技术已

11、经深入地应用到了人类社会生活的各个方面。无线传感器网络是由大量分布在一个监控区域内的具有无线传输功能的传感器节点所组成的面向查询任务的无线自助网络。wsn将无线通信技术、传感器技术、网络技术、分布式计算技术、嵌入式信息处理技术等多种现代科学发张的高尖端技术领域融合在一起,传感器节点通常由传感器、微处理器、存储单元、电源、射频芯片等几个主要模块组成,但被设计成不同的类型,在网络中起不同的作用,接受查询任务时他们协同起来共同工作,完成对目标数据的采集、融合处理和无线传输,并通过网络使得远处的监测者获得所需数据信息。无线传感网络感念一经出现,就引起了国际学术界的广泛关注。2003年2月,美国玛萨诸塞

12、理工学院的技术评论杂志将wsn评为改变未来世界的十大技术之一。同年在美国商业周刊的“未来技术”专版中,专家认为传感器网络能够跟踪各种动态事务,能够极大扩充互联网功能,而将无线传感网络技术预测为全球未来的高新技术产业之一。1.2 课程设计环境和工作内容l 硬件环境:电脑型号:lenovo z465笔记本处理器:amd phenom(tm) ii p960 quad-core processor 1.8ghz安装内存:5.00gbl 软件环境:系统:windows7 64位操作系统软件:vmware workstation 10.0.1;fedora 21 workstation;ns2-alli

13、none-2.35。l 工作内容运用ns2(network simulator version 2)网络仿真软件,仿真zigbee路由协议,通过对cluster-tree路由算法和aodvjr路由算法在不同发包间隔下的平均延时、丢包率和控制包数量模拟,获得仿真结果。2 zigbee技术及仿真软件介绍2.1 zigbee技术概述zigbee名字来源有一个小故事,大意是说蜜蜂发现事物源的时候,通过“之”字形的舞蹈(zigzag舞)在同伴之间传递这信息,称之为“zigbee法则”,正是通过这个zigbee法则使得蜂群能够维持生存和发展。当然这只是个传说,不过也是一个对于低功耗、低成本、传输速率低的新

14、无线通信技术及其所组成的无线网络很好的比喻。zigbee协议栈标准的制定是参考osi七层模型,但它并没有定义物理层和mac层,而是直接采用ieee802.15.4标准的定义,zigbee联盟只对网络层、应用层和安全部分进行定义,用户可以自定义应用层。zigbee技术的优势有:功耗低,在低耗电待机模式下,两节普通5号干电池可使用6个月以上;成本低,因zigbee数据传输速率低,协议简单,所以成本很低;网络容量大,每个zigbee网络最多可支持255个设备;工作频段灵活,使用的频段分别为2.4ghz、868mhz(欧)及915mhz(美),均为免执照频段。zigbee技术适合于承载数据流量较小的业

15、务,也可嵌入其他设备中,同事也能够支持地理定位功能。其目标市场是工业、家庭以及医学等需要的短距离、低功耗、低成本无线通信应用。相对于现有的各种无线通信技术,zigbee技术是最低功耗和低成本的技术。常用无线通信协议的比较如表2.1所示:表2.1 常用无线通信协议比较2.2 zigbee协议栈架构zigbee协议栈的物理层是基于802.15.4标准,物理层支持868/915mhz和2.4ghz三个频段。mac层之上是网络层,主要提供网络层数据收发和路由功能。网络层之上是应用层,应用层又分为几个模块,其中网络层之上的应用支持子层(application support sublayer),简称“a

16、ps”,主要提供应用层数据处理和绑定功能。aps之上是真正的应用。zigbee当中用“应用对象(application object)”来表示每个应用,其中zigbee设备对象(zigbee device object),简称zdo,是一个特殊的应用。它是所有zigbee设备都实现的一个应用,提供设备管理的各项功能,包括设备发现、服务发现、绑定管理和网络管理等。所有应用对象的定义,还会受到应用框架(application framework, af)一些规定的限制。zigbee还提供了安全的功能,称为安全服务提供者(security service provider),简称“ssp”,为网络层

17、和应用层提供安全服务。在协议栈当中,各协议层之间通过服务接入点(service access point,sap)进行信息交互。低协议层通过sap为高协议提供服务。其中物理层与mac层之间是物理层数据服务接入点(pd-sap)和物理层管理实体服务接入点(plme-sap),mac层与网络层之间是mac层数据实体服务接入点(mlde-sap)和mac层管理实体服务接入点(mlme-sap),网络层与aps之间是网络层数据实体服务节点(nlde-sap)和网络层管理实体服务接入点(nlme-sap),aps与个应用对象或zdo之间是aps数据实体服务接入点(apsde-sap)和aps管理实体服务

18、接入点(apsme-sap)。sap一般较少出现跨层的情况,只有在zdo当中,由于网络管理需要直接调用网络层,所以网络层通过nlme-sap给zdo直接提供服务,而一般应用只能从aps获取服务。另外安全服务ssp并不是一个单独的协议层次,它是一系列安全功能,嵌入到网络层和应用层的功能当中。最后zdo也会给其他应用对象提供一些功能,称为zdo公共接口(zdo public interfaces),当然实际上每个应用对象都有可能给其他引用对象提供可使用的功能接口,这就像面向对象编程当中公共类型的方法或接口。如图2.1所示。图2.1 zigbee协议栈架构zigbee通过sap原语实现zigbee各

19、层之间的各种服务,sap是低协议层为高协议层提供服务的接口,而这个接口的具体表现形式就是一系列原语。原语是高协议层与低协议层之间传递的命令,是在设备内传递的信息。原语一共有4类型:请求、确认、指示和相应,如图2.2所示。请求高协议层低协议层确认指示相应图 2.2 sap和原语示意图2.3 zigbee网络层路由协议2.3.1 zigbee支持的网络拓扑zigbee网络支持3种网络拓扑星型拓扑、树形拓扑和网状拓扑,如图2.3所示。星型拓扑中间为zigbee协调器,它负责网络的建立服务维护,其他节点是zigbee的末端节点,直接与协调器进行通信。树形拓扑中有协调器、路由器、末端设备,树形拓扑中协调

20、器负责网络的建立和维护,同时需要确定一些参数,网络中的节点并不一定直接与协调器通信,可能要通过若干个路由器后才能与协调器通信。网状拓扑中通树形拖扑一样也具有协调器、路由器、末端设备,但是它拓扑建立灵活,不需要再建立网络的时候限制网络的形状,并且节点之间通信可以通过最优路径进行。(a)星型拓扑(a)树形拓扑(a)网状拓扑末端节点路由器协调器图2.3 zigbee支持网络拓扑2.3.2 zigbee网络编址方式zigbee网络的编址方式主要有以下两种,一是树形编址,二是随机编址。zigbee网络中默认的地址分配机制是树形编址。在使用这种编址机制时,首先要确定部分网络参数,包括网络最大深度lm,子节

21、点最大数目cm,子节点当中路由器的数量rm。协调器节点的深度为0,其他节点的深度为其父节点的深度加1。树形节点的地址可以由父节点计算得到。节点地址计算公式如式(2.1)an=ap+cskip(d)rm+n 式(2.1)其中,an代表节点的地址,ap代表父节点的地址,n是1(cm-rm)的值,cskip(d)是计算预留地址块大小的函数,其计算公式如式(2.2)cskip(d)=1+cm(lm-d-1), rm=1 式(2.2)cskip(d)=(1+cm-rm-cmrm(lm-d-1)/(1-rm), rm1 在这种编址方式中,每个路由器节点都可以给自己的子节点分配地址,并不需要专门的节点分配地

22、址,因此又有分布式地址分配方式之称。这种地址分配方式的缺点是网络拓扑受到很大的限制,同时造成地址浪费。这种编址的好处是路由算法简单。随机编址机制相对于树形编址更加简单。节点加入网络时,它的父节点随机给它分配一个地址,为了尽量避免地址冲突,父节点为其分配地址之前首先检查已知的地址,包括路由表、网络管理器地址、邻居表、路由记录表等中存储的地址信息。即使这样也难免出现地址冲突的情况,这是就需要引入地址冲突检测和解决机制。2.3.3 zigbee网络路由算法介绍zigbee的路由包括单播路由、广播路由、组播路由,这里只介绍与本论文相关的单播路由。单播路由包括树路由、网状网路由。树路由使用cluster

23、-tree算法,它依赖于前面讲到的树形编址。树路由过程除了几个必须的网络拓扑参数外,不需要存储其他的信息,计算也很简单,但是由于只能沿着树路径传递数据,路径单一,效率一般情况下比较低,而且可靠性不强,如出现单点故障。网状网路由是zigbee中一个高效的路由方案,它采用简化后的aodv算法,称之为aodvjr。aodvjr对路由请求,路由应答等命令进行了适当的修改,将标志位、源和目的序号等去掉了,把条数域改为了路径代价域。这种路由算法适合于拓扑和通信环境承载数据量不是很重,而且有时会发生变化的网络。使用aodvjr算法节点之间通信会寻找一条最佳路径。通过“路由代价”来判断最佳路径。2.4 ns2

24、网络仿真软件介绍2.4.1 ns2软件概述人们提出了很多方法来验证网络协议的正确性和相关性能的测试,目前使用最为广泛的就是通过使用模拟仿真器的虚拟环境来进行测试。而流行的网络模拟仿真软件使用最多的就是ns2和opnet了,ns2是开源的免费的,而opnet是商业软件,并不开源,所以现在ns2已经被广大高校用于网络分析、研究和教学。ns2支持大量的协议,并提供了丰富的测试脚本。ns(network simulator)是网络模拟器的意思,ns2是其第二版。ns是由伯克利大学开发的一款开源的网络模拟软件,它是一个面向对象的网络模拟器,使用c+和otcl(oriented tool command

25、language)作为开发语言,因此又被称为分裂对象模型开发机制。ns2的系统结构图如图2.4所示。图2.4 ns2系统结构图ns2本质上是一个离散事件模拟器,其本身有一个虚拟时钟,所有的模拟都由离散事件驱动。模拟器所做的就是不停的处理一个个事件,直到所有的时间都被处理完或者某一特定的事件发生为止。ns2拥有大量的构件库,例如链路的队列、节点、分组、链路等,并通过对象实现这些实体的特性和功能,这些对象易于组合、易于扩展。用户可以充分利用这些已有的对象,进行少量的扩展,组合出所需要研究的网络系统的模型。图2.5给出了ns构件库的部分类层次结构。图2.5部分网络构建层次结构2.4.2 trace文

26、件格式介绍trace文件是在模拟过程中是生成的记录模拟每一个分组调度事件的文件,一次模拟生成的信息基本上全体现在trace文件中。trace文件包含很多有用的可供参考的数据,我们需要从中筛选出我们关注的数据进行分析。ns发展过程中对无线trace的格式进行过修订,目前ns兼容修订前的无线trace格式,称修订前的格式为无线网络trace旧格式。这次论文自使用到trace旧格式,所以只讲解旧格式。下面是无线网络trace旧格式。event/time/node/layer/flags/pkt id/pkt type/pkt size/mac layer info/-/ip info动作/时间/节点

27、/层次/-/分组uid/分组类型/分组大小/mac层信息/-/ip层信息s 7.200665000 _1_ mac - 0 undefined 75 0 ffffffff 1 800 - 1:255 -1:255 30 0 zbr 1 0 2 s 7.200665000 _6_ mac - 0 undefined 75 0 ffffffff 6 800 - 6:255 -1:255 30 0 zbr 1 0 2 d 7.202937033 _2_ mac lqi 0 undefined 75 0 ffffffff 3 800 - 3:255 -1:255 30 0 zbr 1 0 2 d 7.

28、202937033 _0_ mac lqi 0 undefined 75 0 ffffffff 3 800 - 3:255 -1:255 30 0 zbr 1 0 2 r 7.203577033 _4_ mac - 0 undefined 68 0 ffffffff 3 800 - 3:255 -1:255 30 0 zbr 1 0 2 r 7.203602033 _4_ rtr - 0 undefined 68 0 ffffffff 3 800 - 3:255 -1:255 30 0 zbr 1 0 2无线网络的trace旧格式的记录的每项信息:l event:事件的类型,有4种类型s、r、

29、d和f,分别表示分组的发送、接收、 丢弃、和转发事件。l 2. time:时间的发生时间。l 3. node:事件发生的节点id。l 4. layer:发生事件所在的层。l 5. flags:标志项。l 6. pkt id:分组的id。l 7. pkt type:分组的类型。l 8. pkt size:分组的类型。l 9. mac layer info:mac层的信息。包含四项内容:第一项是发送节点在无线信道上发送该分组所期望的时间,其值为十六进制表示,单位为妙;第二项是接收节点的mac地址;第三项内容是发送节点的mac地址;第四项表示mac层封装的分组类型,例如0x800表示ip分组,0x0

30、806表示arp分组。l 10. -:分隔符。l 11. ip info:ip层的信息。包含四项内容:第一项是发送分组的源节点地址,格式为“节点号:端口号”;第二项是接收分组的目的节点地址,格式为“节点号:端口号”;第三项是分组的ttl值;第四项是源节点到目的节点的条数。3 仿真环境搭建过程3.1 fedora 21安装过程首先在fedora官方网站下载fedora 21 workstation。网址:/zh_cn/workstation/download/, 有32位和64位workstation可选,我选用的是32位workstation。1. 下载

31、之后打开vmware workstation,点击新建虚拟机。,如图3.1所示:图3.1 创建虚拟机2. 选择典型(推荐)(t)安装,单击下一步。如图3.2所示:图3.2 选择典型安装3. 点击安装光盘映像文件(iso)前的小圆点,然后点击浏览,找到自己刚才下载的fedora-live-workstation-i686-21-5.iso文件。然后单击下一步。如图3.3所示:图3.3 选择安装源文件镜像4. 客户机操作系统选择linux(l),版本选择fedora,然后单击下一步。(注:如果你下载的是64位的workstation,请选择fedora 64位。)如图3.4所示:图3.4 选择客户

32、机操作系统5. 为自己的虚拟机起一个名字,这个可以随意,最好是一眼就能看出是什么系统,什么版本,我这里取名为fedora。位置(l)是你想要将fedora虚拟机安装的位置,最好选用一个剩余空间大于20g的磁盘,我选用的位置为:g:virtual machinefedora。如图3.5所示:图3.5 命名虚拟机6. 默认配置给fedora的容量为20g,将虚拟磁盘拆分成多个文件。这里保持默认就好,然后单击下一步。如图3.6所示:图3.6 指定磁盘容量7. 单击完成结束配置。如图3.7所示:图3.7 已准备好创建虚拟机8. 单击打开此虚拟机,开始正式安装fedora21(注:安装前可以设置一下内存

33、了处理器,默认为1gb,1处理器,如果你的电脑是2gb,4处理器,就可以设置为2gb,4处理器,只需要单击【编辑虚拟机设置】设置就好。增加内存和处理器可以使虚拟器安装更快。如果不设置,等安装完成后下次开机前在设置也可以。)如图3.8所示:图3.8 开启虚拟机9. 然后出现如下图的界面,选择start fedora live,开始进行安装。如图3.9所示:图3.9 开始安装fedora10. 选择install to hard drive,如果选择try fedora只是试用fedora而真正的安装到硬盘。如图3.10所示:图3.10 安装到硬盘11. 选择安装的语言,我选择的中文,然后单击【继

34、续】。如图3.11所示;图3.11 选择语言12. 接下来设置日期和时间、键盘、安装位置、网络和主机名。只要设置安装位置就好,其他的保持默认。单击带有感叹号的【安装位置】,设置虚拟机的安装位置。如图3.12所示:图 3.12 安装信息摘要13. 安装位置是使我们前面第6步设置的20g硬盘,然后单击【完成】。如图3.13所示:图 3.13 安装目标位置14. 完成以上配置,然后单击【开始安装】,这个过程要进行大概十分钟。如图3.14所示:图 3.14 开始安装15. 在系统安装过程中设置一下root密码,和创建用户。单击【root密码】设置root密码;单击【创建用户】创建普通用户。如图3.15

35、所示:图 3.15设置用户密码16. root密码最好是复杂度高的密码,这样有助于保护系统的安全性,root密码一定要记好,如果忘记,要想修改root密码是很麻烦的。如果你设置了一个简单的密码,如123,系统会提示你密码太简单,如果你向继续使用这个密码,单击两次【完成】按钮就可以了。如图3.16所示:图 3.16 设置root用户密码17. 为普通用户设置用户名和密码,也可以不设置密码。如图3.17所示图 3.17 设置普通用户18. 等待安装进度条完成安装,然后单击【完成配置】。如图3.18所示:图 3.18 完成配置19. 接下来,系统自动进行一些配置,重新启动就可以开始使用fedora2

36、1了。如图3.19所示:图 3.19 fedora 21界面20在fedora的terminal中输入ifconfg,发现fedora并没有获取到ip地址,说明fedora没有连上internet。现在关闭fedora,做一些配置使其能够连上internet,因为后续步骤安装软件需要使用网络。如图3.20所示:图 3.20 查看网络21. 网络适配器设置为nat。如图3.21所示:图 3.21 网络适配器配置22接下来单击菜单栏【编辑】,选择【虚拟网络编辑器】,对虚拟网络进行设置。如图3.22所示:图 3.22 虚拟网络编辑器23. 单击左下角的【恢复默认设置】,然后单击确定,就会出现中间的小

37、界面,需要等待大概1分钟。如图3.23所示:图 3.23 恢复默认设置24. 接下来重新启动fedora21,就会在右上角显示一个小方块,提示有限链接,在terminal中输入ifconfig可以看到获取到了ip地址。这是fedora就可以正常使用了。如图3.24所示:图 3.24 查看网址3.2 ns2的安装过程要安装ns2网络模拟器,首先要下载ns-allinone-2.35.tar.gz安装包,直接在网上搜索ns-allinone-2.35.tar.gz就可以找到很多,我是通过fedora下自带的火狐浏览器下载的,默认保存在/下载文件夹下。如图3.25所示:图 3.25 下载ns2软件包

38、然后打开终端先进行ns2安装前的其他必须软件的安装,否则ns2安装的时候会报错,如checking for gcc no等等。打开终端(terminal)依次在终端下输入命令yum install gcc。yum会自动下载rpm包和具有依赖关系的rpm包,进行自动安装。如图3.26所示:图 3.26 安装gcc当出现 is this ok y/d/n:,键入y,按enter键。如图3.27所示:图 3.27 安装gcc安装完成会出现如下提示。如图3.28所示:图 3.28 安装gcc接下来还有很多类似的操作,命令分别是:yum install gcc-c+安装gcc-c+;yum instal

39、l libx11-devel 安装libx11-devel;yum install xorg-x11-proto-devel 安装xorg-x11-proto-devel;yum install libxt-devel 安装 libxt-devel;yum install libxmu-devel 安装libxmu-devel。接下来就可以安装ns-allinone-2.35了,首先将解压到自己想要安装的文件夹下面,我是先解压到当前文件夹下,命令:tar zxvf ns-allinone-2.35.tar.gz 然后再将解压后的文件移动到/usr/local/文件夹下,命令:mv ns-all

40、inone-2.35 /usr/local/。接下来进入解压后的文件夹,命令:cd /usr/local/ns-allinone-2.35。如图3.29所示:图 3.29 安装ns2接下来要修改一个文件linkstate中ls.h文件。命令:vi ./ns-2.35/linkstate/ls.h 在第137行添加高亮的符号。如果没有修改待会安装的时候就会出现make linkstate/ls.o 错误。(注:vi中常用命令:1.显示行号,:set nu 2.编辑 i 3.退出 esc 4.保存退出:x )。如图3.30所示:图 3.30 安装ns2安装ns2,执行一个安装文件系统会自动安装所有

41、内容。首先进入/usr/local/ns-allinone-2.35/文件夹下。然后输入命令 ./install,安装完成会出现安装成功的提示。这个过程比较慢,大概需要十几分钟。如图3.31所示:图 3.31 安装ns2接下来要配置环境变量,命令 vi /root/.bash_profile在其最后一行添加下列环境变量参数。exportpath=$path:/usr/local/ns-allinone-2.35/bin:/usr/local/ns-allinone-2.35/tcl8.5.10/unix:/usr/local/ns-allinone-2.35/tk8.5.10/unixexpo

42、rt path=$path:/usr/local/ns-allinone-2.35/otcl-1.14:/usr/local/ns-allinone-2.35/libexportld_library_path=$ld_library_path:/usr/local/ns-allinone-2.35/tcl8.5.10/librarary接下来关闭终端,重新打开,然后测试环境变量是否设置成功,在终端下输入ns,如果出现%说明环境变量配置成功。如图3.32所示:图 3.32 测试ns2运行测试用例,测试是否安装成功。命令:ns /usr/local/ns-allinone-2.35/ns-2.35

43、/tcl/ex/simple.tcl,运行成功出现如下图所示的界面。如图3.33所示:图 3.33 测试ns23.3 ns2中添加zbr路由协议的过程3.3.1 协议底层文件新建的协议名字就叫做zbr,在/usr/local/ns-allinone-2.35/ns-2.35/文件夹下 新建zbr目录,在zbr目录下包含zbr.h, zbr.cc, zbr_packet.h, zbr_rtable.h, zbr_rtable.cc, zbr_link.cc, zbr_link.h, zbr_rqueue.cc, zbr_rqueue.h九个文件,这9个文件包含在毕业设计的光盘中。3.3.2 需要

44、修改的文件需要对ns2中的一些文件进行修改,来使这个协议在tcl中被调用,需要修改的文件有以下几个:common/packet.h; trace/cmu-trace.h; trace/cmu-trace.cc; tcl/lib/ns-packet.tcl; tcl/lib/ns-default.tcl; tcl/lib/ns-lib.tcl; queue/priqueue.cc; makefile 3.3.3 需要修改的具体内容1. common/packet.h (两个需要修改的地方,添加代码)第一个大约在202行:static const packet_t pt_mdart = 72;st

45、atic const packet_t pt_zbr = 73; /新添加static packet_t pt_ntype = 74; /这一行必须为最后一行第二个大约在421行:name_pt_dccp_reset=dccp_reset;name_pt_zbr= zbr; /新添加name_pt_ntype= undefined; 2. trace/cmu-trace.h (一个需要修改的地方:添加代码)大约在165行:void format_mdart(packet *p, int offset);void format_zbr(packet *p, int offset); /新添加/

46、this holds all the tracers added at run-timestatic packettracer *pkttrc_;3. trace/cmu-trace.cc (需要修改三个地方)第一个:在大约55行添加头文件: #include 第二个:找个合适的地方加上下面的函数:可以在大约864行添加voidcmutrace:format_zbr(packet *p, int offset) struct hdr_zbr* zh = hdr_zbr(p); struct hdr_zbr_request *rq = hdr_zbr_request(p); struct hdr

47、_zbr_reply *rp = hdr_zbr_reply(p); switch(zh-ah_type) case zbrtype_rreq:if (pt_-tagged() sprintf(pt_-buffer() + offset, -zbr:t %x -zbr:h %d -zbr:b %d -zbr:d %d -zbr:ds %d -zbr:s %d -zbr:ss %d -zbr:c request , rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-rq_dst_seqno, rq-rq_src, rq-rq_s

48、rc_seqno); else if (newtrace_) sprintf(pt_-buffer() + offset,-p zbr -pt 0x%x -ph %d -pb %d -pd %d -pds %d -ps %d -pss %d -pc request ,rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-rq_dst_seqno, rq-rq_src, rq-rq_src_seqno); else sprintf(pt_-buffer() + offset,0x%x %d %d %d %d %d %d (reque

49、st),rq-rq_type, rq-rq_hop_count, rq-rq_bcast_id, rq-rq_dst, rq-rq_dst_seqno, rq-rq_src, rq-rq_src_seqno); break; case zbrtype_rrep: case zbrtype_hello:case zbrtype_rerr:if (pt_-tagged() sprintf(pt_-buffer() + offset, -zbr:t %x -zbr:h %d -zbr:d %d -zbr:ds %d -zbr:l %f -zbr:c %s , rp-rp_type, rp-rp_ho

50、p_count, rp-rp_dst, rp-rp_dst_seqno, rp-rp_lifetime, rp-rp_type = aodvtype_rrep ? reply : (rp-rp_type = aodvtype_rerr ? error : hello); else if (newtrace_) sprintf(pt_-buffer() + offset, -p zbr -pt 0x%x -ph %d -pd %d -pds %d -pl %f -pc %s ,rp-rp_type,rp-rp_hop_count,rp-rp_dst,rp-rp_dst_seqno,rp-rp_l

51、ifetime,rp-rp_type = zbrtype_rrep ? reply :(rp-rp_type = zbrtype_rerr ? error : hello); else sprintf(pt_-buffer() + offset,0x%x %d %d %d %f (%s),rp-rp_type,rp-rp_hop_count,rp-rp_dst,rp-rp_dst_seqno,rp-rp_lifetime,rp-rp_type = zbrtype_rrep ? reply :(rp-rp_type = zbrtype_rerr ? error : hello); break;

52、default:#ifdef win32 fprintf(stderr, cmutrace:format_zbr: invalid zbr packet typen);#elsefprintf(stderr, %s: invalid zbr packet typen, _function_);#endif abort(); 第三个:在大约1529行添加case pt_ping:break;case pt_zbr: /新添加format_zbr(p, offset); /新添加break; /新添加case pt_arp:format_arp(p, offset);break;4. tcl/lib/ns-packet.tcl(需要修改一个:添加)大约172行:添加:# wireless:arp # address resolution protocol, network wireless stackgaf # geographic adaptive delity, for ad-hoc networksll # network wireless stack lrwpan # zheng, wpan/p802_15_4mac.ccmac # network wireless stackzbr # zigbee 新添加5. tcl/lib/ns-default.tcl(需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论