NS2实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NS2实验报告

一、实验平台和环境

本实验是在Windows XP操作系统平台下安装了Cygwin软件以模仿Linux 下的编程环境,然后在Cygwin模仿的环境中安装了ns-allinone-2.34软件包,该软件包包含nam、otcl、tcl、tclcl、tk以及xgraph等软件包和辅助分析工具。

二、实验步骤

2.1 安装与配置

1.安装cygwin

a)在cygwin官方网站下载setup.exe。

b)运行setup.exe,使用默认配置选择unix安装。

c)在选择安装组件时确认安装以下内容:XFree86-base, XFree86-bin,

XFree86-prog,XFree86-lib, XFree86-etc,make,patch,perl,gcc,gcc-g++,

gawk,gnuplot,tar 和gzip。

Diffstat,diffutils,libXmu,libXmu-devel,libXmu6,libXmuu1,

X-startup-scripts

xorg-x11-base

xorg-x11-bin

xorg-x11-devel

xorg-x11-bin-dlls

xorg-x11-bin-lndir

xorg-x11-etc

xorg-x11-fenc

xorg-x11-fnts

xorg-x11-libs-data

xorg-x11-xwin

2.安装NS2

a)在NS2官方网站下载ns2-allinone-2.34.tar.gz安装包。

b)将ns2-allinone-2.34.tar.gz拷贝放入cygwin用户目录下。

c)运行cygwin,命令行下输入tar xvfz ns2-allinone-2.34.tar.gz。

d)进入ns2-allinone-2.34目录,执行./install开始安装。

e)安装结束后,会提示设定PATH,LD_LIBRARY_PATH,TCL_LIBRARY

等内容,可在用户目录下修改.bashrc文件,添加以下内容:

export NS_HOME=/home/Administrator/ns-allinone-2.34

export PATH=$NS_HOME/nam-1.13:$NS_HOME/tcl8.4.18/unix:

$NS_HOME/tk8.4.18/unix:$NS_HOME/bin:$PATH

export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.18/unix:$NS_HOME/

tk8.4.18/unix:$NS_HOME/otcl-1.13:$NS_HOME/lib:$LD_LIBRARY_PAT

H

export TCL_LIBRARY=$NS_HOME/tcl8.4.18/library

f)进入~/ns-allinone-2.34/ns-2.34目录,可运行./validate进行验证。

3.测试

a)关闭cygwin窗口,再重新打开。

b)初始化图形界面,运行startxwin.bat。

c)运行example tcl脚本。进入~/ns-allinone-2.34/ns-2.34/tcl/ex目录,可选择

运行以下example:

ns simple-dyn.tcl

ns simple-rtg.tcl

ns simple-eqp.tcl

ns simple-eqp1.tcl

2.2 数据分析

a)RED 队列分析

图一当前队列大小

分析图一可以得出,队列大小变化非常剧烈,而且在三秒之前,队列没有充

分地利用起来,三秒之后tcp1和tcp2竞争使用队列比较剧烈。

图二平均队列大小

分析图二可以看出,开始时tcp1急剧占用链路r1-r2,造成队列急剧增大。当增大到一定值时便达到了峰值。从第三秒开始,由于tcp2的加入,队列又有了一部分的增大,增大到最大值后便开始小幅度地波动。

b)Tcp2的延迟分布

图三 Tcp2传输延迟

从图一中可以看出Tcp2的最小延迟为28ms,这是由于从s2到r1需要延迟3ms,从r1到r2需要延迟20ms,从r2到s4需要延迟5ms,一共刚好延迟28ms。另外它的延迟时间大小呈现出一定的规律。即每次增大到一定程度时,延迟降为最小值28ms,这是因为多余的延迟是由r1结点的队列造成的,每个包到来时都要在队列中等待一段时间。也就是说队列越长,延迟就越大,当队列长度增加到一定值时,根据RED队列丢弃算法会丢弃一些包,这导致Tcp的发送窗口降为0,队列长度也就变为0了,延迟也就降为最小值。

c)Tcp2的丢包率

图四 Tcp2丢包率

检测到Tcp2传输了446个包,其中丢弃的包为16个,故丢包率为3.59%。

d)Tcp2的抖动

图五 Tcp2抖动性

从图三中可以看出tcp2的Jitter的变化比较大,有正也有负的。由于tcp1的存在并且s1到r1的链路延迟更小,它能够更好地占用r1到r2的链路资源。

图六 Tcp1抖动性

从图四中可以看出在0到3秒内由于没有其他流抢用资源,它没有什么抖动,当tcp2介入时,它便有了一定的抖动,但不像tcp2抖动得那样厉害。

e)Tcp2的吞吐量

图七 Tcp2吞吐量变化

从图五中可以看出从3秒开始Tcp2的吞吐量按指数增加,当增大到一定值时便开始波动,基本上维持在0.4Mb/s左右。这是因为链路r1到r2的带宽只有

1.5Mb/s,并且tcp1在传输延迟上有更大的优势。

2.3 脚本程序

主要步骤有以下几个:

1.初始化一个模拟器。

2.设定相应的跟踪文件以便相应的分析工具使用,包括tr文件等,Trace对象

能够把模拟过程中发生的特定类型的事件记录在tr文件中。

3.定义网络的拓扑结构,包括结点位置,链路信息等等。

4.设定传输层及应用层代理,并将传输层代理绑定在相应的结点上,将应用层

的代理绑定在相应的传输层代理上。

5.建立传输层链接。

6.设定模拟的开始和结束时间。

7.运行该tcl文件,观察模拟的结果。

;#新的模拟器对象

set ns [new Simulator]

$ns color 1 Red

$ns color 2 Blue

相关文档
最新文档