计算机通信网络实验数据链路层协议的设计与实现学院:班级:学号:姓名:2012年11月11日一、实验目的计算机网络的数据链路层协议保证通信双方在有差错的通信线路上进行无差错的数据传输,是计算机网络各层协议中通信控制功能最典型的一种协议
本实验实现一个数据链路层协议的数据传送部分,目的在于更好地理解基本数据链路层协议的基本工作原理,掌握计算机网络协议的基本实现技术
二、实验内容使用C语言实现下面数据链路层协议:1
分析和实现一个理想的链路层协议2
对于前面实现的协议进行扩充,实现它的第一次改进,如何防止发方过快淹没收方
对上一步再假设在不可靠的的链路上进行通信
三、实验步骤1
熟悉数据链路层协议的功能;2
编写数据链路层协议的实现程序;3
调试并运行自己编写的协议实现程序;4
了解协议的工作轨迹,如出现异常情况,在实验报告中写出原因分析;5
保留你实现的数据链路层协议,以备教师检查
四、实验过程1、程序功能及设计思路功能概述:用客户端/服务器模式代表A站、B站
先由客户端输入服务器IP地址,发送SYN同步帧,告诉服务器准备接受
客户端输入数据后,会进行CRC编码,再发送数据帧;服务器收到后,先进行校验,数据正确则发送ACK帧,客户端则发送下一帧数据;否则服务器发送NAK帧,客户端重新发送该数据
CRC校验:1)将收到的字符转为int型(32位),并将其二进制码左移16位,存于data;2)进行C(D)=Remainder[(S(D)∙D^L)/g(D)],即CRC校验,得到校验位
3)将校验位加在信息元后,组成24位的码字,存于要发送的数据帧dframe
停等式ARQ协议:Client:1)置SN=0;2)收到数据,将SN分配给该数据,如果没有收到,则等待;3)存于要发送的数据帧中,发送给server;4)如果从server收到确认帧,且RN>SN,则SN加1(模2),返回