完整版NS2网络仿真试验
(完整 word 版)NS2 网络仿真实验 移动自组织网络 实实 验验 报报 告告 NS2 网络仿真实验 何云瑞 13120073 1 (完整 word 版)NS2 网络仿真实验 电信研 1301 班 1 1.实验目的和要求.实验目的和要求 1.学会NS2的安装过程,并熟悉NS2的环境; 2.观察并解释NAM动画,分析Trace文档。 3.学会用awk和gnuplot分析吞吐量、封包延迟、抖动率和封包丢失率。 2 2.实验环境.实验环境 先在 PC 上安装 VMware 虚拟机,再在虚拟机上安装 Ubuntu 系统,最后再 Ubuntu 系统 上安装 NS2 软件,本次实验采用的是 NS-2.34 版本。 3 3.基本概念.基本概念 3.1 NS23.1 NS2 简介简介 NS2 是一款开放源代码的网络模拟软件,最初由 UC Berkeley 开发。 它是一种面向对象的网 络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件 驱动。其采用了分裂对象模型的开发机制,采用 C++和 OTcl 两种语言进行开发。它们之间采用 TclCL 进行自动连接和映射。考虑效率和操作便利等因素,NS2 将数据通道和控制通道的实现相 分离.为了减少封包和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用 C++编写,这些对象通过 TclCL 映射对 OTcl 解释器可见。 目前,NS2 可以用于模拟各种不同的通信网络 ,它功能强大,模块丰富,已经实现的主要模块 有:网络传输协议,如TCP 和 UDP;业务源流量产生器,如 FTP、Telnet、CBR、Web 和 VBR; 路由队列管理机制,如 Droptail、RED 和 CBQ;路由算法;以及无线网络 WLAN、移动 IP 和 2 (完整 word 版)NS2 网络仿真实验 卫星通信网络等模块。也为进行局域网的模拟实现了多播协议以及一些 MAC 子层协议。 3 3。。2 NS22 NS2 的功能模块的功能模块 NS2 仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格式等,下面对 各个模块进行简单的介绍: (1)事件调度器:目前 NS2 提供了四种具有不同数据结构的调度器,分别是链表、堆、 日历表和实时调度器。 (2)节点(node):是由 TclObject 对象组成的复合组件,在 NS2 中可以表示端节点和路 由器. (3)链路(link):由多个组件复合而成,用来连接网络节点 .所有的链路都是以队列的形式 来管理封包的到达、离开和丢弃。 (4)代理(agent):负责网络层封包的产生和接收,也可以用在各个层次的协议实现中 . 每个 agent 连接到一个网络节点上,由该节点给它分配一个端口号。 (5)封包(packet):由头部和数据两部封包成。一般情况下,packet 只有头部、没有数据 部分。 (6)应用层(Application):流量产生器(Traffic generators)创建了各种不同的概率模型 来模拟产生实际网络中的业务流,它建立在 UDP 代理之上;应用模拟器(Simulated application)产生建立在 TCP 代理之上的业务流。 (7)数据记录:Trace,功能是能够详细记录模拟过程 ,同时,用户也可以根据自己的需要记 录模拟过程中的任何一个细节,模拟结束后会产生 out。tr 文件;Monitor,NS2 中有两种监测, 队列监测(Queue Monitoring)和流量监测(Per-Flow Monitoring)。 (8)动画演示 Nam,是基于 Tcl/Tk 的动画演示工具,用来把模拟的过程用可视化的方式呈 现出来,模拟结束后会产生 out.man 文件. 3 (完整 word 版)NS2 网络仿真实验 (9)数据分析:gawk。awk 是一种程序语言。它具有一般程序语言常见的功能。由于awk 语言具有使用直译器(Interpreter)不需先行编译;变量无型别之分(Typeless),可使用文字当 数组的注标(Associative Array)等特色,所以使用 awk 撰写程序比起使用其它语言更简洁便利且 节省时间。awk 还具有一些内建功能,使得 awk 擅于处理具资料列(Record),字段(Field) 型态的资料。此外,awk 内建有 pipe 的功能,可将处理中的资料传送给外部的 Shell 命令加以处 理,再将Shell 命令处理后的资料传回 awk 程序,这个特点也使得 awk 程序很容易使用系统资 源。而 gawk 是 GNU 所开发的 awk,最初在 1986 年完成,之后不断改进和更新,gawk 包含 awk 的所有功能。 3 3。。3 Trace3 Trace文件的格式文件的格式 (1 (1 (12 0) 1)) (1)(2) (3) (4) (5) (6)(7) (8)(9) Fro Event Timm enod e To nod e Pkt Pkt Flag type sizes Src Dst Seq Fid add add nu rrm Pkt id (1)Event 发生的事件类型。 + 表示封包进入链路队列(Enqueue) - 表示封包离开链路队列(Dequeue) r 表示目的队列接受(receive)事件 d 表示队列丢弃(drop)封包事件 (2)time 表示事件发生的时间 (3)From node 表示封包发送节点的 id 4 (完整 word 版)NS2 网络仿真实验 (4)From node 表示封包传送目的节点的 id (5)Pkt type 表示封包类型 (6)Pkt size 表示封包的大小 (7)Flags 表示标志项 (8)Fid 为 Flow id 的简写,流标识符 (9)Src addr 表示源地址,格式为:node。port。node 为封包发送节点的 id,port 代 表发送封包节点的端口号。 (10)Dst addr 表示目的地址,格式为:node.port。node 为封包接收节点的 id,port 代表接收封包节点的端口号. (11)Seq num 封包的序列号 (12)Pkt id 封包的唯一标识符,表示封包的 id。 3 3。。4 CBR4 CBR 和和 FTPFTP 简介简介 CBR:Constant Bit Rate,固定传输速率.这是一个用来形容通信服务质量( Quality of Service,QoS)的术语.和该词相对应的词是可变码率或可变比特率( Variable Bit Rate,缩写 VBR) 。当形容编解码器的时候,CBR 编码指的是编码器的输出码率(或者解码器的输入码率)应 该是固定制(常数)。当在一个带宽受限的信道中进行多媒体通信的时候 CBR 是非常有用的,因 为这时候受限的是最高码率,CBR 可以更好的易用这样的信道。但是 CBR 不适合进行存储,因 为 CBR 将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降) ,同时在简单 的内容部分会浪费一些码率。 FTP:File Transfer Protocol,文件传输协议,中文