滑动窗口协议|集合3(选择性重复)

先决条件: 滑动窗口协议–第1组(发送方) , 第2组(接收器侧)

null

为什么选择重复协议? 如果错误较少,则返回n协议工作良好,但如果线路较差,则会在重新传输的帧上浪费大量带宽。另一种策略是选择性重复协议,它允许接收机接收并缓冲受损或丢失的帧后的帧。

选择性重复尝试仅重新传输那些实际丢失的数据包(由于错误):

  • 接收方必须能够接受无序的数据包。
  • 由于接收器必须按顺序将数据包释放到更高层,因此接收器必须能够缓冲一些数据包。

重新传输请求:

  • 隐含的—— 接收方确认每个良好的数据包,在超时之前未确认的数据包被认为丢失或出错。请注意,必须使用这种方法来确保最终收到每个数据包。
  • 明确的—— 显式NAK(选择性拒绝)可以只请求一个数据包的重新传输。这种方法可以加快重传,但并非严格需要。
  • 实践中使用了一种或两种方法。

选择性重复协议(SRP): 该协议(SRP)基本上与GBN协议相同,只是使用了缓冲区,并且接收方和发送方各自保持一个大小窗口。当链路非常不可靠时,SRP工作得更好。因为在这种情况下,重传往往发生得更频繁,所以有选择地重传帧比重传所有帧更有效。SRP还需要全双工链路。反向确认也在进行中。

  • 发送方窗口(Ws)=接收方窗口(Wr)。
  • 窗口大小应小于或等于SR协议中序列号的一半。这是为了避免数据包被错误识别。如果窗口的大小大于序列号空间的一半,则如果ACK丢失,发送方可以发送接收方认为是重传的新分组。
  • 发送方可以传输新的数据包,只要它们的编号是所有未确认数据包的W。
  • 发送方在超时后重新传输未确认的数据包,如果使用NAK,则在NAK时重新传输。
  • 接收器确认所有正确的数据包。
  • 接收方存储正确的数据包,直到它们可以被传送到更高层。
  • 在选择性重复ARQ中,发送方和接收方窗口的大小不得超过2^m的一半。

图片[1]-滑动窗口协议|集合3(选择性重复)-yiteyi-C++库

图- 发送方仅重新传输接收到NAK的帧

选择性重复协议(SRP)的效率与返回N的效率相同:

Efficiency = N/(1+2a)
Where a = Propagation delay / Transmission delay  
Buffers = N + N
Sequence number  = N(sender side)  + N  ( Receiver Side)
 

参考资料-

幻灯片 Youtube 麻省理工学院文章

本文由 阿卡什·沙兰 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享