当进行数据通信时,由于信道的关系会造成接收到的数据和发送的数据不一样,即接收方可以通过CRC的方式来验证出,接收方可以通过反馈信道向发送方发出NACK(如果没有错误发生,发ACK),当发送方收到接收到反馈信号,如为NACK就重新发送刚刚所发的数据,这种机制被称了ARQ。
现在ARQ实现的方式主要的三种:
1.等待式,即发送完数据后,等待接收方的反馈,其中在等待时信道是空闲的,什么事也不做,然后根据反馈的信息决定是否要重新发送数据。
2.后退N步式,即发送方发出数据后不等待反馈信息,一直发送,等到接收方发来反馈信息(其中包括发送数据包的编号),如果为NACK,就从该编号开始一直向完顺序发送,而不管该编号后面的数据包原来发送是对是错
3选择式,即只发送错的数据,这需要在接收方加一个容量较大的buffer来缓存错的数据后面正确的数据包