重传的延迟代价
一次超时重传至少会引入一个重传超时周期,因此把重传次数与该周期相乘,可以粗略估算丢包带来的附加延迟。这个估算要注意两点:同一段数据多次重传的间隔呈退避序列,直接用次数乘固定基数会明显偏高;快速重传由重复确认触发、无需等待超时,其代价远低于超时重传,两类必须分开统计。在低丢包率场景下,偶发的超时重传对尾部延迟的影响尤其突出,用高分位数观察比看平均值明显得多。
基本信息
| 估算方法 | 重传事件数乘以典型超时周期 |
|---|---|
| 分类统计 | 超时重传与快速重传必须分开 |
| 相关依据 | RFC 6298(重传超时计算)、RFC 5681 |
| 观察字段 | 重传与快速重传的标注字段 |
| 影响特征 | 低丢包率下尾部延迟更敏感 |
典型使用场景
- 附加延迟估算:把丢包造成的额外等待量化出来
- 分类统计:区分超时重传与快速重传各自占比
- 尾延迟分析:低丢包率场景下重点看高分位数
- 优化验证:调整链路或参数后确认重传是否减少
- 责任界定:确认重传集中在哪一段链路上
统计方法
统计方法
tshark -r a.pcap -Y 'tcp.analysis.retransmission' -T fields -e tcp.stream \
| sort | uniq -c | sort -rn
# 分别统计超时重传与快速重传的数量
# 按次数乘典型超时周期估算附加延迟
# 存在退避序列时不能简单乘固定基数两类重传对比
| 类型 | 触发条件 | 附加延迟 |
|---|---|---|
| 超时重传 | 确认超时仍未返回 | 至少一个完整超时周期,代价高 |
| 快速重传 | 收到重复确认触发 | 通常无需等待超时,代价低 |
| 连续重传 | 同一段数据反复丢失 | 间隔按退避递增,总代价显著 |
拥塞控制下的连接遇到丢包会同时降低发送速率,附加延迟并不只来自重传等待,因此估算结果应当标注为下限。
重传统计要按流与时间段拆分,一个整体的重传率无法说明问题发生在哪条链路、哪个时段。