NS2网络仿真实验

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

NS2网络仿真实验
实验目的:
通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。

实验步骤:
1. 实验环境搭建
(1)系统环境:
虚拟机:virtrulbox;
操作系统:linux/ubuntu 10.04
工作目录:/home/wangtao/workspace/
(2)NS2安装与使用:
下载NS2软件包到工作目录,
地址/sourceforge/nsnam/ns-allinone-2.33.tar.gz
解压(注:以下斜体字为命令行命令)
tar -zxf ns-allinone-2.33.tar.gz
cd ns-allinone-2.33
./install
(中间的两个bug已经修改,此处忽略)
耐心等待安装完毕后将出现如下画面说明安装正常:
接下来是系统环境配置,重新进入终端
cd ~
vim .bashrc(如果没有安装vim最好安装一下,sudo apt-get install vim)
在打开的.bashrc的末尾加上以下内容:
PATH="$PATH:/home/wangtao/worksapce/ns-allinone-2.33/bin:/home/wangtao/worksapce/ns-a llinone-2.33/tcl8.4.18/unix"
export
LD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib"
export
TCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library"
保存并退出,重新进入终端
安装xgraph
sudo apt-get install xgraph
运行一个简单的例子,以证明环境安装完成:
ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl
出现如下图说明成功:
2.修改代码
vim /home/wangtao/workspace/ns-allinone-2.33/tcp/
(将窗口阈值一半变为的窗口阈值1/3——wt_)
第一处:
……
if (cwnd_ < ssthresh_)
slowstart = 1;
if (precision_reduce_) {
//halfwin = windowd() / 2; //wangtao
halfwin = windowd() / 3;
第二处:
……
} else {
int temp;
//temp = (int)(window() / 2);//wangtao
temp = (int)(window() / 3);
halfwin = (double) temp;
……
第三处:
……
switch (how) {
case 0:
/* timeouts */
//ssthresh_ = int( window() / 2 );//wangtao
ssthresh_ = int( window() / 3 );
if (ssthresh_ < 2)
ssthresh_ = 2;
cwnd_ = int(wnd_restart_);
break;
case 1:
……
第四处
……
case 4:
/* Tahoe dup acks */
//ssthresh_ = int( window() / 2 );//wangtao
ssthresh_ = int( window() / 3 );
if (ssthresh_ < 2)
ssthresh_ = 2;
cwnd_ = 1;
break;
default:
abort();
……
3.编写tcl代码,实现一个简单的3节点,2条链路的网络网络如下图,具体代码见附件中的源代码。

实验演示:
首先,我们先来看看在不修改代码时网络的模拟结果:运行时间为50秒的结果
运行时间为500秒的结果
然后我们来观察一下修改过后的运行结果:运行时间为50秒的结果
运行时间为500秒的结果
我们再将窗口阈值的一半改为3/4,修改内容类似wt_tcp1.tcl,具体代码见wt_tcp2.tcl 我们观察500秒的运行结果:
我们观察坐标中曲线和x轴所包围的面积即网络的带宽利用情况,从这四幅图中的比较我们可以得出,1/2比1/3能更好的利用带宽,3/4比1/2能更好的利用带宽,因此该值越大越有利于减少网络不必要的浪费。

实验总结:
NS2是一个功能强大的且方便的仿真工具,我们能在其上面完成很多平时在学习网络课程中的一些自己的想法,通过对C++代码的修改,可以自由的实现自己想要的协议或者算法,实验结果也是十分的清晰明白,通过观察实验结果来验证自己的想法是否可行,是否更好。

通过这样的模拟实验后会更加深入的理解课程上学习到的知识,并融会贯通,收获很大。

相关文档
最新文档