理想的传输条件有以下两个特点:

  1. 传输信道不产生差错。
  2. 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

停止等待协议ARQ

“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。发送方若未接收到确认消息,则会自动进行重传,该协议也成为“自动重传请求ARQ(Automatic Repeat reQuest)”。

工作原理

image.png
(a)无差错情况
A发送数据包Mi后,B都能正确的接收到且及时确认接收情况。
(b)超时重传
A发送数据包M1后,B未接收到数据包,A超出了等待时间都未收到B的确认消息。再次发送M1数据包,B正确接收并确认。
image.png
(a)确认丢失
A发送数据包M1后,B接收到数据包,返回的确认消息丢失,A超出了等待时间都未收到B的确认消息。A再次发送M1数据包,B接收到重复的数据包,将此数据包丢弃,重新发送确认消息,A。
(b)超时重传
A发送数据包M1后,B接收到数据包,A超出了等待时间都未收到B的确认消息。A再次发送M1数据包,B接收到重复的数据包,将此数据包丢弃,重新发送确认消息,A先接收确认消息,过一段时间再次接收到同一数据包的确认消息,此时什么也不做。
注意:

  1. 在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发。
  2. 分组和确认分组都必须进行编号。
  3. 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。

    优缺点

    image.png
    由上图可以看出,当往返时间 RTT 远大于分组发送时间 TD时,信道的利用率就会非常低。若出现重传,则对传送有用的数据信息来说,信道的利用率就还要降低。

    连续ARQ协议和滑动窗口协议

    由于停止等待协议信道利用率过低,连续ARQ协议和滑动窗口协议采用流水线传输的方式对ARQ协议进行改进。

    流水线传输

    流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。这样可使信道上一直有数据不间断地传送。
    image.png

    两种协议对比

    image.png