网络拥塞控制算法REM的NS仿真(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

网络拥塞控制算法REM的NS仿真(4)


络模拟软件[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)