NS2初学笔记(二)之 ns2基本结构与交互问题

rel="File-List" href="file:///C:%5CDOCUME%7E1%5COwner%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

下面对前两个问题解释以下:

1ns2是一个软件系统,只是用来模拟网络功能的,不可能也没有必要按照实际网络模型来设计ns2的架构,但是ns2为了模拟的需要也是面向对象程序设计的需要,它的代码结构本身就是一种分层结构(各个类之间的继承关系)。所以,当我们理解ns2的代码结构时不要将其同TCP/IP进行匹配,而应该将其理解为一种软件设计时产生的必然结果。让我们了解一下ns2的基本代码结构,这样在我们开发自己的协议时我们才能知道该用ns2的哪一个部件实现什么功能。最基本的类是TCLObjectHandler(貌似这两个类在开发时没什么用,不过是提供一个所有类的基类罢了),NsObject类的作用就是为了以后编写代码方便(我是这么觉得的,因为c++是提供多继承关系的),再往下就是ConnectorClassifier,这两个类是最重要的两个类了,他们的区别形象的说就是Connector是一进一出,而Classifier可以一进多出,他们都有自己的recv方法用来接受分组(就是数据包)。当然这两个类也是为了以后开发而抽象出来的,我觉得模拟系统就是在模拟接受和发送数据(包),只不过接受和发送的方法不同而已,以后需要发送和接受数据的类一定要继承这两个类,并且实现他们自己的方法(比如路由等),再下一层重要的类就是Agent类了,顾名思义就是代理各种网络功能的——产生数据包、选择通路等。这里要说一下,既然ConnectorClassifier都可以收发数据,那为什么还有有Agent类呢,其实我觉得Agent类(继承Connector)主要负责的是逻辑上的包的下一个地址的选择,而真正发送的却是Classifier实现的功能,这样可以保持程序的耦合性,更利于以后的设计(这方面可以参考AODV算法的具体代码)。通过以上的说明我想大家都应该知道阅读ns2代码的大体方向了,就是自底向上的方法。当然ns2的实际结构是非常的复杂,但是我上面所说的应该是一个主线(当然还有一条我就的就是ns2对各种事件的处理机制),抓住这个主线向外扩展可以事半功倍的。

 

2 ns2 通过一个 Tcl 解释器来解释用户命令,应该说是前台( Tcl 解释器)解释,后台( c++ 对象集)解析。那么解释和解析有什么不同呢? Tcl 作为一种脚本语言就是,它提供一个 Shell (就是一个交互控制台),用户通过输入各种命令来为 Tcl 解释器提供素材,比方说用户想创建一个解释器,那么 Shell 的到创建解释器的命令,然后通过 Tcl 解释器解释得到创建解释器的请求,如果这样就创建了一个模拟器,那么也就没有后台什么事了,也就没有什么解析的概念了,所谓后台解析,就是 ns2 的设计精巧之处,它通过 Tcl 解释器的到命令并没有完事,还要将其中的网络模拟逻辑命令传给 c++ 对象,让 c++ 对象对该命令进行处理,然后产生各种的结果。这就是 ns2 的分裂对象设计所得到的软件架构。这样作有什么好处呢,其实这样作就好比网站设计中标记语言和脚本语言负责显示逻辑而高级面向对象语言负责后台逻辑一个道理——可以提高程序的使用效率(试想一下,用户使用模拟器的过程中同模拟器的交互是多么的频繁,如果没提交一次方案就进行一次 c++ 程序的编译,那样效率会如何的底下,想都不敢想)。我这只是大体的说了一下,具体的还要通过使用慢慢体会 ns2 的这种程序设计方法,这是很值得借鉴的一种方法。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NS2是一个用于网络仿真的开源软件,它主要用于研究和开发网络协议、网络拓扑结构以及网络性能评估等方面。在Windows系统上安装NS2可能会遇到"ns: command not found"的错误提示,这是因为NS2是基于Linux环境开发的,需要在Windows系统上使用虚拟机或者模拟器来运行。 以下是一种常见的在Windows系统上安装NS2的方法: 1. 安装虚拟机软件:首先需要安装一个虚拟机软件,比如VirtualBox或VMware Workstation。这些软件可以创建一个虚拟的Linux环境供NS2运行。 2. 下载Linux镜像:从官方网站下载一个适合的Linux镜像文件,比如Ubuntu或CentOS。选择一个与NS2兼容的版本。 3. 创建虚拟机:使用虚拟机软件创建一个新的虚拟机,并将下载好的Linux镜像文件作为虚拟机的操作系统。 4. 安装Linux系统:启动虚拟机,并按照提示安装Linux系统。完成安装后,进入Linux系统。 5. 安装NS2:在Linux系统中,打开终端(Terminal)并执行以下命令来安装NS2: ``` sudo apt-get update sudo apt-get install ns2 ``` 6. 验证安装:安装完成后,可以通过在终端中输入"ns"命令来验证NS2是否成功安装。如果没有出现"ns: command not found"的错误提示,说明安装成功。 请注意,以上步骤仅为一种常见的安装NS2的方法,具体步骤可能会因个人环境和需求而有所不同。如果遇到其他问题或需要更详细的指导,请提供更多信息,我将尽力帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值