网络拥塞控制算法REM的NS仿真(4)
时间:2017-06-10 15:04 来源:毕业论文 作者:毕业论文 点击:次
络模拟软件[9]。 NS2 是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由 UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。 目前NS2 可以用于仿真各种不同的 IP 网,已经实现的一些仿真有:网络传输协 议,比如TCP 和UDP;业务源流量产生器,比如 FTP, Telnet, Web CBR 和VBR;路由队列管理机制,比如 Droptail , RED和 CBQ;路由算法,比如Dijkstra等。 NS2 使用C++和 Otcl 作为开发语言。NS 可以说是Otcl 的脚本解释器,它包 含仿真事件调度器、网络组件对象库以及网络构建模型库等[10] 。事件调度器计 算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件 通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处 理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然 后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一 个用处就是计时。NS 是用 Otcl 和 C++编写的。由于效率的原因,NS 将数据通 道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数 据通道上的基本网络组件对象都使用 C++写出并编译的,这些对象通过映射对 Otcl 解释器可见。当仿真完成以后,NS 将会产生一个或多个基于文本的跟踪文 件。只要在Tcl 脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信 息。这些数据可以用于下一步的分析处理,也可以使用 NAM 将整个仿真过程展 示出来。 2.1.2 NS2的功能模块 NS2 仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格 式等等,下面分别来介绍一下各个模块。 (1)事件调度器:目前 NS2 提供了四种具有不同数据结构的调度器,分别 是链表、堆、日历表和实时调度器。 (2)节点(node):是由TclObject 对象组成的复合组件,在 NS2 中可以表 示端节点和路由器。 (3)链路(link):由多个组件复合而成,用来连接网络节点。所有的链路 都是以队列的形式来管理分组的到达、离开和丢弃。 (4)代理(agent):负责网络层分组的产生和接收,也可以用在各个层次 的协议实现中。每个 agent 连接到一个网络节点上,由该节点给它分配一个端口 号。 (5)包(packet):由头部和数据两部分组成。一般情况下,packet 只有头 部、没有数据部分。 2.1.3 NS2安装与运行 NS 可以安装在 Windows NT、Solaris 及 Linux 操作系统下,它对于不同的平 台有不同的版本。已选择平台为 Linux,因为 Linux 是一种免费系统,可安装于 微机上,网上有很多软件包都支持此平台。Linux 被称为Unix的PC版,是迄今 唯一能够在PC 机硬件平台上为广大用户免费提供多任务、多进程功能的操作系 统。由于系统已经是调试成功的,因此我只简略叙述其安装步骤(所用的 NS 版 本为NS-2.29,安装平台为 Linux): (1)将下载的软件包 ns – allinone - 2.29.tar.gz 拷贝到/dm 目录下。 (2)使用命令cd /dm,进入 NS 软件包所在目录。使用命令 tar –zxvf ns – allinone - 2.29.tar.gz将其解压,自动在当前目录下生成ns – allinone - 2.29子目录。 (3)使用命令cd ns – allinone - 2.29进入此子目录,运行./configure 命令生成 (责任编辑:qin) |