- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工大计算机网络ii实验tcp
实验 4 TCP 验证实验
1130320211 万松渤
一、实验前的准备工作
下载 :
ns3
/release/ns-allinone-3.21.tar.bz2
解压,得到文件夹,放入虚拟机中。
为成功安装,先行安装g++
安装:
将 basic1.cc 拷贝到 /home/wan/ns-allinone-3.21/ns-3.21/scratch/下
添加指令代码:
执行. .bashrc,添加环境变量
安装绘图工具:
新建文件夹,运行waff –run basic1,会得到 basic1.cwnd 等文件
用gnuplot 绘图
结果如下:
现在已经做好了实验的准备工作。
二、实验过程
(一)RTT 与 cwnd
1.要求:
运行 Basic1.cc 观察 RTT 与 cwnd 间的关系。运行多次模拟实验,每次采用不同的链路延
迟 (delayRB 参数),绘图比较,给出分析
2.过程:
修改 delayRB 参数,分别设置为:50,100,150,200,250。修改 runtime = 50 以获取更多的数
据。分别保存。
得到保存的文件:
绘图:
3.分析:
分析图中结果,可以发现:5 次不同链路延迟都经历了慢启动,拥塞避免,快速恢复的
过程。在此之后在快速恢复和拥塞避免之间循环。
当 cwndssthresh 时使用慢启动算法,每收到一个 ACK 则 cwnd 增加一个数据报的字
节,每过一个 RTT 则 cwnd=cwnd*2,所以在慢启动阶段 cwnd 是指数增长的;
当 cwndssthresh 时使用拥塞避免算法,进行快速重传,此时 ssthresh = cwnd/2,同时
连续收到 3 个重复的 ACK,进行快速恢复,令 cwnd = ssthresh,相当于让 cwnd 减半;
当 cwnd=ssthresh 时,发送端既可以使用慢启动也可以使用拥塞避免,每收到一个 ACK
则 cwnd 增加 1/cwnd 倍的一个数据报的字节,每过一个 RTT 则 cwnd 增加一个数据报字
节,所以拥塞避免阶段 cwnd 是线性增长的。
(二) 带宽与 cwnd
1.要求:参考 4.1,分析不同带宽下 cwnd 的变化,需要修改 Basic1.cc,
使得可以设置带宽(bottleneckBW)
2.过程:
修改 bottleneckBW 带宽参数,分别改为为 0.5,1.5,2.5,3.5,4.5,每个都单独保存
保存的文件:
绘图:
3.分析:
从图中可以看出:慢启动、拥塞避免、快速恢复过程和上个实验一样。除此之外可以知道:
RTT 越大,cwnd 的最大值越大;快速恢复后的拥塞避免过程中,cwnd 线性增长,每过一
个RTT 则cwnd 增加一个数据报字节,所以直线斜率与 1/RTT 有关,RRT 越大斜率就越小。
(三)TCP 格斗赛
1.要求:
通过模拟实验,分析各种 TCP 算法的 cwnd:
Tahoe vs. Reno, Reno vs. Reno,
采用以下网络拓扑
A\ /B
R1R2
C/ \D
A,C--R1 : 10 Mbps/ 10 ms delay
R1--R2 : 500Kbps / 50 ms delay
R2--B,D : 10 Mbps / 10 ms delay
queue at R1: size 10
queue at R2: size 10
执行两个 TCP 流,A 和 B 之间,C 和 D 之间,共享同一个瓶颈R1R2,绘制两个流 cwnd
的时间序列图,并分析。
2.过程:
1)Reno vs. Reno
创建节点:
配置参数;
建立点对点通道:
节点上安装协议栈:
分配IP 地址:
创建sink:
设置跟踪窗口:
其他需要改动和添加的地方类似;
保存并生成文件:
绘图:
结果:
分析:
两个 Reno 流共享同一个路径时,无论先后顺序,最后会平分带宽。
拥塞导致两个流同时丢包,Reno 采用了快速恢复,ssthresh 变为cwnd 的一半,
cwnd=ssthresh,之后是拥塞避免的过程,然后再丢包再快速恢复。
2)Tahoe vs. Reno
令 A、B 之间执行 Reno,C、D 之间执行 Tahoe,其他地方与之前的类似
生成文件:
绘图:
结果:
分析:
上图为
文档评论(0)