资源下载地址:https://download.csdn.net/download/sheziqiong/85637214
可靠数据传输协议
实验目的:
- 理解可靠数据传输的基本原理
- 掌握停等协议的工作原理
- 掌握基于 UDP 设计并实现一个停等协议的过程与技术。
- 理解滑动窗口协议的基本原理;掌握 GBN 的工作原理;掌握基于UDP 设计并实现一个GBN协议的过程与技术。
实验内容:
- 基于UDP设计一个简单的停等协议,实现单向可靠数据传输(服务器到客户的数据传输)。
- 模拟引入数据包的丢失,验证所设计协议的有效性。
- 改进所设计的停等协议,支持双向数据传输
- 基于所设计的停等协议,实现一个C/S结构的文件传输应用。
- 基于UDP设计一个简单的GBN协议,实现单向可靠数据传输(服务器到客户的数据传输)。
- 模拟引入数据包的丢失,验证所设计协议的有效性。
- 改进所设计的GBN协议,支持双向数据传输
- 将所设计的GBN协议改进为SR协议。
实验过程:
1.首先启动服务器server.py,此时由于客户端未启动,所以所有接收来自客户端的请求均会产生异常,同时间歇性有超时的提示
2.启动客户端client.py,观察接收到的包和ack的信息。
3.换用双向传输模式,观察接收到的包和ack的信息。
实验结果:
1.根据不同的传输协议,客户的终端会每隔一定时间接收到一个数据和ack,同时由于丢包的存在,接收的时间间隔并不固定
① 对于停等协议,可以看到接收数据的ack按照0、1交错出现
② 对于滑动窗口协议,设置窗口大小为10,ack的范围为16,可以看到接收数据的ack按照从0到15的顺序循环出现
③ 对于选择重发协议,设置窗口大小为10,ack的范围为16,可以看到由于丢包现象的存在,接收数据的ack并没有特定的顺寻,但均在0到15之间
2.以滑动窗口协议为例,进行双向传输,可以看到在收到结果的同时,会有本地产生的超时信息;
问题讨论:
1.分组格式
对于三种协议,数据分组的格式均为:”ack message”的形式,其中最后一个分组为”-1 < EOF>”,用来指示当前文件已经传输完毕。
2.程序执行流程图
①停止等待协议
②滑动窗口协议
③选择重传协议
3.数据分组丢失验证模拟方法
在客户端设定一个阈值,每次接收到一个包之后,生成一个随机数,若该随机数小于设定的阈值,则认为没有接收到这个包,不对该包做处理,从而模拟丢包的情况。
资源下载地址:https://download.csdn.net/download/sheziqiong/85637214