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

网络仿真器NS2剖析 Network Simulator V2 ——功能、使用及源代码 一、背景 二、NS各模块及功能 三、运行环境 四、NS使用 五、NS主代码简析——基类 六、NS主代码简析——功能模块 七、扩展方法 一、背景 局域网仿真是局域网设计的重要环节,也是网络性能分析的关键 需要一个与操作系统无关的平台,它可以屏蔽掉对操作系统的实际的访问,且能近乎真实地模拟网络环境,让我们可以在各个层次上模拟网络的运行 UC Berkeley改进过的NS2 二、运行环境 平台:Windows、Linux、Unix、machitosh,还要求系统装有C++编译器 两种语言:C++、OTcl, 三、NS2主要模块及功能 NS2包含的几个小工具 Nam Xgraph 拓扑图生成器:Gt-itm 节点移动生成器:Setdest 传输事件生成器:cbrgen.tcl tcpgen.tcl Nam与Xgraph 图形显示工具 Nam filename.out:动态显示网络仿真过程。如:包的传输等等 Xgraph filename.tr:显示仿真过程的数值特征。如:流量/时间图等 四、NS2的使用 命令行方式:敲入一个命令,返回一个结果 输入命令: %/ns-version 返回版本号: ns /2.0a12 脚本方式:指定一个脚本文件(*.tcl文件),让NS执行 输入命令: %/ns example.tcl 脚本的写法 五、主代码简析——基类 Tcl类:C++代码与Tcl代码之间的接口 TclObject类:所有仿真对象的基类 TclClass类:定义了解释类的类层次,并允许用户实例化TclObject,与TclObject一一对应 TclCommand类:封装了C++代码和Tcl代码相互调用命令的方法 EmbeddedTcl类:封装了装载更高级别的内置命令的方法 InstVar类:访问C++成员变量,如Otcl变量方法 Tcl类 获得访问Tcl实例的入口 通过解释器调用Otcl过程 与解释器交换结果 报告出错状况,并以统一方式退出 存储、查找TclObject类对象 取解释器的句柄 TclObject类 TclObject类封装了网络实体 生成和释放“ 对象对” 变量的绑定(bindding) 变量的跟踪(Trace) 命令方法的定义和调用 流程图 TclClass类 定义了解释类的类层次,并允许用户实例化TclObject,与TclObject一一对应。 类TclClass是一个纯虚类,从它派生的子类需实现两个成员函数:其一是构造函数,构造解释类层次来镜像编译类层次;其二是生成函数,生成与之相对应的TclObjects对象 。 流程图 TclCommand类 类TclCommond的作用就在为解释器提供全局命令 由TclCommand的定义知道,它是一个虚基类,必须派生子类,才能工作。 例子,派生类MyCommand,它的命令名为say。 EmbededTcl类 用户对通过对文件~tclcl/tcl-object.tcl进行修改,或是修改、增加tcl/lib的文件来对ns进行扩展。 对于新文件的装载是由类EmbeddedTcl的对象来完成的。 Tcl脚本其实就是由char类型数据组成的文本文件,所以类Embedded的构造函数可以用char*型指针指向脚本代码,并将此指针值赋与成员变量 code_。 InstVar类 类InstVar定义了实现绑定机制的方法: 隐式,当创建新解释对象时,构造函数创建与其对应的编译对象,编译对象的构造函数将它的成员变量与解释对象的实例变量绑定; 显式,定义一个实现绑定变量的命令,然后通过方法cmd调用。 基类InstVar派生五个子类:InstVarReal,InstVarTime,InstVarBandwidth,InstVarInt, InstVarBool。分别用来绑定real型,time型,bandwidth型,integer型,和boolean型变量。 六、主代码简析——功能模块 NS对网络实体的仿真和各种功能模块都封装在派生类中。 重要的派生类有simulator、node、link、 LAN等等。 Class simulator 仿真器类是一个解释类,没有相应的编译类。但仿真器类是由许多更小的类构成的,这些类有相应的编译类。 它封装了节点、链路、代理、数据包格式等。 从ns外部看来,整个仿真过程可以看成对仿真器类对象的操作。因此,我们的工作从创建一个仿真器的实例对象开始,之后,通过这个仿真器调

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档