可靠传输的停等协议导致传输效率很差,有什么方式可以改进呢?

可以使用流水线传输:允许发送方在收到收到ACK之前继续发送分组。
面试提问:流水线机制和滑动窗口协议?
如图所示,停等协议,在接收到用户的确认信息之前,一直处于空闲转台,信道的利用效率很低。为此我们可以使用流水线的机制提高效率,也就是在等待过程中接着发送若干分组,同时在信道中传播。
面试提问:流水线机制和滑动窗口协议?
这要求要有更大的***范围,同时要求发送方和接收方拥有更多的缓存空间。

TCP通过使用滑动窗口实现流水线传输。常见的滑动窗口协议有两种:GBN和SR.

  • GBN(Go-Back-N,回退N步)
    面试提问:流水线机制和滑动窗口协议?
    GBN使用累积确认机制.
    发送方设置窗口尺寸为N:最多允许N个分组未被确认,接收方收到ACK时会附带当前获取到当前获取到的分组的序号,同时要添加一个计时器,当时间到了之后,还未收到确认的分组,就会重新发送。(还未确认的分组,指当前收到ACK中,最大序号后的所有分组)。

接受方,只会记录当前需要获取的报文的序号,当接收到正确的报文之前,序号加一,对于乱序到达的报文,直接丢弃,同时发送当前需要的序号报文的ACK。

  • SR(Selective Repeat协议,选择重传)

与GBN相比,SR的接收方有一个缓存滑动窗口,用于对每个分组进行单独确认,发送方只重传没有收到ACK的分组,这就意味着需要为每个分组单独设置一个定时器,以方便进行超时重传。

发送方和GBN类似,但是重传的时候只重传所有未被确认的,只有当滑动窗口前面连续多个报文被确认接收时,滑动窗口移动。

接收方当接收的消息在滑动窗口内时,会发送ACK(N),如果按序到达,就会移动滑动窗口,不是的话,就会缓存乱序到达的。

如果在滑动窗口之前的,说明之前接受报文的ACK丢失了,重传ACK,
如果在滑动窗口之后的,就直接丢弃。

以上就是两个常见的滑动窗口协议,能够有效的提升可靠传输的性能。

相关文章:

  • 2021-07-22
  • 2021-08-06
  • 2021-10-14
  • 2022-12-23
猜你喜欢
  • 2021-10-24
  • 2022-01-19
  • 2021-07-29
  • 2021-11-21
  • 2021-04-08
  • 2021-10-30
相关资源
相似解决方案