首页/网络/抓包与流量分析速查/重传对时延的贡献量化
丢包与时延定位60 条

重传对时延的贡献量化

一次超时重传至少引入一个 RTO:统计重传次数与所在阶段,估算附加延迟;丢包率与额外延迟的映射因实现而异,实测为准。

重传的延迟代价

一次超时重传至少会引入一个重传超时周期,因此把重传次数与该周期相乘,可以粗略估算丢包带来的附加延迟。这个估算要注意两点:同一段数据多次重传的间隔呈退避序列,直接用次数乘固定基数会明显偏高;快速重传由重复确认触发、无需等待超时,其代价远低于超时重传,两类必须分开统计。在低丢包率场景下,偶发的超时重传对尾部延迟的影响尤其突出,用高分位数观察比看平均值明显得多。

基本信息

估算方法重传事件数乘以典型超时周期
分类统计超时重传与快速重传必须分开
相关依据RFC 6298(重传超时计算)、RFC 5681
观察字段重传与快速重传的标注字段
影响特征低丢包率下尾部延迟更敏感

典型使用场景

  • 附加延迟估算:把丢包造成的额外等待量化出来
  • 分类统计:区分超时重传与快速重传各自占比
  • 尾延迟分析:低丢包率场景下重点看高分位数
  • 优化验证:调整链路或参数后确认重传是否减少
  • 责任界定:确认重传集中在哪一段链路上

统计方法

统计方法
tshark -r a.pcap -Y 'tcp.analysis.retransmission' -T fields -e tcp.stream \
  | sort | uniq -c | sort -rn
# 分别统计超时重传与快速重传的数量
# 按次数乘典型超时周期估算附加延迟
# 存在退避序列时不能简单乘固定基数

两类重传对比

类型触发条件附加延迟
超时重传确认超时仍未返回至少一个完整超时周期,代价高
快速重传收到重复确认触发通常无需等待超时,代价低
连续重传同一段数据反复丢失间隔按退避递增,总代价显著
拥塞控制下的连接遇到丢包会同时降低发送速率,附加延迟并不只来自重传等待,因此估算结果应当标注为下限。
重传统计要按流与时间段拆分,一个整体的重传率无法说明问题发生在哪条链路、哪个时段。

易错点

  • 同一段数据多次重传的间隔按退避递增,直接用次数乘固定基数会明显高估附加延迟
  • 把快速重传与超时重传合并统计会夸大代价,两者的触发条件与耗时完全不同
  • 只看平均延迟会低估丢包的影响,低丢包率下的偶发超时主要反映在高分位数上
  • 重传率按整体统计无法定位链路,必须按流与时间段拆分才能指向具体环节

数据来源与参考

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