ARQ自动重传协议

马谦马谦马谦 TCP/IP评论2,4571字数 633阅读2分6秒阅读模式

ARQ全称是Automatic repeat request,是TCP中实现可靠传输的重传协议,它的核心思想是停止等待协议。

一、停止等待协议

停止等待协议是数据链路层中最基础的协议,在数据发送出去后,如果没有收到对端的回复,会一直等待对方回复。直到触发超时机制再自动重传,确保数据传输的可靠性。

一个没差错的停止等待协议交互过程为:

ARQ自动重传协议-图片1

一旦出现了差错,停止等待协议会重发数据包,直到数据发送成功:

ARQ自动重传协议-图片2

TCP协议的核心思想就是这样,如果发现数据出现了丢失,就要重传这个数据包,直到数据发送成功为止。

那么如何确定数据报丢失了?TCP使用一个重传计时器对发送报文段计时,如果在计时器归零时还没有收到对端回复,那么就认为数据报已经丢失,需要重传。重传计时器的计时时间被称为RTO,他是通过数据报往返时间动态测量出来的,不同系统上实现也不同。参考:TCP中的RTT和RTO

二、连续ARQ协议

连续ARQ协议指的是每次发送数据时,不是发送一个数据报文,而是同时发送多个报文。因为如果每次都只发送一个数据报,信道的利用率极低,传输效率不高。

连续ARQ协议的作用就是为了弥补这个不足,在发送数据时,不用每次都等到上一个数据包确认后才发送下一个,而是每次都发送一组数据包。确认数据包的同时还继续发送数据包,这样就大大提高了效率。

不出现差错的情况下的交互过程:

ARQ自动重传协议-图片3

出现差错的交互过程:

ARQ自动重传协议-图片4

三、滑动窗口协议

连续ARQ协议是配合滑动窗口协议来完成,每次分组发送的报文数量取决于窗口大小。

参考:TCP的滑动窗口协议

 最后更新:2020-3-3
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2019年3月12日22:23:31
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/tcpip/automatic-repeat-request.html
TCP的滑动窗口协议 TCP/IP

TCP的滑动窗口协议

一、关于滑动窗口协议 在TCP协议中,所有的SEQ包发送出去都必须要受到对方的ACK才认为是发送成功,如果长时间没有收到ACK回复确认,发送方需要重新发送该包。而如果发送方每次都是发送一个包,然后等到...
TCP中的RTT和RTO TCP/IP

TCP中的RTT和RTO

一、RTT和RTO的概念 TCP作为一个面向连接的、可靠的传输协议,内部实现了一个重传计时器来保证数据能传输到对方。每发送一个数据包,就给这个数据设置一个重传计时器。如果在计时器超时之前收到了针对这个...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证