为什么回退N步(GBN)协议和选择重传(SR)协议的发送窗口有限制

为什么回退N步(GBN)协议的发送窗口大小最大为 2N-1
为什么选择重传(SR)协议的发送窗口大小最大为 2N-1

导致限制产生源于以下三点:

  • 分组序号有限
  • 接收方 ACK 有丢失可能
  • 超时重传机制

GBN 协议

以分组序号位数 2 为例,此时分组序号的范围是:0-3,也就是说,对于发送的第 5 个分组来说,它的序号和第 1 个分组一致,均为 0。

设其窗口大小为 22 = 4(> 22-1),若前 4 个分组均被接收方顺序接收,而其返回的ACK0,1,2,3全部丢失,就会出现错误,具体见下图:
为什么回退N步(GBN)协议和选择重传(SR)协议的发送窗口有限制_第1张图片

可以看到,在极端的条件ACK全部丢失的情况下,发送方因超时重传机制重新发送旧的分组0,但接收方并不知道该分组是旧的,接到旧的分组 0 依然会进行接收,因为接收方仅靠序号区别“新旧”,为了避免这种情况的发生,应设置 GBN 协议的发送窗口最大为 2^N^-1

SR 协议

SR协议也是同理,这里引用《计算机网络:自顶向下》原书的图:
为什么回退N步(GBN)协议和选择重传(SR)协议的发送窗口有限制_第2张图片
需要注意的是,GBN 的接收窗口大小 =1 ,而 SR 的接收窗口大小 > 1。

你可能感兴趣的:(计算机网络,计算机网络,RDT,GBN,SR)