NS2实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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