首页/网络/抓包与流量分析速查/TCP RTO 计算与观察
TCP 流分析82 条

TCP RTO 计算与观察

RTO 由 SRTT 与 RTTVAR 平滑计算(RFC 6298:RTO = SRTT + 4×RTTVAR,下限 1s、退避翻倍);抓包可从重传间隔反推是否退避。

RTO 计算与观察

重传超时时间由平滑往返时延与偏差共同决定:RTO 等于平滑往返时延加上四倍偏差,并设有下限(常见为一秒);超时后按指数退避翻倍,到达上限后放弃连接。抓包里能从重传间隔反推是否进入退避,也能据此判断丢包是被快速重传修复,还是等到超时才修复。

基本信息

适用平台TCP 协议行为,计算方法见 RFC 6298
计算公式RTO = SRTT + max(时钟粒度, 4 × RTTVAR)
下限与退避下限常见 1 秒,未确认则 2、4、8 秒依次翻倍
上限行为达到上限后放弃重传并断开连接

典型使用场景

  • 理解重传节奏:固定间隔的重传多来自超时而非快速重传
  • 区分修复方式:快速重传靠重复确认触发,比超时快得多
  • 评估链路质量:高延迟链路的 RTO 天然偏大,不能用固定预期
  • 参数审查:确认 RTO 下限与重传次数上限是否匹配业务
  • 与其他标记联看:结合重传与重复确认判断影响面

观察与参数

观察与参数
# 首次超时约 1 秒(默认下限),未确认则按 2 秒、4 秒、8 秒退避
# 达到上限(常见约两分钟)后放弃连接
sysctl net.ipv4.tcp_rto_min      # 查看 RTO 下限相关参数
sysctl net.ipv4.tcp_retries2     # 放弃前允许的重传次数

重传形态对照

形态触发机制恢复速度
重复确认后立即重传快速重传快,通常少了等待
固定间隔后重传超时重传慢,至少等一个 RTO
间隔翻倍递增进入退避更慢,可能持续多轮
达到上限后断开放弃重传连接直接失败
大多数丢包靠重复确认触发的快速重传恢复,真正等到超时的情况相对少。因此在抓包里看到重传,先判断它属于快速重传还是超时重传,两者对业务的影响差别很大。
高延迟链路(卫星链路、跨境专线)的 RTO 天然偏大,用内网的经验值判断会误以为配置异常。对比之前先确认基础往返时延是多少。
调小 RTO 下限能让丢包恢复更快,但会增加无效重传的概率,属于典型取舍。调整之前应先量化当前链路的实际时延分布。

易错点

  • RTO 下限 1 秒与快速重传配合:多数丢包靠重复确认恢复而非等待超时
  • 高延迟链路 RTO 自然偏大,别用固定 1 秒的预期套所有网络
  • 看到重传间隔呈固定值就断定超时重传:先确认是否存在重复确认,避免误归类
  • 只凭单次重传判断链路差:偶发重传在公网上很常见,要看比例与持续时间

数据来源与参考

  • RFC 6298(RTO 计算)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌