实验题目给出了物理层信道模型和分组层数据的大小,链路层协议的设计有很大的自由度。由组内
同学共同讨论完成,包括帧控制字段的设计,滑动窗口的过程控制。从易到难,可选的协议类型为“不
搭载 ACK 的 Go-Back-N 协议”,“使用搭载 ACK 技术的 Go-Back-N 协议”,“选择重传协议”,要求必须
是全双工通信协议。组内同学根据自身条件和不同协议类型的难度系数选做其中一种或多种。
教材中的示意性程序未对滑动窗口尺寸和重传定时器时限的详细设计进行充分说明。在实验过程中
需要利用基本原理,明确协议工作参数取值的变化对协议工作正确性和信道利用率的利弊影响,根据具
体信道情况和协议软件的实现方案,为协议参数设置最优值,以追求高线路利用率。指导教师提供一个
可执行样例程序,将所实现的协议软件所达到的性能与样例程序比较,分析自己所实现软件的优势或缺
陷。从理论上推导出线路利用率的极限,依此作为基本依据衡量所实现软件的性能优劣。找出所设计软
件达到的线路利用率与理想性能之间的差距,并给出改进算法或者未能达到理想性能的原因。
整个程序的编程工作量不大,但是考虑到对滑动窗口协议的工作原理的理解可能不够深入和细致,
考虑到协议软件调试的困难程度,以及完成实验的同学对 C 语言的运用和操控能力,软件调试中遇到问
题后解决问题的能力,以及代码中逻辑的复杂程度,对完成整个实验应给予足够重视。
7. 实验步骤
7.1 熟悉编程环境
认真复习滑动窗口相关理论知识的内容,深入理解设计滑动窗口协议的目的和滑动窗口协议的基本
工作过程。
安装好 VS2013 或兼容的更高版本的 C 语言编程环境,运行指导教师提供的样例程序,明确实现目
标,了解信道工作参数的设置方法,网络层分组序列产生器的模式选择方法。根据所提供的资料熟悉编
程环境,了解程序的主体运行框架,系统提供的子程序功能,与物理层和与网络层程序接口的方法,定
时器的设置方法。其中,与物理层程序的接口方法与教材中的示意性程序差别较大,应特别注意。
7.2 协议设计和程序总体设计
设计好要实现的滑动窗口协议,定义帧字段,规划程序的总体结构,相关子程序的设置。
7.3 编码和调试
将所设计的协议编码实现并上机调试通过,实现数据链路层两个站点之间的通信。
7.4 软件测试和性能评价
在无误码信道环境下运行测试:理论上推导出无误码信道环境下的最佳信道利用率,设置仿真软件
中的信道工作于无误码模式,观察和记录信道利用率,并与理想值进行比较。
有误码信道环境下的无差错传输:检查软件能否在误码信道环境下实现无差错传输,并进行调试。
测试阶段根据具体信道模型,通过细致的理论分析,合理调整协议工作参数和程序实现方式,追求
有误码信道环境下更高的信道利用率,并对程序进行合理优化。
7.5 实验报告及程序验收
研讨第 10 节“可研究与探索的问题”提出的问题,总结实验过程中遇到的问题和解决方法,按要求
撰写实验报告,并接受实验指导教师面对面现场点评和质疑。