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的四种计时器。如果对某个细节还想深入了解,我们可以继续探讨。

相关推荐
江畔柳前堤4 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
独隅5 小时前
GitHub Actions 自动化运维实战:CI/CD 流水线一体化效果展示
运维·自动化·github
饺子大魔王的男人5 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
不会就选b6 小时前
Linux之信号(二)
linux·运维·服务器
2401_865382507 小时前
密评与等保的关系:不是替代,而是互补
网络·信息化造价
GlueNa2SiO37 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
寺中人8 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
V哥AI增长8 小时前
Schema.org 结构化数据与GEO技术落地:AI引擎引用机制与JSON-LD部署实证研究
大数据·运维·人工智能
小张成长计划..8 小时前
【Linux】18:基础IO
linux·运维·服务器
白狐_7988 小时前
408计算机网络第3章:PPP协议——帧格式、LCP/NCP、状态机与真题精讲
网络·计算机网络·智能路由器