实验目的
熟悉各种不同 rdt 协议的运行环境,对照教材理解给出的 rdt 协议源码,理解并掌握不同链路特性对 rdt 协议性能的影响。比较不同 rdt 协议适应的运行环境。
准备阶段
进入Linux操作系统,将实验文件复制到Ubuntu内,观察到文件内包含Makefile文件,于是在命令行内将路径定位到当前文件夹内
打开其中某一个文件夹看到路径如图,使用cd指令切换路径
执行make指令,Makefile在操作系统实验中学到,其实是一个指令的集合,我们打开Makefile文件可以看到
其中包含了对所需的文件的编译过程,所以我们执行指令make,完成对文件的编译
由于之前执行过一次了所以中间过程看不到了,使用ls指令查看路径内的文件,发现文件已经被编译为.o文件
在readme文件中查看此次实验的执行方式和各个参数的意义,可以看到:
在执行中可以使用 ./sim 协议号 时间片 超时时间 丢包率 校验错误率 错误标记
文件夹中包含了几种协议,具体如下:
p2:设置有限的缓冲区buffer和有限的处理速度
p3:不可靠的信道上允许单向的数据流通
p4:双向滑窗协议
p5:go back n协议
p6:重传协议
查看exercise文件,此次实验的大概内容为:
实验过程
1
.
测试有效负载的变化与校验错误率、丢包率、超时的关系,总结出结论
具体测试过程如下:
可以看到我们设置超时时间比较短,为10,这里发现对于发送方process 1,由于超时时间过短导致了大量的重传,对于接收方process 0,有效负载payloads accepted较少,导致最后的评价参数Payloads Accepted/data pkts sent值较小,后面修改第二个参数超时时间,观察不同的超时时间对Payloads Accepted的影响,整理出表格如下(以协议5 GBN为例):
Timeout |
Payloads Accepted |
Total data frames sent |
Efficiency |
10 |
7 |
630 |
1% |
20 |
137 |
275 |
54% |
30 |
194 |
202 |
96% |
40 |
189 |
190 |
99% |