TCP丢失时重发为什么倍增重发等待时间(指数退避)

TCP丢失时重发为什么倍增重发等待时间(指数退避)?

因为当一个数据包或确认包在网络传输过程中丢失时,TCP会触发重传机制,也就是重传超时RTO(Retransmission Timeout),如果重传的数据包在此丢失,TCP的重传的数据包第一次丢包是默认的超时时间,第二次丢失,那么他就不会保持原来的超时时间,而是倍增(指数退避)重传的等待时间。

**注意:**第一次丢包不是指数倍增,而是默认的等待时间。第二次才会指数退避。

为什么这么设计?

因为他认为第一次可能是网络的暂时性问题(瞬间干扰或短暂拥挤),不一定网络有严重问题。此时重传就可以解决问题

最重要的还是TCP协议设计的想法就是他要的是数据可靠传输也要尽量高效,如果第一次丢高就倍增RTO,可能会造成不必要的延迟,影响传输的效率。

为什么进行倍增重发等待时间

网络堵塞的可能性

丢包的一个常见的原因是网络堵塞,在拥塞状态下,网络可能变得特别不稳定, 继续原来的频率发送数据可能进一步加剧问题的严重性。因为TCp增加重传的等待时间,目的就是给网络流出更多的时间来缓解拥塞。

减少无效流量

因为这样可以让我们发送发在不确定网络状态是否ok,减少发送流量,防止进一步的丢包和拥塞。

避免无效传输

在网络不ok的情况下,减少无效的传输。

指数退避的好处

提高网络的稳定性

通过增加重传的等待时间,可以避免在网络堵塞时候发送方和接收方的大量重传报文,从而稳定整个网络的环境。

提高传输效率

减少不必要的重传,降低网络负载,提高数据传输的整体效率。

相关推荐
郝学胜-神的一滴2 小时前
Socket实战:从单端聊天到多用户连接的实现秘籍
服务器·开发语言·python·网络协议·pycharm
北京耐用通信2 小时前
工业自动化领域耐中达讯自动化CC-Link IE转EtherCAT技术解决方案
人工智能·物联网·网络协议·自动化·信息与通信
运维儿3 小时前
3.冲突域与广播域:二层网络的关键概念
网络协议·智能路由器·信号处理·linux 网络·云计算网络
TechWayfarer3 小时前
反爬与反欺诈:如何利用IP定位API接口识别代理流量并降低风险
网络·tcp/ip·安全
taxunjishu4 小时前
智能仓储无人化管控 Profinet转MODBUS TCP全流程互联
网络·网络协议·自动化
运维儿5 小时前
2.二层网络为什么存在冲突?如何解决冲突和冲突域?
网络·网络协议·linux 网络·云计算网络
hzxpaipai5 小时前
2026 杭州外贸网站制作公司哪家好?派迪科技确实有点技术
前端·科技·网络协议·网络安全
上海云盾-小余5 小时前
服务器被入侵后如何快速止损?从排查到加固的应急处置全流程
网络·网络协议·tcp/ip·安全·web安全
北京耐用通信5 小时前
1个网关=100+设备兼容:耐达讯自动化CC-Link IE 转 EtherCAT重新定义工业协议转换价值
人工智能·科技·网络协议·自动化·信息与通信
AugustRed5 小时前
AI流式输出方案SSE vs WebSocket对比
人工智能·websocket·网络协议