目 录
1. 实验类别 4
2. 实验内容和实验目的 4
3. 实验学时 4
4. 实验组人数 4
5. 实验设备环境 4
6. 教学要点与学习难点 4
7. 实验步骤 5
7.1 熟悉编程环境 5
7.2 协议设计和程序总体设计 5
7.3 编码和调试 5
7.4 软件测试和性能评价 5
7.5 实验报告及程序验收 5
8. 编程环境 6
8.1 程序的总体结构 6
8.4 日志 8
8.5 协议运行环境的初始化 9
8.6 与网络层模块的接口函数 9
8.7 事件驱动函数及程序流程 10
8.8 与物理层模块的接口函数 11
8.9 CRC 校验和的产生与验证 12
8.10 定时器管理 12
8.11 协议工作过程的跟踪和调试 13
8.12 命令行选项 13
8.13 错误信息 15
8.14 样例程序文件 datalink.c 15
10. 研究与探索的问题 16
10.1 CRC 校验能力 16
10.2 CRC 校验和的计算方法 16
10.3 程序设计方面的问题 17
10.4 软件测试方面的问题 17
10.5 对等协议实体之间的流量控制 17
10.6 与标准协议的对比 17
11. 实验报告要求 18
11.1 实验内容和实验环境描述 18
11.2 软件设计 18
11.3 实验结果分析 18
11.4 研究和探索的问题 18
11.5 实验总结和心得体会 18
11.6 源程序清单 19
实验一:数据链路层滑动窗口协议的设计与实现
1. 实验类别
程序设计型
2. 实验内容和实验目的
利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为 8000bps 全双工卫星信道,信道传播时延 270 毫秒,信道误码率为 10-5,信道提供字节流传输服务,网络层分组长度固定为 256 字节。
通过该实验,进一步巩固和深刻理解数据链路层误码检测的 CRC 校验技术,以及滑动窗口的工作机理。滑动窗口机制的两个主要目标:(1) 实现有噪音信道环境下的无差错传输; (2)充分利用传输信道的带宽。在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及 ACK 搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优取值,并通过程序的运行进行验证。
通过该实验提高同学的编程能力和实践动手能力,体验协议软件在设计上各种问题和调试难度,设计在运行期可跟踪分析协议工作过程的协议软件,巩固和深刻理解理论知识并利用这些知识对系统进行优化,对实际系统中的协议分层和协议软件的设计与实现有基本的认识。