数据链路层-ARQ协议-指导
- 格式:docx
- 大小:66.76 KB
- 文档页数:6
ARQ简介自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。
它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。
停止并等待ARQ协议(stop-and-wait)停止并等待协议的工作原理如下:1.发送点对接收点发送数据包,然后等待接收点回复ACK并且开始计时。
2.在等待过程中,发送点停止发送新的数据包。
3.当数据包没有成功被接收点接收时候,接收点不会发送ACK. 这样发送点在等待一定时间后,重新发送数据包。
4.反复以上步骤直到收到从接收点发送的ACK.发送点的等待时间应当至少大于传输点数据包发送时间(数据包容量除以发送点传输速度),接收点ACK接收时间(ACK容量除以接收点传输速度),数据在连接上的传送时间,接收点检验接收数据是否正确的时间之和。
在实际应用当中,等待时间是这个和的2到3倍。
这个协议的缺点是较长的等待时间导致低的数据传输速度。
在低速传输时,对连接频道的利用率比较好,但是在高速传输时,频道的利用率会显著下降。
连续ARQ协议(Continuous ARQ)为了克服停止并等待ARQ协议长时间等待ACK的缺点。
这个协议会连续发送一组数据包,然后再等待这些数据包的ACK.选择重复 (Selective Repeat)•发送点连续发送数据包但对每个数据包都设有个一个计时器。
•当在一定时间内没有受到某个数据包的ACK时,发送点只重新发送那个没有ACK的数据包这个方法的缺点是接收点收到的数据包的顺序可能不是发送的数据包顺序。
因此在数据包里必须含有顺序字符来帮助接受点来排序。
arq协议ARQ协议(Automatic Repeat Request protocol)是一种数据传输协议,主要用于在无线通信中处理数据传输中的错误。
ARQ协议通过在传输数据时引入确认机制和重传机制,以保证数据传输的可靠性。
ARQ协议的基本原理是发送方在发送每个数据包之后等待接收方的确认信号。
如果发送方在一定时间内没有收到确认信号,或者接收方发送了错误的确认信号,发送方将重新传输该数据包。
这样可以确保数据在传输过程中的可靠性。
ARQ协议通常分为停等ARQ和连续ARQ两种形式。
停等ARQ是指发送方在发送数据包后会进入等待状态,直到收到确认信号才能发送下一个数据包。
连续ARQ则允许发送方在等待确认信号的同时继续发送其他数据包。
ARQ协议的重传机制是其中最重要的部分。
当发送方没有在规定时间内接收到确认信号时,会将数据包进行重传。
为了避免无限重传,ARQ协议通常会设置一个重传次数的上限。
如果在达到重传次数上限后仍然没有收到确认信号,发送方将停止发送并通知用户进行相应的处理。
ARQ协议的确认机制则是通过接收方发送确认信号来告知发送方数据包是否正确接收。
确认信号可以是一个单独的信号,也可以通过传送一个特殊的确认帧来实现。
当接收方收到正确的数据包时,会发送一个肯定确认的信号;当接收方接收到错误的数据包时,会发送一个否定确认的信号,以触发发送方进行重传。
ARQ协议还可以根据需要进行不同的优化。
例如,在连续ARQ中,发送方可以选择一次性发送多个数据包而不需要等待每个数据包的确认信号。
这种方式可以提高传输的效率,但也会增加重传的代价。
总的来说,ARQ协议通过引入确认机制和重传机制,保障了数据传输的可靠性。
在无线通信中,由于信道的不确定性,ARQ协议是一种常用的数据传输协议。
它不仅可以在数据传输中检测和纠正错误,还可以提供实时性较高的数据传输服务。
因此,在无线通信中,ARQ协议具有重要的应用价值。
一、ARQ(Automatic Repeat-reQuest)是OSI模型中数据链路层的错误纠正协议之一。
它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等机制。
自动重传请求(Automatic Repeat reQuest),通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一,有时也被称为后向纠错(Backward Error Correction,BEC);另外一个方法是信道纠错编码。
传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。
后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。
三者的区别在于对于出错的数据报文的处理机制不同。
三种ARQ协议中,复杂性递增,效率也递增。
除了传统的ARQ,还有混合ARQ(Hybrid-ARQ)。
1.停等式ARQ在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。
停等式ARQ,发送窗口和接收窗口大小均为1,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。
该方法所需要的缓冲存储空间最小,缺点是信道效率很低。
2.回退n帧的ARQ在回退n帧的ARQ中,当发送方接收到接收方的状态报告指示报文出错后,发送方将重传过去的n个报文。
回退N,发送窗口大于1,接收窗口等于1。
计算机网络之ARQ协议ARQ协议,全称为Automatic Repeat Request(自动重传请求),是一种常用的计算机网络中用于可靠数据传输的协议。
它通过在发送端和接收端之间进行数据包的确认和重传,来确保数据的可靠传输。
ARQ协议是一种基于反馈机制的协议,它根据接收端对数据包的确认或否认进行相应的处理。
一般而言,ARQ协议分为停止-等待ARQ、连续ARQ(Go-Back-N ARQ和选择性重传ARQ)等不同类型。
1. 停止-等待ARQ停止-等待ARQ是一种最简单的ARQ协议。
发送端发送一个数据包后,会停止发送并等待接收端的确认。
接收端收到数据包后,会发送一个确认信息给发送端,表示该数据包已经成功接收。
如果发送端在一定时间内没有收到确认信息,就认为该数据包丢失,会进行重传。
停止-等待ARQ的特点是简单,但效率较低。
发送端必须等待确认信息才能发送下一个数据包,无法充分利用网络带宽。
2. 连续ARQ连续ARQ是相对于停止-等待ARQ而言的一种改进协议。
它允许发送端连续地发送多个数据包,而不需要等待每个数据包的确认。
2.1 Go-Back-N ARQGo-Back-N ARQ是一种基于滑动窗口的连续ARQ协议。
发送端维护一个发送窗口,其中包含了多个已发送但未收到确认的数据包。
接收端维护一个接收窗口,其中包含了多个按顺序到达的数据包。
发送端发送数据包后,不需要等待确认即可继续发送下一个数据包。
接收端在正确接收到数据包时,发送一个累积确认,表示已成功接收到所有数据包。
如果接收端检测到有数据包丢失或损坏,会要求发送端进行重传。
Go-Back-N ARQ的特点是简单有效,但可能会出现连续数据包被丢失而导致的重复传输。
2.2 选择性重传ARQ选择性重传ARQ是一种更加精细的连续ARQ协议。
发送端维护一个发送窗口,其中包含了多个已发送但未收到确认的数据包。
接收端维护一个接收窗口,其中包含了多个按顺序到达的数据包。
ARQ协议书1. 简介ARQ(Automatic Repeat reQuest)是一种用于可靠数据传输的协议。
在计算机网络中,由于通信信道的不可靠性,数据包很可能会丢失、出错或乱序到达目的地。
ARQ协议通过发送方和接收方之间的反馈机制,实现了可靠的数据传输。
本文档将详细介绍ARQ协议的工作原理、主要特点以及相关的应用场景。
2. 工作原理ARQ协议工作的基本原理是通过发送方和接收方之间的数据确认和重传来实现可靠的数据传输。
具体步骤如下:1.发送方将数据分割成一定大小的数据包,并为每个数据包分配一个唯一的序列号。
2.发送方将数据包发送给接收方。
3.接收方收到数据包后进行检验,如果数据包正确无误,则发送确认ACK (Acknowledgement)给发送方;如果数据包出错或者丢失,则发送否定的确认NACK给发送方。
4.发送方根据接收到的ACK或NACK信息,进行相应处理:–如果接收到ACK,则发送方继续发送下一个数据包。
–如果接收到NACK,则发送方重传丢失或错误的数据包。
5.循环执行步骤3和步骤4,直至所有数据包都被正确接收。
3. 特点和优势ARQ协议具有以下几个特点和优势:•可靠性:通过反馈机制和重传机制,ARQ协议能够确保数据的可靠传输,减少丢包和错误。
•适应性:ARQ协议能够根据网络状况和负载情况进行自适应,动态调整重传策略和速率,提高传输效率。
•简单性:ARQ协议基本的工作原理简单清晰,易于实现和理解。
•广泛应用:ARQ协议在各种网络通信环境中都有广泛应用,包括局域网、广域网以及无线通信等。
•兼容性:ARQ协议和现有的网络协议兼容性良好,可以与其他协议配合使用,提高整体网络性能。
4. 应用场景ARQ协议适用于许多不同的应用场景,下面列举了一些常见的应用场景:4.1 网络通信在网络通信中,ARQ协议通常被用于确保数据的可靠传输。
例如,在传统的TCP/IP协议中,ARQ协议被用于TCP的可靠传输机制,保证数据在传输过程中不丢失、不出错、不乱序,从而提供了稳定可靠的网络通信。
•任务
1.同学编写数据链路层通信协议,由《发送端程序》和《接收端程
序》实现,确保数据可靠传输;
2.总结实验过程(实验报告,左侧装订):方案、编程、调试、
结果、分析、结论。
•成绩评定
1. 若完全实现无差错传输(无丢失、无差错、不重叠、不乱序、...)且实验报告
出色,5分;
2. 若完成部分无差错传输,依据实验结果定成绩,3~4分;
3. 若没有完成基本的传输任务,依据实验结果定成绩,1~2分;
4. 没有进行实验和无实验报告者,0分;
•实验环境
1. Windows 9x/NT/2000/XP/2003
2. TCP/IP协议
•同学程序
1. 认真复习数据链路层内容,熟悉编程语言C、C++和WINDOWS程序设计技
术(查阅参考书);
2. 开发工具:Visual C++ 6.0、Visual Basic 6.0、C++ Builder、Java、C#、Turbo
C/C++或其它;
3. 程序示例:理想信道的《发送端程序》和《接收端程序》(含源码VC6.0);
1. ARQ基本协议1:_引入检错和应答帧
2. ARQ基本协议2:_引入超时计时器
3. ARQ基本协议3:_引入数据帧携带发送序号0~1
4. ARQ基本协议4:_引入确认帧携带发送序号0~1
5. ARQ基本协议5:_引入应答帧含有校验码
6. ARQ基本协议6:_引入数据帧和确认帧含有发送序号0~7,
Ws=1,Ws=1
7. 下载:ARQ基本协议1~6及数字信道仿真程序
4. 示例实验指导
•协议设计建议
-协议中不考虑成帧
1. 数据帧和应答帧以字节为单位;
2. 数据帧:低4位D3~D0为数据段(取值0000B~1001B,即0~9),最高
位为校验位(D7),发送序号段:D6~D4;
3. 应答帧:确认帧ACK:低4位D3~D0取值1111B(FH),否认帧NAK:低
4位D3~D0取值1110B(EH),发送序号段:D6~D4;
4. 按上述定义,发送序号个数最大为8;实际使用时,可自行选取发送序号个数
2或4,甚至不使用。
-协议中考虑成帧
1. 参见授课讲义和教材的相关内容;
2. 数据帧:帧头+发送序号+数据段+校验段+帧尾;
3. 应答帧:帧头+发送序号+校验段+帧尾;
-协议方案提示
1. 基本ARQ协议;否认帧不必携带出错数据帧的发送序号。
2. 连续ARQ协议-回退N帧ARQ协议;应采用滑动窗口技术和否认帧应携带
出错数据帧的发送序号。
3. 连续ARQ协议-选择重发ARQ协议;基本同上;
•信道仿真程序
1. 功能:可仿真信道上的信息(数据帧或应答帧)产生丢失、产生差错和传输时
延;
2. 下载:V1.21,解压后,直接运行!
1.界面:
•实验系统原理
1. 《发送端程序》、《信道仿真程序》和《接收端程序》采用UDP(TCP/IP)
通信;
2. 若单机实验:《发送端程序》、《信道仿真程序》和《接收端程序》的IP地
址设置为127.0.0.1(本机);
3. 《发送端程序》的端口=6666、《信道仿真程序》的端口=7777、《接收端程
序》的端口=8888;
4. 用户程序(《发送端程序》和《接收端程序》)的信息发送到信道(《信道仿
真程序》),《信道仿真程序》经过处理(产生丢失、产生差错和传输时延),
然后转发到对方。
•参考程序段
1.设置(偶)校验位
//---------------------------------------------------
void SetCheck(char& c) //设置(偶)校验位D7 (一个字节)
{
int i,sum = 0;
BYTE x = 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=1
else c = c & 0x7F; //若sum为偶数,则置D7=0
}。