logo资料库

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

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
无线传感器网络仿真平台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的实现机制和体系结构 N S 仿 真 试 图  NS是一种面向对象Tcl(OTcl)语言脚本解释器,它有一个事件调度器、一个网络组件 库。换句话说,使用NS时需要使用OTcl语言编写脚本文件。  事件调度器:事件在NS中是一个具有唯一ID号的数据包、数据包被处理的时间及处 理它的主对象的总称。事件调度器跟踪仿真的时间并且根据预定时间安排队列中的 事件,激活当前时间对应的处理该事件的网络对象。事件调度器维护一个排序的数 据结构(缺省情况下ns使用链表),对事件有序地执行、释放,并激活事件处理对 象。
 NS由C++和OTcl写成:其中C++语言实现各种网络组件,这是为了提高效 率;OTcl语言编写脚本文件来建立网络和运行仿真,这样是为了简单而快速 地进行网络环境的建立。  编译过的C++对象只要通过链接,创建一个与之匹配的OTcl对象就可在OTcl 解释器中使用。 OTcl与C++的类对应示意图 NS2的总体系结构
分享到:
收藏