可靠传输实现

可靠传输实现
2020年9月9日
13:57

  1. 停止等待协议

停止等待协议就是没发送完一个分组就停止发送,等待对方确认。在收到确认后在发送下一个分组

  1. 无差错情况

是最简单的情况,A向B发送分组M1,B收到M1后向A发送确认,A收到对M1的确认后在发送下一个分组M2

  1. 出现差错

B接受M1时检测出了差错,就丢掉M1,并什么都不做(也可能是传输过程中M1便丢失)
A在每发送一个分组时是指一个超时计时器。如果在超时前收到了对方的确认,就撤销已设置的超时计时器
如果超时没收到确认,就重发M1

注意:

  1. A发送每一个分组后,必须暂时保留已发送分组的副本,只有在收到相应的分组时才能清除
  2. 分组和确认分组必须进行编号。
  3. 超时计时器设置的重传时间应当比数据白分组传输的平均往返时间更长一些(实际有对应的算法设置重传时间)
  4. 确认丢失或确认迟到

A未收到B的确认(丢失或差错或迟到),重传了M1
B进行两个操作

  1. 丢弃这个重复的分组M1,不向上层交付
  2. 向A发送确认
  3. 信道利用率

停止等待协议的优点是简单,缺点是信道利用率低
可靠传输实现 - 图1
TD为分组发送延迟,TA为确认接受延迟

  1. 滑动窗口协议
    1. 后退N帧 GBN (Go-Back-N)
      1. 发送方无需在收到上个帧的ACK后才能开始发送下一个帧
      2. 接受方检测出失序信息后,要求发送方重发最后一个正确接收的信息帧之后的所有未确认帧信息。
      3. 接收方只允许顺序接收帧
      4. 可靠传输实现 - 图2
    2. 选择重传 SR (Selective Repeat)
      1. 可靠传输实现 - 图3
      2. WR不得超过WT
      3. 选择重传不支持累计确认
      4. 重传时,已收到确认帧的不用重传
  2. 超时重传时间的选择


    已使用 OneNote 创建。