在GBN协议和SR协议下的三种运行情况

  • Go-Back-N Protocol
  • 正常情况
  • 发送存在丢包

在GBN (回退N重传协议) 协议下,发送方可以同时发送多个报文段,这些报文段都有一个特定的序号,接收方必须按照序号顺序接收这些报文。如果发送方发送了一批报文,但是其中有部分报文在传输过程中丢失,那么接收方将只会收到一些连续而又正确的数据包,而接收不到中间失踪的数据包。当发送超时时,发送方就会重发所有未确认数据包(即还没有收到对应的 ACK 确认报文),而这也就意味着发送方可能会重新发送之前已经发送过的数据包,即使它们已经被确认了。因此,GBN协议存在着浪费带宽的风险,并且丢包率高时会导致发送方的性能下降。

  • 丢失一个ACK

在GBN (回退N重传协议) 协议下,接收方需要发送一个 ACK (确认) 消息来确认正确接收到的数据包。如果接收方在某个时间点丢失了一个 ACK 消息,那么发送方将不会收到应有的 ACK 消息,并且发送方也不会得知已经丢失了一个 ACK。随着时间的推移,发送方会认为该数据包未被有效接收,因此会将该数据包及其之后的所有未确认数据包重发。这样就可能导致网络拥塞和资源浪费,同时降低传输效率。

为了避免这种情况发生,接收方可以定时发送 SACK (选择性确认) 消息,用来告知发送方哪些数据包已经成功接收。当发送方收到 SACK 后,就会只重发未收到确认的数据包,而不是全部数据包,从而提高网络吞吐量。除此之外,还可以通过调整超时时间的大小、优化网络性能等方法来进一步提高数据传输的效率。

  • Selective Repeat Protocol
  • 正常情况

  • 发送存在丢包

在选择重传协议下,当发送方在传输过程中发生数据包丢失时,接收方会通过发送请求缺失的数据包的消息来通知发送方重新发送。发送方只需要重新发送丢失的数据包即可,由于不需要重传所有数据包,因此选择重传协议比回退 N 帧协议的性能和效率更高。

  • 丢失一个ACK

在选择重传协议下,如果接收方丢失一个ACK确认消息,发送方会在超时计时器到期后重新发送对应的数据包。如果多个ACK确认消息丢失,发送方可能会进行多次重传,这会使网络拥塞和性能下降。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值