网络仿真与模拟实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从Reno的cwnd变化图(图17)中看到,当检测到封包遗失时,ssthresh和cwnd的值会被设为先前cwnd值的1/2。因此在重送遗失的封包后,TCP Reno会由Congestion Avoidance开始。由于结束Fast recovery后,Reno的cwnd由先前cwnd值的1/2开始增加,所以得到的平均吞吐量较Tahoe为佳。从该图中我们还可以看到,当TCP的传送端观察到端点到端点的路径并没有拥塞的情况时(没有检测到封包遗失),会持续地以累加的方式增加传送速率。但是当检测到路径拥塞的情况时,则以倍数的方式减少传送速率。基于上述原因,TCP的拥塞控制算法又常被称为累加递增-倍数递减的算法。
Vegas和Re执行方法,如下所示:(lab13_2.tcl)
1 . ns lab13_2.tcl
2.
gnuplot> set title“Vegas vs Reno”
gnuplot> set xlabel“time”
gnuplot> set ylabel“cwnd”
gnuplot> set terminal gif
图18 TCP NewReno
图19 SACK
图20 Vegas图形
图21 Vegas与Reno的cwnd变化图
结果分析
从Tahoe的cwnd变化图(图16)中我们可以看出,TCP的Congestion Window值会呈现周期性的重复变化。开始时,先由Slow-start开始,cwnd超过Ssthresh时进入Congestion Avoidance阶段。由于传送到网络上的封包不断地增加,当超出允许能传送到网络上的个数时,路由器开始使用Drop-tail将封包丢掉。当有封包遗失时,Tahoe这个TCP版本会将ssthresh设为发现到封包遗失时的Window值的1/2,接着将Window的值设为1。在Tahoe这个例子中,由于只要有封包遗失,Cwnd的值就会被重置为1(小于Ssthresh),因此每次封包遗失,Tahoe都重新由slow-start开始。
gnuplot> set output“cwnd-Vegas-Reno”
gnuplot>plot“cwnd-vegas.tr”with linespoints lt 1,“cwnd-reno.tr”with linespoints lt
结果比较
图16 Tahoe的cwnd变化图
图17 Reno的cwnd变化图
图17 gnuplot界面
2.1
通过本实验了解如何利用OTcl脚本编写NS仿真案例。
2.1
NS2下不同版本的TCP协议的OTcl脚本编写。
在winx-server模式下键入命令:ns <文件名.tcl>运行ns文件。
对实验结果进行分析比较。
2.2
Tahoe执行方法,如下所示:
1. ns lab11.tcl Tahoe (lab11.tcl文件代码参考附录A,TCPV1)
网络仿真和模拟课程设计
学院:计算机学院
专业:网络工程
组员(学号):王荣达(13055522)、
李晨阳(13055318)、
张勇安(13055534)
指导老师:郑秋华
完成时间2016年6月30日
一、Baidu Nhomakorabea
在Windows操作系统下安装比较繁琐,需要根据NS不同版本,下载相关补丁进行修正。
下面介绍在Windows下安装NS-allinone过程。
2.gnuplot进入gnuplot>提示符
会在目录下生成gif图片,见下面图片比较。
Reno执行方法,如下所示:
NewReno执行方法,如下所示:(lab12.tcl)
SACK执行方法,如下所示:
Vegas执行方法,如下所示:(lab13_1.tcl)
gnuplot> set title“Vegas”
图5安装步骤5
6)点击“下一步”按钮,如图6所示:
图6安装步骤6
7)点击“下一步”按钮,如图7所示:
图7安装步骤7
8)点击“下一步”按钮,如图8所示:
图8安装步骤8
9)选择“Curr”,点击“View”按钮,使右方出现“full”,然后把最下角的隐藏过期包组件那个勾去掉,如图9所示:
图9安装步骤9
10)由于是初次接触该软件,在不清楚各个包作用的情况下将所有的包都安装,然后点击“下一步”按钮,如图10所示:
1.1
1)点击安装setup.exe文件,如图1所示:
图1执行setup.exe文件
2)请点击“下一步”按钮,如图2所示:
图2安装步骤2
3)选择“Install from Internet”单选按钮,如图3所示:
图3安装步骤3
4)点击“下一步”按钮,如图4所示:
图4安装步骤4
5)点击“下一步”按钮,如图5所示:
图10安装步骤10
11)安装结束后,点击“完成”按钮,如图11所示:
图11安装步骤11
1.2
1)解压缩并改变路径到ns-allinone-2.35,如图12所示:
图12切换到NS目录
2)修改ls.h错误代码行(进入C:cygwinhome/Administartor/ns-allinone -2.35/ns-2.35/linkstate/ls.h第137行):
3)安装指令,进行编译安装,如图13所示:
图13进行编译安装
4)重新编译完后,如图14所示:
图14编译结果
5)设置环境变量:
6)测试NS2是否安装成功,如图15所示:
图15进入图形化接口窗口
7)在跳出的对话框中,输入nam,系统跳出一个图形界面,如图16所示:
图16 Nam界面
8)在窗口中输入gnuplot,结果如图17所示,则NS2安装成功:
从TCP NewReno的cwnd变化图(图18)中我们可以看到,NewReno在收到Partial ACK时,并不会立刻结束Fast-recovery,相反,NewReno的传送端会持续地重送Partial ACK之后的封包,直到将所有遗失的封包重送后才会结束Fast-recovery,这使得NewReno的传送端在网络有大量封包遗失时不需等待Timeout就能更正此错误,减少大量封包遗失对传输效果所造成的影响。NewReno大约每一个RTT时间可重送一个遗失的封包,在Fast-recovery阶段,若允许的话,传送端可以继续送出新的封包,以增加Link的使用率。
gnuplot> set xlabel“time”
gnuplot> set ylabel“cwnd”
gnuplot> set terminal gif
gnuplot> set output“cwnd-Vegas”
gnuplot>plot“cwnd0.tr”with linespoints lt 1,“cwnd1.tr”with linespoints lt 2
相关文档
最新文档