下载此文档

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


文档分类:IT计算机 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
数据链路层协议的设计与实现篇一:数据链路层协议的设计与实现计算机通信网络实验数据链路层协议的设计与实现学院:班级:学号:姓名: XX年11月11日一、实验目的计算机网络的数据链路层协议保证通信双方在有差错的通信线路上进行无差错的数据传输,是计算机网络各层协议中通信控制功能最典型的一种协议。本实验实现一个数据链路层协议的数据传送部分,目的在于更好地理解基本数据链路层协议的基本工作原理,掌握计算机网络协议的基本实现技术。二、实验内容使用C语言实现下面数据链路层协议: ,实现它的第一次改进,如何防止发方过快淹没收方。 。三、实验步骤 . 熟悉数据链路层协议的功能;编写数据链路层协议的实现程序;调试并运行自己编写的协议实现程序; 了解协议的工作轨迹,如出现异常情况,在实验报告中写出原因分析;保留你实现的数据链路层协议,以备教师检查。四、实验过程 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),返回2;如果收到 NAK或RN=SN,则返回3,重传数据。 Server: 1)置RN=0; 2)从client收到一个SN=RN的帧,进行CRC校验检查,无错后输出,并置RN 加1、发送ACK帧;否则发送NAK帧,请求重发。 2、C语言程序代码: 客户端Client: //****************************************************#include//WINSOCKAPI的头文件,需要包含在项目中#ment(lib,"ws2_")//WINSOCKAPI连接库文件#include#include interr; SOCKETsock;//用于服务器监听的SocketSOCKADDR_INaddrSrv;//服务端地址 unsignedcharsendBuf[100];//发送缓存charserverIp[20];//客户端ip地址 intsocklen=sizeof(SOCKADDR_IN);//Socket的地址值的长度intcf_len=sizeof(structsockaddr); structdataFrame//数据帧{ intseq;//分段消息的序号intSN;//发送序号unsignedintdata[100]; intmsglen;//字符长度,采用长度计数的组帧技术}; structconFrame//控制帧{ intRN;//接收序号chartype[3]; //表明帧的类型:SYN同步、EOT送毕、ACK确认应答、NCK否定应答}; structdataFramedframe;structconFramecframe; //************************初始化******************************voidinitialization(){ WORDwVersionRequested;WSADATAwsaData; wVersionRequested=MAKEWORD(1,1);//版本 err=WSAStartup(wVersionRequested,&wsaData);//wsaData用来存储系统传回的关于WinSocket的资料 if(LOBYTE()!=1||HIBYTE()!=1){WSACleanup();} return;} //************************计算CRC-16******************************//基于32位系统,int型长度为4字节,CRC-16的生成多项式为g(D)=D^16+D^15+D^2+1 voidcaculate_crc16(unsignedchar*msg,intlenth,unsigne

数据链路层协议的设计与实现 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人qiang19840906
  • 文件大小23 KB
  • 时间2019-03-22