数据链路层-arq协议-指导.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据链路层-arq协议-指导

ARQ协议ARQ协议ARQ协议ARQ协议ARQ协议 任务 1.? 同学编写数据链路层通信协议,由《发送端程序》和《接收端程序》实现,确保数据可靠传输; 2.??? 总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。 成绩评定 若完全实现无差错传输(无丢失、无差错、不重叠、不乱序、...)且实验报告出色,5分; 若完成部分无差错传输,依据实验结果定成绩,3~4分; 若没有完成基本的传输任务,依据实验结果定成绩,1~2分; 没有进行实验和无实验报告者,0分; 实验环境 Windows 9x/NT/2000/XP/2003 TCP/IP协议 同学程序 认真复习数据链路层内容,熟悉编程语言C、C++和WINDOWS程序设计技术(查阅参考书); 开发工具:Visual C++ 6.0、Visual Basic 6.0、C++ Builder、Java、C#、Turbo C/C++或其它; HYPERLINK 24/Lab_ARQ.files/ARQ0.rar 程序示例: 理想信道的《发送端程序》和《接收端程序》(含源码VC6.0); ARQ基本协议1:_引入检错和应答帧 ARQ基本协议2:_引入超时计时器 ARQ基本协议3:_引入数据帧携带发送序号0~1 ARQ基本协议4:_引入确认帧携带发送序号0~1 ARQ基本协议5:_引入应答帧含有校验码 ARQ基本协议6:_引入数据帧和确认帧含有发送序号0~7,Ws=1,Ws=1 HYPERLINK 24/Lab_ARQ.files/Test.rar 下载: ARQ基本协议1~6及数字信道仿真程序 HYPERLINK 24/Lab_ARQ.files/slzd.htm \t _blank 示例实验指导 协议设计建议 -协议中不考虑成帧 数据帧和应答帧以字节为单位; 数据帧:低4位D3~D0为数据段(取值0000B~1001B,即0~9),最高位为校验位(D7),发送序号段:D6~D4; 应答帧:确认帧ACK:低4位D3~D0取值1111B(FH),否认帧NAK:低4位D3~D0取值1110B(EH),发送序号段:D6~D4; 按上述定义,发送序号个数最大为8;实际使用时,可自行选取发送序号个数2或4,甚至不使用。 -协议中考虑成帧 参见授课讲义和教材的相关内容; 数据帧:帧头+发送序号+数据段+校验段+帧尾; 应答帧:帧头+发送序号+校验段+帧尾; -协议方案提示 基本ARQ协议;否认帧不必携带出错数据帧的发送序号。 连续ARQ协议-回退N帧ARQ协议;应采用滑动窗口技术和否认帧应携带出错数据帧的发送序号。 连续ARQ协议-选择重发ARQ协议;基本同上; 信道仿真程序 功能:可仿真信道上的信息(数据帧或应答帧)产生丢失、产生差错和传输时延; 下载: HYPERLINK 24/Lab_ARQ.files/xds121.rar V1.21,解压后,直接运行! 界面: 实验系统原理 《发送端程序》、《信道仿真程序》和《接收端程序》采用UDP(TCP/IP)通信; 若单机实验:《发送端程序》、《信道仿真程序》和《接收端程序》的IP地址设置为(本机); 《发送端程序》的端口=6666、《信道仿真程序》的端口=7777、《接收端程序》的端口=8888; 用户程序(《发送端程序》和《接收端程序》)的信息发送到信道(《信道仿真程序》),《信道仿真程序》经过处理(产生丢失、产生差错和传输时延),然后转发到对方。 参考程序段 1.设置(偶)校验位 //--------------------------------------------------- void SetCheck(char c) //设置(偶)校验位D7 (一个字节) { int i,sum = 0; BYTE x = 0x01; for(i=0; i7; i++) //求D6~D0位的有1的个数-sum { if(c x) sum++; x = x 1; } if(sum % 2) c = c|0x80; //若sum为奇数,则置D7=1 else c = c 0x7F; //若sum为偶数,则置D7=0 } //--------------------------------------------------- 2..校验(偶)校验位 //--------------------------------------------------- bool checkSum(BYTE c) //(偶)校验计算(一个字节) { int i,sum = 0; BYT

文档评论(0)

karin + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档