- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络仿真和模拟课程设计手册
目录
网络仿真和模拟课程设计手册 1
目录 1
一、NS2模拟环境搭建 1
1.1安装cygwin 1
1.2安装NS2 6
二、不同版本的TCP协议仿真模拟 9
2.1实验目的 9
2.1实验步骤 9
2.2实验过程及结果比较 9
三、添加Ping协议 16
3.1实验目的 16
3.2 实验步骤 16
四、添加Application和Agent协议 20
4.1实验目的 20
4.2实验步骤 20
附录A 24
附录B 27
附录C 31
附录D 41
附录E 42
附录F 45
一、NS2模拟环境搭建
在Windows操作系统下安装比较繁琐,需要根据NS不同版本,下载相关补丁进行修正。在Windows下安装NS-allinone过程ns-allinone-2.28/ns-2.28,如图10所示:
图10 切换到NS目录
进行重新编译,如图11所示:
图11 重新进行编译
重新编译完后,如图12所示:
图12 编译结果
测试NS2是否安装成功,如图13所示:
图13 进入图形化接口窗口
在跳出的对话框中,输入nam,系统跳出一个图形界面,如图14所示:
图14 Nam界面
在窗口中输入gnuplot,结果如图15所示,则NS2安装成功:
图15 gnuplot界面
二、不同版本的TCP协议仿真模拟
2.1实验目的
通过本实验了解如何利用OTcl脚本编写NS仿真案例。
2.1实验步骤
NS2下不同版本的TCP协议的OTcl脚本编写。
在winx-server模式下键入命令:ns 文件名.tcl运行ns文件。
对实验结果进行分析比较。
2.2实验过程及结果比较
Tahoe执行方法,如下所示:
进入gnuplot :
依次输入命令
set title “Tahoe”
set xlabel “time”
set ylabel “cwnd”
set terminal gif
set output “cwmd-Tahoe.gif”
plot “cwmd-Tahoe.tr” with linespoints
Reno执行方法,如下所示:
进入gnuplot,输入命令并忽略警告:
继续输入命令进行画图:
(图片见后面)
NewReno执行方法,如下所示:
(最后需要退出gnuplot,在资源管理器中才能查看到图片)
SACK执行方法,如下所示:
Vegas执行方法,如下所示:
(1)
(2)
(3)
结果比较
图16 Tahoe的cwnd变化图
图17 Reno的cwnd变化图
图18 TCP NewReno
图19 SACK
图20 Vegas图形
图21 Vegas与Reno的cwnd变化图
图22 Vegas与Reno的cwnd变化图3
结果分析
从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开始。
从Reno的cwnd变化图(图17)中看到,当检测到封包遗失时,ssthresh和cwnd的值会被设为先前cwnd值的1/2。因此在重送遗失的封包后,TCP Reno会由Congestion Avoidance开始。由于结束Fast recovery后,Reno的cwnd由先前cwnd值的1/2开始增加,所以得到的平均吞吐量较Tahoe为佳。从该图中我们还可以看到,当TCP的传送端观察到端点到端点的路径并没有拥塞的情况时(没有检测到封包遗失),会持续地以累加的方式增加传送速率。但是当检测到路径拥塞的情况时,则以倍数的方式减少传送速率。基于上述原因,TCP的拥塞控制算法又常被称为累加递增-倍数递减的算法。
从TCP NewReno的cwnd变化图(图18)中我们可以看到,NewReno在收到Partial ACK时,并不会立刻结束Fast-recovery,相反,NewReno的传送端会持续地重送Partial ACK之后
文档评论(0)