基于C语言数据链路层滑动窗口协议的设计与实现【100010857】

您所在的位置:网站首页 帧错误率 基于C语言数据链路层滑动窗口协议的设计与实现【100010857】

基于C语言数据链路层滑动窗口协议的设计与实现【100010857】

2023-05-21 19:34| 来源: 网络整理| 查看: 265

数据链路层滑动窗口协议的设计与实现 一、实验内容和实验环境描述 本次实验的任务:

利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真的环境下编程实现有噪音信道环境实现两站点之间无差错双工通信。通过该实验,进一步巩固和深刻理解数据链路层误码检测的 CRC 校验技术,以及滑动窗口的工作机理。

本次实验的内容:

信道模型为 8000bps 全双工卫星信道。信道传播时延 270ms,信道误码率为 10-5,信道提供字节流传输服务,网络层分组长度固定为 256 字节。

滑动窗口机制的两个主要目标:(1)实现有噪音信道环境下的无差错传输;(2)充分利用传输信道的带宽。在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及 ACK 搭载定时器的时限

本次实验的实验环境:

Windows 环境 PC 机,MicrosoftVisualStudio2017+ 集成化开发环境。

二、软件设计

给出程序的数据结构,模块之间的调用关系和功能,程序流程。

(1)数据结构:数据结构是整个程序的要点之一,程序维护者充分了解数据结构就可以对主要算法和处理流程有个基本的理解。描述程序中自定义结构体中各成员的用途,定义的全局变量和主函数中的变量的变量名和变量所起的作用。

数据帧

+++=+==+=+

|KIND(1)|SEQ(1)|ACK(1)|DATA(240~256)|CRC(4)|

+++=+==+=+

确认帧

+++=====+

|KIND(4)|ACK(1)|CRC(4)|

+++=====+

否定确认帧

+++=====+

|KIND(1)|ACK(1)|CRC(4)|

+++=====+

KIND:表示帧的类别

ACK:ACK 序列号 SEQ:帧序列号 CRC:校验和

(2)模块结构:给出程序中所设计的子程序所完成的功能,子程序每个参数的意义。给出子程序之间的程序调用关系图。

#defineinc(k)if(k



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3