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

相关推荐
尽兴-36 分钟前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
数智化管理手记1 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
通信小小昕1 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
LabVIEW开发1 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
壮哥_icon1 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi2 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
电商API_180079052472 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
张小姐的猫2 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯2 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小稻穗2 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析