- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NS2使用69811.ppt
NS-2使用交流 ——我使用NS的一些经验 为什么选择NS网络仿真软件??? NS学习的参考资料 关于NS的安装 Linux下安装 Windows+Vmware + Linux下安装 Windows+Cygwin模拟环境下安装 Windows下直接安装 NS软件的目录结构 NS仿真使用的一般步骤 NS没有人性化的图形,怎么办??? NS是开放软件,总有乐于奉献的科研工作者提供相应的易用工具…… 来个例子…… 来个例子…… NS使用就这么简单…… NS仿真脚本包含的元素…… 节点配置(路由协议,MAC,队列特性,物理层等) 节点创建 (节点的位置,节点移动特性等) 业务流发生器的参数设置 (业务流的分布特性,速率等) 业务流加载到节点上 (将业务流发生器绑定到某个节点) 仿真开始 ($ns run) 仿真结束的处理 将缓冲中的记录写入文件,关闭结果记录文件 NS自身包含有哪些模块?我怎么知道? 途径: 查看ns manual (so obsolete) 通过书90页介绍的方法(脚本) 查看源代码 (recommended) 如果NS软件包中没有我需要的模块怎么办? 自己编写 Tcl/Tk语言怎么学?Otcl语言怎么学? 边看书边动手,试着编写一些小程序…… (推荐的那本书足够了) 怎样看懂trace文件??? 理解NS的内部结构——事件驱动的核心 理解NS的内部结构——有线网络仿真节点结构 理解NS的内部结构——有线网络仿真 理解NS的内部结构——无线网络仿真节点结构 理解NS的内部结构——什么是代理(agent)? 理解NS的内部结构——分组的格式 理解NS的内部结构——IP Header 理解NS的内部结构——最重要的packet header 理解NS的内部结构——C++类的继承关系 理解NS的内部结构——Connector类 理解NS的内部结构——模块与模块之间的接口 理解NS的内部结构——模块与模块之间packet传递的接口 理解NS的内部结构——无线网络节点的模块构成 理解NS的内部结构——分组的流动路径 理解NS的内部结构——运行处理流程 到此,NS的主体结构应该有一定了解了…… NS深入理解——oTcl和C++对象之间的关系 NS深入理解——为什么要采用分裂对象模型 NS深入理解——oTcl与C++之间的绑定 NS深入理解——trace发生在什么地方??? NS深入理解——怎样在NS中添加一个路由协议?(DSDV) NS深入理解——怎样在NS中添加一个路由协议?(DSDV) 3. 设计协议使用的packet header DSDV这里没有这个,而是将自己的信息存在packet的存放data的地方 4. 设计保存路由信息的路由表 class RoutingTable …… class rtable_ent …… 5. 设计定时器 class DSDV_Helper : public Handler …… class DSDVTriggerHandler : public Handler …… 6. 进行绑定工作 static class DSDVClass:public TclClass bind command 7. 基本框架已经搞定,继续完成协议功能代码的实现 class DSDV_Agent …… 8. 完成oTcl相关代码的编写 让模块组装的时候将你写的模块组装进去 (照葫芦画瓢——不太清楚什么地方的可以采用有哪些信誉好的足球投注网站替换的方法) NS深入理解——怎样进行开发调试??? The end Thank you C++代码只提供了单个的模块,而怎么把这些模块连接起来就是oTcl编程需要做的事情了,并每个模块的参数也通过oTcl编程的方法提供…… oTcl类和C++类建立对应关系 目的:这样可以创建一个oTcl对象的时候同步创建一个C++对象 途径:通过生成一个TclClass的派生类对象实现 变量的绑定 目的:这样使得oTcl对象的变量和对应的C++变量有相同的值 途径:在C++的构造函数中通过bind()函数进行绑定; 函数方法的绑定 目的:这样使得oTcl中可以调用C++的方法 途径:C++中按照oTcl要求编写command()成员函数 包括如下3个层面上的绑定: 5种可控的trace: Agent trace Router trace MAC trace Movement trace Eot Trace 3种不可控trace: Router Arp Mac queue (有丢包发生的地方) DSDV路由协议包括这些文件: Dsdv.h Dsdv.cc Rtable.h Rtable.cc Dsdv.tcl ns-lib.tcl 包括如下几
文档评论(0)