数据链路层协议的设计实现

数据链路层协议的设计实现

ID:28749313

大小:251.23 KB

页数:11页

时间:2018-12-13

数据链路层协议的设计实现_第1页
数据链路层协议的设计实现_第2页
数据链路层协议的设计实现_第3页
数据链路层协议的设计实现_第4页
数据链路层协议的设计实现_第5页
资源描述:

《数据链路层协议的设计实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.计算机通信网络实验数据链路层协议的设计与实现学院:班级:学号:姓名:2012年11月11日......一、实验目的计算机网络的数据链路层协议保证通信双方在有差错的通信线路上进行无差错的数据传输,是计算机网络各层协议中通信控制功能最典型的一种协议。本实验实现一个数据链路层协议的数据传送部分,目的在于更好地理解基本数据链路层协议的基本工作原理,掌握计算机网络协议的基本实现技术。二、实验内容使用C语言实现下面数据链路层协议:1.分析和实现一个理想的链路层协议2.对于前面实现的协议进行扩充,实现它的第一次改进,如何防止发方过快淹没收方。3

2、.对上一步再假设在不可靠的的链路上进行通信。三、实验步骤1.熟悉数据链路层协议的功能;2.编写数据链路层协议的实现程序;3.调试并运行自己编写的协议实现程序;4.了解协议的工作轨迹,如出现异常情况,在实验报告中写出原因分析;5.保留你实现的数据链路层协议,以备教师检查。四、实验过程1、程序功能及设计思路功能概述:用客户端/服务器模式代表A站、B站。先由客户端输入服务器IP地址,发送SYN同步帧,告诉服务器准备接受。客户端输入数据后,会进行CRC编码,再发送数据帧;服务器收到后,先进行校验,数据正确则发送ACK帧,客户端则发送下一帧数

3、据;否则服务器发送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),返回

4、2;如果收到NAK或RN=SN,则返回3,重传数据。......Server:1)置RN=0;2)从client收到一个SN=RN的帧,进行CRC校验检查,无错后输出,并置RN加1、发送ACK帧;否则发送NAK帧,请求重发。2、C语言程序代码:客户端Client://***********************client.c*****************************#include//WINSOCKAPI的头文件,需要包含在项目中#pragmacomment(lib,"ws2_32.lib"

5、)//WINSOCKAPI连接库文件#include#includeinterr;SOCKETsock;//用于服务器监听的SocketSOCKADDR_INaddrSrv;//服务端地址unsignedcharsendBuf[100];//发送缓存charserverIp[20];//客户端ip地址intsocklen=sizeof(SOCKADDR_IN);//Socket的地址值的长度intcf_len=sizeof(structsockaddr);structdataFrame//数据帧

6、{intseq;//分段消息的序号intSN;//发送序号unsignedintdata[100];intmsglen;//字符长度,采用长度计数的组帧技术};structconFrame//控制帧{intRN;//接收序号chartype[3];//表明帧的类型:SYN同步、EOT送毕、ACK确认应答、NCK否定应答};structdataFramedframe;structconFramecframe;//************************初始化******************************voidi

7、nitialization(){WORDwVersionRequested;WSADATAwsaData;wVersionRequested=MAKEWORD(1,1);//WinSocket1.1版本......err=WSAStartup(wVersionRequested,&wsaData);//wsaData用来存储系统传回的关于WinSocket的资料if(LOBYTE(wsaData.wVersion)!=1

8、

9、HIBYTE(wsaData.wVersion)!=1){WSACleanup();}return;}//**

10、**********************计算CRC-16******************************//基于32位系统,int型长度为4字节,CRC-16的生成多项式为g(D)=D^16+D^15+D^2+1voi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。