原贴地址:https://blog.csdn.net/djl806943371/article/details/89207553
我们知道传输层协议保证了传输的可靠性,比如滑动窗口协议。那么丢失的包如何进行重传呢。大致分为两类:Go-back-N和selective repeat。下面对两者优缺点进行介绍。这两者都是通过定时器实现的,当接收者收到包时会回复一个ACK,当发送者超过定时器设定时间收不到ACK时就认为这个包丢失了。此时就需要进行重传
Go-back-N
概念:
当计时器时间到达而没有收到相应ACK时,则认为这个包及之后的所有包全部丢失,将这些包全部重传。实际操作中,将接收窗口大小设为1即可实现。
优缺点:
缺点就是后续没有丢失包时仍需重传,浪费带宽。优点则是如果发生连续的丢包时,可以快速相应,将所有包重传。
selective repeat
概念:
收不到包对应的ACK时,仅认为该包丢失,后续的包不认为丢失,仅重传当前包。实际操作中,将接收窗口大小设为大于1的数即可实现。
优缺点:
优点是只丢失一个包后续不丢失时,不浪费带宽。缺点是连续丢失包时,只能等各个包对应计时器达到定时时间后才会分别重传,对连续丢包的相应速度较慢。