可靠数据传输协议-停等协议的设计与实现
1.实验目的
理解可靠数据传输的基本原理;掌握停等协议的工作原理;掌握基于 UDP 设计并实现一个停等协议的过程与技术。
2.实验环境
Ø 接入 Internet 的实验主机;
Ø Windows xp 或 Windows 7/8;
Ø 开发语言:C/C++(或 Java)等。
3.实验内容
1) 基于 UDP 设计一个简单的停等协议,实现单向可靠数据传输(服务器到客户的数据传输)。
2) 模拟引入数据包的丢失,验证所设计协议的有效性。
3) 改进所设计的停等协议,支持双向数据传输;(选作内容,加分项目,可以当堂完成或课下完成)
4)基于所设计的停等协议,实现一个 C/S 结构的文件传输应用。(选作内容,加分项目,可以当堂完成或课下完成)
4.实验方式
每位同学独立上机编程实验,实验指导教师现场指导。
5.实验要点
1) 基于 UDP 实现的停等协议,可以不进行差错检测,可以利用 UDP
协议差错检测;
2) 为了验证所设计协议是否可以处理数据丢失,可以考虑在数据接收端或发送端引入数据丢失。
3) 在开发停等协议之前,需要先设计协议数据分组格式以及确认分组格式。
4) 计时器实现方法:对于阻塞的 socket 可用 int setsockopt(int socket, int level, int option_name, const void* option_value, size_t option_len)函数设置套接字发送与接收超时时间;对于非阻塞 socket 可以使用累加 sleep 时间的方法判断socket 接受数据是否超时(当时间累加量超过一定数值时则认为套接字接受数据超时)。
6.实验报告
在实验报告中要说明所设计停等协议数据分组格式、确认分组格式、各个域作用,协议两端程序流程图,协议典型交互过程,数据分组丢失验证模拟方法,程序实现的主要类(或函数)及其主要作用、UDP 编程的主要特点、实验验证结果,详细注释源程序等。