预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ARQ协议ARQ协议ARQ协议ARQ协议ARQ协议任务1.同学编写数据链路层通信协议由《发送端程序》和《接收端程序》实现确保数据可靠传输;2.总结实验过程(实验报告左侧装订):方案、编程、调试、结果、分析、结论。成绩评定若完全实现无差错传输(无丢失、无差错、不重叠、不乱序、...)且实验报告出色5分;若完成部分无差错传输依据实验结果定成绩3~4分;若没有完成基本的传输任务依据实验结果定成绩1~2分;没有进行实验和无实验报告者0分;实验环境Windows9x/NT/2000/XP/2003TCP/IP协议同学程序认真复习数据链路层内容熟悉编程语言C、C++和WINDOWS程序设计技术(查阅参考书);开发工具:VisualC++6.0、VisualBasic6.0、C++Builder、Java、C#、TurboC/C++或其它;程序示例:理想信道的《发送端程序》和《接收端程序》(含源码VC6.0);ARQ基本协议1:_引入检错和应答帧ARQ基本协议2:_引入超时计时器ARQ基本协议3:_引入数据帧携带发送序号0~1ARQ基本协议4:_引入确认帧携带发送序号0~1ARQ基本协议5:_引入应答帧含有校验码ARQ基本协议6:_引入数据帧和确认帧含有发送序号0~7Ws=1Ws=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;用户程序(《发送端程序》和《接收端程序》)的信息发送到信道(《信道仿真程序》)《信道仿真程序》经过处理(产生丢失、产生差错和传输时延)然后转发到对方。参考程序段1.设置(偶)校验位//---------------------------------------------------voidSetCheck(char&c)//设置(偶)校验位D7(一个字节){intisum=0;BYTEx=0x01;for(i=0;i<7;i++)//求D6~D0位的有1的个数->sum{if(c&x)sum++;x=x<<1;}if(sum%2)c=c|0x80;//若sum为奇数则置D7=1elsec=c&0x7F;//若sum为偶数则置D7=0}//---------------------------------------------------2..校验(偶)校验位//---------------------------------------------------boolcheckSum(BYTEc)//(偶)校验计算(一个字节){intisum=0;BYTEx=0x01;for(i=0;i<8;i++)//求D7~D0位的有1的个数->sum{if(c&x)sum++;x=x><<1;}if(sum%2)returnfalse;//若sum为奇数则有差错!returntrue;//若sum为偶数则无差错}//-----------------------------------------------------3.定时器函数(WIN32API函数)/