NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt_第1页
NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt_第2页
NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt_第3页
NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt_第4页
NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

无线传感器网络仿真平台NS2 计算机应用技术张道远 内容 NS2介绍OTcl语言简介NS2的实现机制和体系结构利用NS2模拟流程和注意事项NS2 协议仿真 NS2介绍 NS2是面向对象的 离散事件驱动的网络环境模拟器 开发于UCBerkeley 它可以模拟各种IP网络环境 NS2实现了对许多网络协议的模拟 如TCP UDP 和数据源发生器 trafficsource 如FTP WWW Telnet Web CBR和VBR等 NS2模拟了路由队列的管理机制 如DropTail RED和VBR 实现了Dijkstra和其他的路由算法 NS2也实现了Multicasting和一些应用于局域网模拟的在MAC层的协议 NS2采用分裂对象模型的开发机制 由C 和Otcl 加上面向对象特性的TCL脚本程序设计语言 开发于MIT 两种程序设计语言实现 OTcl语言简介 Tk是Tcl在XWindow环境下的扩展 它包含了Tcl的全部的C库函数 以及支持XWindow的窗口 控件等C库函数 为用户开发图形用户界面提供了方便 Tcl是解释执行的脚本语言 它的实现依赖于Tcl内部的C函数库 添加新的C函数就可以扩充Tcl的命令和功能 是扩展性非常强的脚本程序设计语言 Tcl解释器把用户输入的命令和程序语句进行初步分析 然后调用C函数库里的相应函数来执行 输出结果 Tcl是无强制类型的脚本语言 一切变量 不论整型 浮点型等 都以字符串的形式存储 Otcl是Tcl的面向对象 ObjectOriented 的扩展 在Otcl中加入了类的概念 对象是类的实例 它有自己的属性 成员变量 InstVar 和自己的内部操作 成员函数 InstProc 对象具有继承 封装 多态性和动态绑定等性质 面向对象机制的加入使得原始的Tcl变得更加强大 更加方便使用 实际上 Tcl和OTcl的关系就像C和C 因此 所有的Tcl命令都可以在OTcl中使用 C 程序模块的运行速度非常快 是强制类型的程序设计语言 变量严格定义整型 浮点型和字符 字符串类型 容易实现精确的 复杂的算法 但是修改和发现 修正bug所花费的时间要长一些 适合对具体协议的模拟和实现 因为它需要很有效率的处理字节 Byte 报头 PacketHeader 等信息 需要应用合适的算法在大量的数据集合上进行操作 Otcl是脚本程序编写语言 是无强制类型的 比较简单 容易实现和修改 容易发现和修正bug 虽然它的运行速度和C 的模块相比要慢很多 许多网络中的研究工作都围绕着网络组件和环境的具体参数的设置和改变而进行的 需要在短时间内快速的开发和模拟出所需要的网络环境 scenarios 并且方便修改和发现 修复程序中的Bug 这种环境的配置只需要一次 NS2的实现机制和体系结构 NS是一种面向对象Tcl OTcl 语言脚本解释器 它有一个事件调度器 一个网络组件库 换句话说 使用NS时需要使用OTcl语言编写脚本文件 事件调度器 事件在NS中是一个具有唯一ID号的数据包 数据包被处理的时间及处理它的主对象的总称 事件调度器跟踪仿真的时间并且根据预定时间安排队列中的事件 激活当前时间对应的处理该事件的网络对象 事件调度器维护一个排序的数据结构 缺省情况下ns使用链表 对事件有序地执行 释放 并激活事件处理对象 NS仿真试图 NS由C 和OTcl写成 其中C 语言实现各种网络组件 这是为了提高效率 OTcl语言编写脚本文件来建立网络和运行仿真 这样是为了简单而快速地进行网络环境的建立 编译过的C 对象只要通过链接 创建一个与之匹配的OTcl对象就可在OTcl解释器中使用 OTcl与C 的类对应示意图 NS2的总体系结构 NS2的目录结构ns 2 34 存放C 代码的地方 ns 2 34 tcl 存放OTcl代码的地方 Ns 2 34 tcl lib 存放与组件 agent node link packet address routing 实现有关的OTcl代码 在此目录下 有以下几个文件 ns lib tcl Simulator类定义与成员函数实现 如run simplexlink flush trace等 ns default tcl 各种网络组件配置的缺省值 ns 2 34 tcl ex ns 2 34 tcl test 存放一些例子脚本文件和验证结果 NS2的部分类结构 分类器 classifier是Ns 2基本网络组件的一个大类 它的基本派生类有地址分类器 AddrClassifier 和多播分类器 McastClassifier 等 基于分类器的基本网络组件具有1个或多个可能的数据输出路径 属于交换 Switch 设备 对应来说 连接器Connector只有一个数据的输出路径 拓扑结点 Node 是由一个结点入口对象和若干个分类器 Classifier 组成的一个符合对象 连接器 Connector是NS2基本网络组件中的另一个大类 它的基本派生类对象包括缓冲队列 Queue 延迟 Delay 各种产生和处理数据包的代理 Agent 和对象的跟踪器 Trace 基于连接器的基本网络组件只有一个可能数据输出的路径 和分类器有1个或多个可能的数据输出路径 Switch 是不同的 拓扑结点连接类 Link 是NS2中另一个主要的复合组件对象 一个结点和另一个结点之间的简单连接 simplex link 是单向的 一个最基本的简单连接由一个连接入口 包缓冲队列 延迟处理对象 废弃处理对象和时间处理对象 TTL 组成 两个节点间数据包通信的实例 如何从OTcl来操纵NS2的C 对象 这包括 动态创建一个新的C 对象 访问这个C 对象的属性 调用该C 对象的方法 利用NS2模拟流程和注意事项 1 流程整个模拟流程主要有三部分工作量 一是修改源代码 二是编写Tcl模拟脚本 三是分析结果 源代码在需要修改的时候才修改 注意修改C 代码时候 要修改相应的OTcl代码需要用awk语言对结果进行分析 用gnuplot作图或者用nam生成动画 tcl脚本 ns 2 Trace文件Nam文件 nam Gawkgnuplot 2 注意事项 NS2 协议仿真 1 MTE MinimumTransmissionEnergy 协议 在MTE协议中 节点选择离自己平面距离最近的节点进行路由中转当且仅当如下公式满足时 节点A将会选择B转发自己的数据到节点C 2 LEACH Low EnergyAdaptiveClusteringHierarchy 协议 LEACH协议分为两个阶段操作 即类准备阶段 set upphase 和就绪阶段 readyphase 为了使能耗最小化 就绪阶段持续的时间比类准备阶段长 类准备阶段和就绪阶段所持续的时间总和称为一轮 round 在类准备阶段 LEACH协议随机选择一个传感器节点作为类头节点 clusterheadnode 随机性确保类头与基站之间数据传输的高能耗成本均匀地分摊到所有传感器节点 具体的选择办法是 一个传感器节点随机选择0和1之间的一个值 如果选定的值小于某一个阈值T n 那么这个节点成为类头节点 T n 值按右边公式计算 N 网络中传感器节点的总数 p 一轮中网络的类头节点数 r 己完成的轮数 Gr 在剩余的N k r个回合中未成为类头节点的传感器节点组成的集合 在类头节点选定后 该类头节点对网络中所有节点进行广播 广播数据包含有该节点成为类头节点的信息 一旦传感器节点收到广播数据包 根据接收到的各个类头节点广播信号强度 该节点选择信号强度最大的类头节点加入 向其发送成为其成员的数据包 类形成后 类头节点采用TDMA策略分配通道使用权给类内节点 一旦处于就绪阶段 类头节点开始接收类内各节点采集的数据 然后采用数据融合和数据压缩等技术进行汇聚 将整合后的数据传输给Sink节点 在就绪阶段持续了一段时间后 网络又进入了另一次的类准备阶段 3 LEACH C协议 LEACH C引入中心控制机制 保证簇头较优地分布于网络中 从而优化网络性能 LEACH C协议也分为簇的建立和数据传输阶段 在簇的建立阶段 所有节点都将自己的位置与能量信息传送给基站 基站计算出所有节点能量的平均值 只有能量大于平均值的节点才有资格成为簇头 然后基站利用模拟退火算法划分簇 选出簇头节点 然后向所有节点广播簇头节点的ID信息 各个节点根据接收的消息判断自己的身份 如果ID与自己的ID信息相同 则成为簇头 否则 则根据自己所在的簇决定自己的数据传输TDMA时隙 并进入 睡眠 状态 直到传输数据的时隙到来 数

温馨提示

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

评论

0/150

提交评论