绕不开的TCP之超时重传

本文深入探讨TCP的重传机制,解释了如何通过重传定时器确保数据的可靠传输。TCP在发送数据后启动定时器,若在设定时间内未收到ACK确认,将重传数据。此外,文章还提到了RTO(重传超时)的适配调整、重复数据的识别与丢弃方法,以及TCP的坚持计时器、保活计时器和时间等待计时器的作用,帮助理解TCP如何应对网络中的各种问题。
摘要由CSDN通过智能技术生成

前文介绍了TCP建立连接和断开连接的方式。那在连接建立之后,TCP如何保证数据的可靠传输的呢?毕竟现实的网络环境是这样的复杂,出错、超时和丢包的种种问题时有发生,背后的秘密在哪里呢?跟随我们的文章,一起探究一下吧。

TCP重传机制

TCP协议是一种面向连接的可靠的传输层协议,它保证数据可靠传输的基本原理是在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到刚才发送数据的ACK确认报文(是通过确认序号的方式进行确认,即刚才发送数据的序列号+1),则对该报文进行重传。如果一直失败,满一定次数后就会放弃并发送一个复位信号。

显而易见,这个定时器的时间(RTO)相当关键,关系着网络资源是否被有效利用。

如果RTO设置过小,部分报文可能遇到网络拥堵或者延迟比较大的情形,这样就会频繁重传,浪费带宽。如果RTO设置过大的话,发送端需要等待过长时间才能发现数据丢失,影响网络的传输效率,造成的表象就是后端系统响应时间过长甚至超时,显然会给用户造成恶劣的影响,这是我们需要坚决规避的。

那设置RTO是否有依据呢?

一般RTO是根据网络中的RTT(传输往返时间)来自适应调整的。具体算法这边就不赘叙了。

接下来让我们通过两幅图来了解一下重传机制吧。
在这里插入图片描述
主机A发送数据给B之后, 可能因为网络拥堵等原因, 数据无法到达主机B。
如果主机A在一个特定时间间隔内没有收到B发来的确认应答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值