NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt

NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NS2网络模拟简介以及MTE、LEACH、LEACH-C协议仿真

无线传感器网络仿真平台NS2 计算机应用技术 张道远 内容 NS2介绍 OTcl语言简介 NS2的实现机制和体系结构 利用NS2模拟流程和注意事项 NS2—协议仿真 NS2介绍 NS2是面向对象的,离散事件驱动的网络环境模拟器,开发于UC Berkeley,它可以模拟各种IP网络环境。 NS2实现了对许多网络协议的模拟,如TCP,UDP,和数据源发生器(traffic source)如FTP,WWW,Telnet,Web,CBR和VBR等。 NS2模拟了路由队列的管理机制,如Drop Tail,RED和VBR,实现了Dijkstra和其他的路由算法。 NS2也实现了Multicasting和一些应用于局域网模拟的在MAC层的协议。 NS2采用分裂对象模型的开发机制,由C++和Otcl(加上面向对象特性的TCL脚本程序设计语言,开发于MIT)两种程序设计语言实现。 OTcl语言简介 Tk是Tcl在X Window环境下的扩展,它包含了Tcl的全部的C库函数,以及支持X Window的窗口、控件等C库函数,为用户开发图形用户界面提供了方便。 Tcl是解释执行的脚本语言。它的实现依赖于Tcl内部的C函数库。添加新的C函数就可以扩充Tcl的命令和功能,是扩展性非常强的脚本程序设计语言。 Tcl解释器把用户输入的命令和程序语句进行初步分析,然后调用C函数库里的相应函数来执行,输出结果。 Tcl是无强制类型的脚本语言,一切变量,不论整型,浮点型等,都以字符串的形式存储。 Otcl是Tcl的面向对象(Object Oriented)的扩展,在Otcl中加入了类的概念。 对象是类的实例,它有自己的属性(成员变量,InstVar)和自己的内部操作(成员函数,InstProc)。 对象具有继承、封装、多态性和动态绑定等性质。 面向对象机制的加入使得原始的Tcl变得更加强大,更加方便使用。 实际上,Tcl和OTcl的关系就像C和C++ 。因此,所有的Tcl命令都可以在OTcl中使用。 C++程序模块的运行速度非常快,是强制类型的程序设计语言(变量严格定义整型,浮点型和字符、字符串类型),容易实现精确的、复杂的算法,但是修改和发现、修正bug所花费的时间要长一些。适合对具体协议的模拟和实现,因为它需要很有效率的处理字节(Byte),报头(Packet Header)等信息,需要应用合适的算法在大量的数据集合上进行操作。 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)等

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档