网站大量收购独家精品文档,联系QQ:2885784924

数据链路层ARQ协议.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据链路层ARQ协议.doc

实验:数据链路层-ARQ协议 任务 总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。 成绩评定 若完全实现无差错传输(无丢失、无差错、不重叠、不乱序、...)且实验报告出色,5分; 若完成部分无差错传输,依据实验结果定成绩,3~4分; 若没有完成基本的传输任务,依据实验结果定成绩,1~2分; 没有进行实验和无实验报告者,0分; 实验环境 Windws 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++或其它; 程序示例: 理想信道的《发送端程序》和《接收端程序》(含源码VC6.0); ARQ基本协议1:_引入检错和应答帧 ARQ基本协议2:_引入超时计时器 ARQ基本协议3:_引入数据帧携带发送序号0~1 ARQ基本协议4:_引入确认帧携带发送序号0~1 ARQ基本协议5:_引入应答帧含有校验码 ARQ基本协议6:_引入数据帧和确认帧含有发送序号0~7,Ws=1,Ws=1 下载: ARQ基本协议1~6及数字信道仿真程序 示例实验指导 协议设计建议 数据帧和应答帧以字节为单位; 数据帧:低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协议;基本同上; 信道仿真程序 功能:可仿真信道上的信息(数据帧或应答帧)产生丢失、产生差错和传输时延; 下载:V1.21,解压后,直接运行! 界面: 实验系统原理 《发送端程序》、《信道仿真程序》和《接收端程序》采用UDP(TCP/IP)通信; 若单机实验:《发送端程序》、《信道仿真程序》和《接收端程序》的IP地址设置为127.0.0.1(本机); 《发送端程序》的端口=6666、《信道仿真程序》的端口=7777、《接收端程序》的端口=8888; 用户程序(《发送端程序》和《接收端程序》)的信息发送到信道(《信道仿真程序》),《信道仿真程序》经过处理(产生丢失、产生差错和传输时延),然后转发到对方。 实验系统示例 ??????注: ????????“7:81H80H” 表示信道上第7个信息帧产生差错,信息值由81H变为80H; ????????“4:81H丢失” 表示信道上第4个信息帧产生丢失; ? 参考程序段 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; BYTE x = 0x01; for(i=0; i8; i++) //求D7~D0位的有1的个数-sum { if(c x) sum++; x = x1; }

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档