毕业论文设计基于ns2无线传感网-adhoc网络仿真-设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 设计 基于 ns2 无线 传感 adhoc 网络 仿真
- 资源描述:
-
课 程 设 计 课程名称: 无线传感器网络原理及方法 设计题目: 基于NS2无线传感网“Ad Hoc网络仿真”设计 学 院: 信息工程与自动化学院 专业年级: 2010级计算机系 104班 学 号: 201010405424 学生姓名: 李本双 指导教师: 江虹 日 期: 2013-7月 课 程 设 计 任 务 书 信息工程与自动化 学院 计算机科学与技术 专业 2010 年级 学生姓名: 李本双 课程设计题目: 基于NS2无线传感网“Ad Hoc网络仿真”设计 课程设计主要内容: 本课程设计的任务是在原有书本知识和实验基础上学习嵌入式系统中基本的程序设计方法和技术。本课程设计的目的是通过设计使学生加深对理论课的理解,提高学生运用理论知识解决实际问题的能力。 基本理论 1、 无线传感网技术原理 2、 操作系统 3、 嵌入式软件开发技术 实验方法与基本要求 嵌入式开发采用宿主机加目标机的模式,宿主机是执行编译、链接、定址过程的计算机;目标机是远行嵌入式软件的硬件平台。要求学生掌握嵌入式系统开发的一般方法,整个设计过程必须由学生自己独立完成,课程设计按二人一组,分组进行全过程的设计。 设计内容 1、建立传感网汇聚节点 2、设计传感节点的网络结构(星形、树形) 3、设计上位机监控程序(图形方式显示节点拓扑结构、采集数据) 设 计 指 导 教 师 (签字): 教学基层组织负责人(签字): 2013年 7 月 13 日 目 录 1、课程设计的目的及要求……………………………………4 1. 1、设计目的…………………………… ………………………………4 1. 2、所需仿真平台及网络仿真软件…… …………… … ………………4 1.3、ns-allinone-2.35的安装……………… …… ……………………4 2、WSN开发背景……………………………… …………… 7 2.1、WSN简介…………………………………… ……………………7 2.2、 应用领域 ………………………………… ………………………8 2.3、 主要特点 ………………………………………… ………………8 2.4、 硬件平台…………………………………………… ……………8 2.5、软件平台……………………………………… …………………8 2.6、仿真系统…………………………………… ……………………10 2.7、 数据可视化………………………………… ……………………10 3、 NS2开发理论及方法…………………………………………………10 4、Ad Hoc网络仿真通信场景的设计与实现…………………………14 4.1 设计要求………………………………… ……………………14 4.2 详细设计……………………………… ………………………14 随机建立通信场景文件………… …………………………………………14 4.3 源代码(dd.tcl文件)………………… ………………………14 4.4 仿真截图………………………………… ……………… ……………21 5、Ad Hoc网络仿真有关数据跟踪的设计与实现………………23 5.1 设计要求………………………………………………………23 5.2 详细设计………………………………………………………23 1)定义节点的配置参数……………………… ……………………23 2)初始化跟踪档案……………………………… …………………24 5.3 源代码(aa.tcl文件)……… ………… …………………24 5.4 仿真截图…………………… ……………………… ……… 30 6.总结和体会…………………………………………………………33 7、参考文献………………………… ………………………………33 - 3 - 基于NS2无线传感网“Ad Hoc网络仿真”设计 1、课程设计的目的及要求 1. 1、设计目的 1).学习Ad Hoc网络AODV路由协议与其在NS2中的仿真; 2).掌握NS2中的随机数据流与随机场景的生成; 3).初步学习使用trace文件的处理方法,进行。 4 ).建立个网络,再进行测试网络全程跟踪(对于吞吐量、数据包丢失、分组延迟) 5 ).评价指标为数据包成功递交率、平均延迟等 1. 2、所需仿真平台及网络仿真软件 Ubuntu系统13.04.1 ns-allinone-2.35 1.3、ns-allinone-2.35的安装 1).下载软件 ns-allinone-2.35.tar.gz ( 通过ctrl+alt+T打开终端,在其中输入 cd ns2.35 <回车> tar zxvf ns-allinone-2.35.tar.gz <回车> 将ns2.35解压到当前目录下 2).安装前的准备工作 为了更好的安装ns2,需要更新ubuntu系统文件,在终端中输入命令 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 首次采用sudo时,需要用户密码,也就是安装ubuntu时设置的。 还需要进行一些package的安装,输入命令 sudo apt-get install build-essential sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev sudo apt-get install libxmu-dev libxmu-headers 3).准备工作做好后,开始安装软件 $cd ns-allinone-2.35 $./install (别忘了前面的那个点) 安装过程需要一会。安装正确的话应该可以看到如下提示: IMPORTANT NOTICES: 4).配置环境变量 $sudo gedit .bashrc(这里一定要看清gedit和.bashrc之间有一个空格) 在弹出来的窗口的文件末尾加入:(注意:下列代码中wangtiantian/mysoft/是我的ns-allinone-2.35文件路径,要按照你自己的更改) Export PATH=$PATH:/home/administrato/桌面/ns2.35/bin:/home/administrator/桌 面/ns2.35/tcl8.5.10/unix:/home/administrator/桌面/ns2.35/tk8.5.10/unix export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/administrator/桌面/ns2.35/otcl-1.14:/home/administrator/桌 面/ns2.35/lib export TCL_LIBRARY=$TCL_LIBRARY:/home/administrator/桌面/ns2.35/tcl8.5.10/library 保存退出。 5).验证测试 重新打开一个终端,输入ns并回车 $ns (如果正常的话,会出现“%”操作提示符) 输入一段TCL脚本代码进行测试 %puts "Hello ns2" Hello ns2 % 说明安装成功。真是不容易呀! 6)、安装过程遇到的问题以及解决办法 问题1 Error encountered by me:- In file included from linkstate/ls.cc:67:0: linkstate/ls.h: In instantiation of ‘void LsMap::eraseAll() [with Key = int; T = LsIdSeq]’: linkstate/ls.cc:396:28: required from here linkstate/ls.h:137:20: error: ‘erase’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] linkstate/ls.h:137:20: note: declarations in dependent base ‘std::map, std::allocator > >’ are not found by unqualified lookup linkstate/ls.h:137:20: note: use ‘this->erase’ instead make: *** [linkstate/ls.o] Error 1 3 Ns make failed! 解决办法 Solution: a. Go to ns-allinone-2.35/ns-2.35/linkstate/ b. Now edit ls.h In line number 137, in place of void eraseAll() { erase(baseMap::begin(), baseMap::end()); } make it void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); } c. Save the file and again run ./install 问题二 administrator@ubuntu:~$ ns % nam Can't find a usable init.tcl in the following directories: :/home/administrator/桌面/ns2.35/tcl8.5.10/library:/home/administrator/桌面/ns2.35/tcl8.5.10/library/init.tcl /home/administrator/桌面/ns2.35/lib/tcl8.5.10/lib/tcl8.5.10/lib/tcl8.5.10/library ./library ./tcl8.5.10/library ./tcl8.5.10/library This probably means that Tcl wasn't installed properly. child killed: SIGABRT % 解决办法: administrator@ubuntu:~$ sudo apt-get install nam 2、WSN开发背景 2.1、WSN简介 无线传感网(wireless sensor network)是由在空间中分布的含有传感器的自主设备所组成的无线网络。这些设备协同监测不同位置上的物理或环境条件,比如温度、声音、振动、压力、运动、污染等。无线传感网的开发最初用于军事用途,比如战场监视。如今无线传感网已被用于很多民事用途,包括生态环境监测、医疗卫生应用、家庭自动化、交通控制等。传感网络中的每一个节点除了装有一个或多个传感器以外,一般还装有一个无线电收发器,一个小型微控制器,和一个能量装备,这通常是一个电池。单一传感节点的大小不一,大如一个鞋盒,小至一粒尘土。同样的,部署这些传感节点的花费也不一,这要取决于传感网络的大小以及单一传感节点的复杂度。在尺寸和费用上对传感节点的制约,导致了对其在能源、存储、计算速度和带宽等资源方面上的相关制约。 在计算机科学和电信学领域,无线传感网是一个活跃的研究方向,每年都安排有大量的研究小组和研讨会。 2.2、 应用领域 无线传感网在不同的场合有很多应用。在商业和工业领域,有些数据很难用有线传感器来监视,或者实现起来代价过于昂贵,在这种场合可以用无线传感网来监视。无线传感网可以被部署在野外环境,它们可以被放置多年(用来监视某些环境因素)而不需要重新充电或者更换能量装备。它们能够组成属地的边界,监视入侵者的行进过程(将信息在节点之间传递)。 无线传感网的用途很多,典型的应用包括监视、跟踪和控制。它一般被用于自然环境监视、目标跟踪、核反应堆控制、火警监测、交通监视等用途。在一个典型的工作环境中,无线传感网被分散布置到区域中的各处,通过它的传感节点来采集数据。 地区监视是无线传感网的一种典型应用。在此应用中,无线传感网被布置在需要监视某种现象的区域中。举例来讲,可将大量的传感节点布置在战场上,取代地雷来监视敌人的入侵。一旦传感器检测到被监视事件(热、压力、声音、光、电磁场、振动等)的发生,就需要将该事件报告给基站,基站收到报告后做出相应的动作(比如将消息发至互联网或者卫星)。根据具体应用的场合,不同的性能目标需要不同的数据传播策略,这些目标包括对响应的实时性的要求,对数据冗余的要求,对安全性的要求等。 2.3、 主要特点 无线传感网的特点有: Ø 节点小型化 Ø 有限的能量供给 Ø 苛刻的环境条件 Ø 节点失效问题 Ø 动态的网络拓扑 Ø 通讯失败问题 Ø 大量部署的节点 Ø 无人值守 可以将传感节点想像成一台小巧的计算机,特别是在它们的接口和组件方面。传感节点通常由这些部分组成,一个计算能力和存储能力有限的处理单元,一些传感器(有特定的调节电路),一个通讯设备(通常为无线电收发器),和一个通常为电池的能量供给装置。其他一些可选部分有环境能源发电模块,辅助的专用集成电路,以及可能的辅助通讯设备(比如RS232或USB)。 基站可以有一个或者多个,它们是无线传感网中的特殊成员,具有相对强大的计算、能量和通讯资源。基站的作用相当于传感节点和最终用户之间的网关。 典型的无线传感网架构见图1。 2.4、 硬件平台 硬件方面的主要挑战在于制造低成本和微小的传感节点。考虑这一目标,现在的传感节点主要还处在原型阶段。小型化和低成本的解决要寄希望于最近以及将来在微机电系统(MEMS)和纳机电系统(NEMS)领域的进展。 SNM - Sensor Network Museumtm.上概括了常见的传感网络平台,组件,技术和相关主题。 和主流计算机不同,目前还没有无线传感网的官方标准,所以硬件以及软件的互操作性和可重用性都较低。下面列出一些领域内研究所使用的标准: ZigBee Ø Wibree Ø 6lowpan 2.5 、 软件平台 对无线传感网节点而言,能量是最缺乏的资源,它决定了节点们的生命周期。无线传感网节点将被大量放置到各式各样的环境下,包括遥远和敌对的区域,这样自组织通讯将变得重要。由于这些原因,算法和协议必须解决以下问题: Ø 生命周期最大化 Ø 鲁棒性和容错性 Ø 自配置 无线传感网软件研究上的一些热门课题有: Ø 安全性 Ø 可移动性(移动中的传感节点或者基站) Ø 中间件(在软件和硬件之间设计中间层) (1) 操作系统 一般来说,无线传感网节点上的操作系统比通用操作系统的复杂度低。这有两方面的原因,一方面是由于传感网应用程序的特定需求,另一方面是由于传感网硬件平台的资源限制。举一个例子,传感网应用程序通常不要求像PC机应用程序那样的可交互性,这样操作系统就不需要支持那样的用户接口。更进一步讲,在内存和内存映射硬件支持上的资源限制,使得类似于虚拟内存的机制变得不必要或者不可能实现。 无线传感网在硬件上和传统的嵌入式系统没有区别,这就有可能在传感网上使用像eCos或者uC/OS这样的嵌入式操作系统。不过这些操作系统的设计通常具有实时特性,而与传统嵌入式操作系统不同的是,专用于传感网的操作系统一般不支持实时性。 TinyOS也许是第一个专门为无线传感网而设计的操作系统。和大多数操作系统不同,TinyOS采用基于事件驱动的编程模型,而不是基于多线程。TinyOS程序由事件处理例程和具备语义运行的任务所组成。当外部事件发生时,比如新到数据包或者读传感器,TinyOS调用相应的事件处理例程来处理该事件。事件处理例程可以发布任务,这些任务将被TinyOS核心所调度。不管是TinyOS系统,还是TinyOS下开发的应用程序,都是用nesC编程语言写成的。nesC是C编程语言的扩展,它被设计成可以发现在任务和事件处理例程之间的竞争条件。 存在一些操作系统支持C语言编程,这些操作系统包括Contiki、MANTIS、BTnut、SOS和Nano-RK。Contiki的设计支持从网络加载模块,还支持运行时加载标准ELF文件。和TinyOS一样,Contiki的核心是基于事件驱动的,但是Contiki支持基于每应用程序的多线程。更进一步的,Contiki支持protothreads,它在提供类似于多线程编程抽象的同时,只支付了非常小的内存开销。与事件驱动的Contiki核心不同,MANTIS和Nano-RK的核心基于抢先式多线程。在抢先式多线程方式下,应用程序不需要显式地释放微处理器给其他进程,取而代之的是,核心将时间划片给活动进程,并决定当前可以执行哪一个进程。这使得应用程序的编程更加容易。Nano-RK核心对资源的分配是实时的,能够有很好的粒度来控制任务对CPU时间、网络和传感器的占用。和TinyOS、Contiki一样,SOS是基于事件驱动的操作系统,SOS的主要功能是支持可加载模块,一个完整的系统由一些小模块所构建,这样的构建可能发生在运行时。为了支持模块接口内在的动态性,SOS也致力于支持动态内存管理。BTnut基于协作式多线程和plain C代码,有打包的开发工具和指南。 (2) 中间件 目前有大量的研究投入在无线传感网中间件的设计上。一般来讲研究方向可以分为分布式数据库、移动代理和基于事件的模型。 (3) 编程语言 在传感节点上的编程比在常规的计算机系统困难。这些节点上受限的资源状态,带来了新的编程模型,尽管这些节点大多采用C编程语言。下面是一些编程语言列表: Ø c@t(在空间和时间上的某一点上进行计算) Ø DCL(分布式组合语言) Ø galsC Ø nesC Ø Prototheads Ø SNACK Ø SQTL (4) 算法 无线传感网包含大量的传感节点,这就隐含地要求为无线传感网所设计的算法是分布式算法。在无线传感网中,最匮乏的资源是能源供给,而最耗费能源的操作之一是数据传输。由于这个原因,无线传感网的算法研究大都集中在能源相关的从传感节点到基站的数据传输算法上。由于无线传输的能源消耗相对于传输距离以多项式增长,数据传输常是多跳的(从节点到节点,往基站方向)。 无线传感网的算法研究和协议研究的区别在于,算法研究的数学模型通常更抽象,更具一般性,但是有时候实用性不如协议设计的模型。 2.6 、 仿真系统 存在一些专门的无线传感网仿真平台,比如TOSSIM,它是TinyOS的一部分。ns-2之类的传统的网络仿真器也可用来仿真。一份详尽的无线传感网络仿真工具列表可以在CRUISE WSN Simulation Tool Knowledgebase上找到。 2.7、 数据可视化 无线传感网所采集的数据通常以数字数据的形式存放在一个中心基站。有很多程序支持查看其所存放的大量数据,比如TosGUI、MonSense和GSN。另一方面,开放地理空间联盟(Open Geospatial Consortium)正在制定可互操作接口和元数据编码的标准,这些标准支持将那些异质的传感站点实时地集成到互联网,允许任何一个个体使用Web浏览器监视或控制无线传感网。 3、NS2开发理论及方法 NS简单工具介绍 对于使用网络仿真软件来做网络效能分析的人而言,步骤通常是先设计出符合自己需要的网络仿真环境,设定其不同的参数,执行仿真,收集结果资料,最后把资料使用图片或表格把结果呈现出来以方便分析实验。一般而言,对于ns2的初学者而言,总是会遇到一个问题,就是网络仿真程序跑完后,接下来该如何分析。这是非常重要的一个过程,所以希望ns2的初学者能好好的研究此章节的内容,相信一定会对大家的研究有相当的帮助。 本节打算以一个简单的网络环境为范例,介绍如何使用一些工具来分析和呈现仿真结果,这包含了如何去量测End-to-End Delay、Jitter、Packet Loss、和Throughput。而采用的方法是去分析traffic trace档案的方式,这种方法的优点是简单且不需要去修改到ns2核心的部份,但缺点是若是仿真资料若是太多,traffic trace的档案会太大,这样会增加分析所需要的时间。另外一种方法,是去更改ns2核心,增加或修改一些档案,把所需要量测的参数直接记录下来,这种方法的优点是仿真结束后,所需要量测的数据已经完全记录下来,但缺点是要动到ns2核心的部分,对于初学者而言,这是一个很大的门槛,这个方法笔者留到后面的章节在做介绍。 笔者先对要仿真的环境做一个简单的介绍。这个网络的环境包含了四个网络节点(n0,n1,n2,n3),如下图所示。网络节点n0到节点n2之间,和节点n1到节点n2之间的网络频宽(bandwidth)是2Mbps,延迟时间(propagation delay)是10ms。网络拓朴中的频宽瓶颈是在节点n2到节点n3之间,频宽为1.7Mbps,延迟的时间为20ms。每个网络节都是采用DropTail queue的方式,且在节点n2到节点n3之间的最大队列长度是10个封包的长度。在节点n0到n3之间会有一条FTP的联机,FTP应用程序是架构在TCP之上,所以在写仿真环境的描述语言的时候,必需先建立一条TCP的联机,在来源端n0上使用TCP agent产生”tcp”来发送TCP的封包;在目的地端n3使用TCPsink agent产生”sink”来接受TCP的资料、并产生回复封包(ACK)回传送端、最后把接收的TCP封包释放。最后要把这两个agent连起来(connect),联机才能建立。若是没有额外的参数设定,TCP封包的长度为1Kbytes。在这里顺便补充说明一下,对于ns2仿真参数内定值设定是在ns-allinone-2.27\ns-2.27\tcl\lib目录下的ns-default.tcl,有想要进一步了解的人,可以去查看此档。另外,在节点n1到n3之间有一条固定的传输速率的联机(Constant Bit Rate,CBR),CBR应用程序是架构在UDP之上,因此必需在n1使用UDP agent来产生”udp”用来发送UDP封包,在n3上使用Null agent来产生”sink”以接收由n1传送过来的UDP封包,然后把接收的封包释放。CBR的传送速度为1Mbps,每一个封包大小为1Kbytes。CBR是在0.1秒开始传送,在4.5秒结束传输;FTP是在1.0秒开始传送,4.0秒结束传输。 [Simulation Topology] Ns2.35里面的simple.tcl例子仿真结果:如下 仿真结束后,会产生两个档案,一个是out.nam,这是给NAM用的,用来把仿真的过程用可视化的方式呈现出来,这可以让使用者用”看”的方式去了解封包传送是如何从来源端送到接收端。另一个档案是out.tr,这个档案记录了仿真过程中封包传送中所有的事件,例如第一笔记录是一个CBR的封包,长度为1000bytes,在时间0.1秒的时候,从n1传送到n2。这个档案对我们做效能分析很重要,所以要先对这个档案的格式做仔细的介绍。 每一笔记录的开始都是封包事件发生的原因,若是r则表示封包被某个节点所接收,若是+则表示进入了队列,若是-则表示离开队列,若是d则表示封包被队列所丢弃。接着的第二个字段表示的是事件发生的时间;字段三和字段四表示事件发生的地点(从from node到to node);字段五表示封包的型态;字段六是封包的大小,字段七是封包的旗标标注;字段八表示封包是属于那一个资料流;字段九和字段十是表示封包的来源端和目的端,这两个字段的格式是a.b,a代表节点编号,b表示埠号(port number);字段十一表示封包的序号;最后字段十二表示封包的id。以前面trace file的第一笔为例,意思就是说有一个封包pakcet id为0,资料流id为2,序号为0,长度为1000 bytes,型态为CBR,它是从来源端1.0要到目的地3.1,在时间0.1秒的时候,从节点1进入了节点2的队列中。 接下来,笔者先简单介绍awk,然后如何使用awk去分析trace file,以得到Throughput、Delay、Jitter、和Loss Rate。 [awk] A.简介 awk是一种程序语言。它具有一般程序语言常见的功能。因awk语言具有某些特点,如:使用直译器(Interpreter)不需先行编译;变量无型别之分(Typeless),可使用文字当数组的注标(Associative Array)等特色。因此,使用awk撰写程序比起使用其它语言更简洁便利且节省时间。awk还具有一些内建功能,使得awk擅于处理具资料列(Record),字段(Field)型态的资料;此外, awk内建有pipe的功能,可将处理中的资料传送给外部的 Shell命令加以处理, 再将Shell命令处理后的资料传回awk程序,这个特点也使得awk程序很容易使用系统资源。 B. awk是如何运作的 为便于解释awk程序架构,以及相关的术语,笔者就以上面trace file为例,来加以介绍。 A.名词定义: 1. 1. 资料列:awk从资料文件上读取的基本单位,以trace file为例,awk读入的 第一笔资料列为 ”+ 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0” 第二笔资料列为 “- 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0” 一般而言,一笔资料列相当于资料文件上的一行资料。 2. 2. 字段(Field):为数据列上被分隔开的子字符串。 以资料列”+ 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0”为例, 一 二 三 四 五 六 七 八 九 十 十一 十二 + 0.1 1 2 cbr 1000 ------- 2 1.0 3.1 0 0 一般而言是以空格符来分隔相邻的字段。 当awk读入资料列后,会把每个字段的值存入字段变量。 字段变量 意义 $0 为一字符串, 其内容为目前awk所读入的资料列. $1 代表 $0 上第一个字段的资料. $2 代表 $0 上第二栏个位的资料. …… …… B.程序主要节构: Pattern1 { Actions1 } Pattern2 { Actions2 } …………………………… Pattern3 { Actions3 } 一般常用”关系判断式”来当成Pattern。例如: x > 3 用来判断变量x是否大于3 x == 5 用来判断变量x是否等于5 awk提供c语言常见的关系操作数,如:>、<、>=、<=、==、!=等等 Actions是由许多awk指令所构成,而awk的指令与c语言中的指令非常类似。 IO指令:print 、 printf( ) 、getline ...... 流程控制指令 : if ( ...) {...} else {…}、 while(…){…} …… 在awk程序的流程为先判断Pattern的结果,若为真True则执行相对应的Actions,若为假False则不执行相对的Actions。若是处理的过程中没有Pattern,awk会无条件的去执行Actions。 C.工作流程: 执行awk时, 它会反复进行下列四步骤。 1. 自动从指定的资料文件中读取一笔资料列。 2. 自动更新(Update)相关的内建变量之值。 3. 逐次执行程序中 所有 的 Pattern { Actions } 指令。 4. 当执行完程序中所有 Pattern { Actions }时,若资料文件中还有未读取的料,则反复执行步骤1到步骤4 。 awk会自动重复进行上述的四个步骤,所以使用者不须在程序中写这个循环。 [End-to-End Delay] 笔者把量测CBR封包端点到端点间延迟时间的awk程序,写在档案measure-delay.awk档案中,读者可以参考此范例,修改成符合读者需求的程序。 4、Ad Hoc网络仿真通信场景的设计与实现 4.1. 设计要求 1) 仿真场景不少于100m X 100m 2) 随机定义一个不少于30个节点的网络18对通信连接 3) 设置一个Sink节点,用于收集所有其他节点发送的数据 4.2. 详细设计 随机建立通信场景文件 步骤一:在终端~/ns-allinone-2.35/ns-2.35/indep-utils/cmu-scen-gen/路径下输入命令: ns cbrgen.tcl -type cbr -nn 30 -seed 1 -mc 10 -rate 2.0 > cbr-30n-18c-2p 注:也可以将cbrgen.tcl复制到所需文件夹下直接命令行运行。 该命令创建了一个具有30个节点、18对通信连接、 每秒钟发送100个分组的以CBR为业务源的通信场景文件cbr-30n-18c-2 4.3、源代码(dd.tcl文件如下) # 产生一个仿真的对象 set ns [new Simulator] #针对不同的资料流定义不同的颜色,这是要给NAM用的 $ns color 0 blue $ns color 1 red $ns color 2 white #开启一个NAM trace file $ns node-config -Routing AODVRR set nf [open out.nam w] #开启一个trace file,用来记录封包传送的过程 $ns namtrace-all $nf set nd [open out.tr w] $ns trace-all $nd #定义一个结束的程序 proc finish {} { global ns nf nd $ns flush-trace close $nf close $nd #以背景执行的方式去执行NAM exec nam out.nam & exit 0 } # Create and configure topography (used for mobile scenarios) set topo [new Topography] # 100mx100m 建立100x100 $topo load_flatgrid 100 100 #产生30个网络节点 for {set i 0} {$i < 30} {incr i} {set node_($i) [$ns node] } for {set i 0} {$i < 30} {incr i} { #把节点连接起来,并且随机分布 $ns duplex-link $node_($i) $node_([expr ($i+1)%30]) 1Mb 10ms DropTail } #建立18条UDP的联机 # # nodes: 30, max conn: 18, send rate: 0.01, seed: 1 #该命令随机创建了一个具有30个节点、18对通信连接、 #每秒钟发送100个分组的以CBR为业务源的通信场景文件 cbr-30n-18c-100.0p。 # 1 connecting to 2 at time 0.5568388786897245 set udp_(0) [new Agent/UDP] $ns attach-agent $node_(0) $udp_(0) #在UDP联机之上建立CBR应用程序(下相同) set cbr_(0) [new Application/Traffic/CBR] $cbr_(0) set packetSize_ 500 $cbr_(0) set interval_ 0.01 $cbr_(0) attach-agent $udp_(0) set null_(0) [new Agent/Null] $ns attach-agent $node_(3) $null_(0) $ns connect $udp_(0) $null_(0) #设定cbr开始执行时间(下面相同) $ns at 0.5568388786897245 "$cbr_(0) start" # # 4 connecting to 5 at time 5.333118917575632 # set udp_(1) [new Agent/UDP] $ns attach-agent $node_(4) $udp_(1) set null_(1) [new Agent/Null] $ns attach-agent $node_(5) $null_(1) set cbr_(1) [new Application/Traffic/CBR] $cbr_(1) set packetSize_ 512 $cbr_(1) set interval_ 0.01 $cbr_(1) set random_ 1 $cbr_(1) set maxpkts_ 10000 $cbr_(1) attach-agent $udp_(1) $ns connect展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




毕业论文设计基于ns2无线传感网-adhoc网络仿真-设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2959382.html