TCP的四种计时器

TCP协议通过四种核心计时器来保障数据传输的可靠性和连接的有效管理。下面的表格汇总了它们的基本信息,方便你快速把握要点。

计时器名称 主要触发场景 核心功能 典型设置/行为
重传计时器 发送数据后等待确认 防止数据包丢失,确保可靠性 超时未收到确认则重传,时间基于RTT动态计算
坚持计时器 收到接收方"零窗口"通知 解决"零窗口"死锁,保持窗口更新 定时发送窗口探测报文,采用指数退避策略
保活计时器 连接长时间空闲 检测连接另一端是否依然有效 发送探测报文段,若多次无响应则断开连接
时间等待计时器 主动关闭连接后进入TIME_WAIT状态 保证连接彻底关闭,避免旧数据混淆 持续时间通常为2MSL(两倍报文最大生存时间)

🔍 深入了解各种计时器

1. 重传计时器

这是TCP可靠传输的基石。每当发送一个数据段后,这个计时器就会启动。它的核心任务是确保数据能送达对方。关键在于超时时间(RTO) ​ 的设置,它基于往返时间(RTT) ​ 动态计算。如果计时器超时前收到确认(ACK),计时器关闭;如果超时仍未收到,则重传该数据段并重置计时器。为解决重传时无法确定ACK是针对哪次发送的歧义,TCP采用了Karn算法,即在计算新RTT时忽略重传报文段的样本。

2. 坚持计时器

此计时器专门解决接收方通告零窗口 后可能出现的死锁。当发送方收到零窗口通知,会暂停发送。如果之后接收方窗口有空间了,其发送的"窗口更新"报文若丢失,双方会陷入无限等待:接收方等数据,发送方等窗口更新。此时,坚持计时器发挥作用,它到期后,发送方会发送一个探测报文 (仅1字节),提醒接收端重传窗口信息。其超时时间也采用指数退避策略增长,以避免过多探测报文加重网络负担。

3. 保活计时器

用于检测长时间空闲的连接是否有效。服务器端通常每2小时(默认值)若未收到客户端任何数据,会发送一个探测报文。客户端主机可能的状态包括:

  • 正常运行且可达:服务器收到正常响应,计时器复位。

  • 崩溃或不可达:服务器收不到响应,在连续发送多个(如10个)探测报文均失败后,判定连接失效并中断。

    需要注意的是,保活功能可能增加系统负担,且TCP标准不建议默认开启,应用层的心跳机制常是更好选择。

4. 时间等待计时器

在主动关闭连接的一方进入TIME_WAIT 状态时启动,持续时间为2MSL。这段时间有两个关键作用:

  • 确保最后的ACK能到达:如果被动关闭方未收到对FIN的ACK,会重传FIN,主动关闭方还能响应。

  • 让旧连接报文彻底消散:防止之前连接延迟的报文段被新建立的相同连接错误接收。

💎 总结

这四个计时器各司其职又相互配合:重传计时器 保障单次发送可靠;坚持计时器 确保流量控制机制不僵死;保活计时器 管理连接生命周期;时间等待计时器保证连接优雅关闭。它们共同构成了TCP协议可靠、稳定特性的重要基础。

希望这些解释能帮助你清晰地理解TCP的四种计时器。如果对某个细节还想深入了解,我们可以继续探讨。

相关推荐
中议视控7 小时前
会议室和展厅分布式网络中控系统主机的选购思路
网络·分布式
怀旧诚子7 小时前
timeshift之Fedora43设置,已在VM虚拟机验证,待真机验证。
java·服务器·数据库
sdm0704279 小时前
yum和开发工具vim/gcc
linux·服务器·centos
zhaoyufei1339 小时前
RK3568-11.0 设置WiFi p2p静态IP
服务器·tcp/ip·p2p
LCMICRO-133108477469 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
Leinwin14 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825014 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇14 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.75914 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣15 小时前
智能体选型实战指南
运维·人工智能