南昌航空大学实验报告
2019年 4 月18日
课程名称:计算机网络与通信实验名称:数据链路层协议设计与实现
班级:学生姓名:学号:
指导教师评定:签名:
一.实验目的
1)掌握 Visual C++网络编程的基本方法和客户机/ 服务器架构的工作原理。
2)设计数据链路层协议,并通过试验仿真测试协议算法。
二.实验内容
1)根据提供的参考程序和连续ARQ协议的伪代码,设计数据链路层通信协议-带有滑
动窗口的选择性重传ARQ协议和回退N重传ARQ协议,由“发送端程序”和“接收端
程序”实现。
2)要求能检测差错和丢失,判断重复帧,实现重传,确保数据可靠传输。
3)发送端和接收端窗口能正确反映客户端和服务器端数据通信过程。
4)总结实验过程(实验报告),方案、编码、调试、结果、分析和结论。
三.实验过程
1.“发送端程序”、“信道仿真程序”和“接收端程序”采用UDP 协议( TCP/IP)进行
通信;
2.若单机实验:“发送端程序“、“信道仿真程序”和“接收端程序”的IP 地址设置
尾127.0.0.1(本机)。
3.“发送端程序“的端口= 6666 ,“信道仿真程序”的端口= 7777,“接收端程序”的
端口= 8888,端口号也可自行定义;
4.用户程序(“发送端程序”和“接收端程序” )的信息发送到信道(“信道仿真程
序” ),信道经过处理产生丢失、差错和时延,然后发送到对方。
5.仿真过程中可通过对信道仿真程序软件的环境进行设定,来模拟链路特性。
四.实验结果
1.发送的数字 1为 81H,它的确认信号为 9FH,由于第一次发送 1确认丢失,所以再次发
送. (次序 2丢失)
2. 发送数字 1为 81H,但接受的是 80H出现差错,所以不予确认, A继续重发 81H(次序 1
差错) .
3.发送的数字 3 为 12H,它的确认信号为0FH,由于第一次发送 3 延时 1000ms,所以再次发送4:12H , 1000ms后 3: 12H到达,但已经之前接收并确认,所以3: 12H不被受理 . (次序 3时延
1000ms)
4.发送的数字 2为 9FH,它的确认信号为 9FH,由于发送 2确认丢失,所以再次发送 ; 发送数字 3 为81H,但接受的是 80H出现差错,所以不予确认, A继续重发 81H. (2
丢失, 3差错)
5.当前为 A 发送丢失, B 并未收到结果, A 未收到 B 发回的反馈, A 重新发送, B 并未收到结果,
A 未收到
B 发回的反馈, A 重新发送, B 接收到正确数据后, B 返送反馈, B 发送的反馈延迟。
A 未收到
B 发来的反馈, A 从新发送, B 接收到正确数据后, B 返送反馈, A 受到正确反馈后,发送下一个值。
6.当前为 A 发送丢失, B 并未收到结果, A 未收到 B 发回的反馈, A 重新发送, B 收到 A 发送的数据, B 发送反馈, B 发聩出错, A 收到错误反馈, A 重新发送。
五. 实验体会
初步掌握了协议算法并通过试验仿真测试。利用程序,了解了帧发送的各种错误情况,
并能成功分析错误发生后产生的结果。对链路层帧打包发送有了更深的理解.