丢包与时延定位60 条

带宽时延积计算

BDP = 带宽 × RTT:决定"管道里能装多少数据";窗口小于 BDP 时吞吐受限于窗口(长肥管道问题),抓包中表现为窗口顶满而非丢包。

带宽时延积怎么算

带宽时延积等于链路带宽乘以往返时间,含义是这条管道里最多能装多少在途数据。它的用途是判断窗口是否成为吞吐瓶颈:当可用窗口小于该乘积时,吞吐就会被窗口限制住,抓包里表现为窗口长期顶满而没有丢包。高带宽、高延迟的链路上这个问题最明显,这类链路常被称为长肥管道。估算时用最小往返时间比用平均值更合理,因为平均值里包含排队带来的额外延迟,并不代表链路本身的时延。

基本信息

公式带宽时延积等于带宽乘以往返时间
单位换算注意比特每秒与字节每秒之间的换算
用途判断窗口是否为吞吐瓶颈
参照依据RFC 7323(窗口缩放)、RFC 6349(测试方法)
取值建议用最小往返时间而不是平均值

典型使用场景

  • 窗口配置评估:确认可用窗口是否与链路时延积匹配
  • 跨地域传输优化:长肥管道上的吞吐提升评估
  • 调参依据:为接收缓冲与发送缓冲设置提供量化依据
  • 故障排除:区分窗口受限与丢包导致的吞吐下降
  • 容量规划:按带宽时延积估算并发连接的内存占用

计算示例

计算示例
# 带宽换算:100Mbps 约等于 12.5MB/s
# 时延积 = 12.5MB/s × 0.04s = 500KB
# 窗口上限需不小于该值才能跑满链路
# 窗口常年贴顶 → 考虑扩大窗口或确认窗口缩放已生效

计算与判断

项目取值方式说明
链路带宽按实际可用带宽取值不是接口标称速率
往返时间取最小值平均值含排队延迟会高估
时延积两者相乘单位必须换算一致
可用窗口与乘积比较明显偏小则窗口是瓶颈
窗口缩放选项在握手阶段协商,协商失败时通告窗口的有效上限会被压在较小范围内,调参之前先确认该选项是否真正生效。
把受窗口限制的低吞吐归因给丢包是常见误判,抓包里看不到重传就是最早的提示线索。

易错点

  • 用平均往返时间估算时延积会偏高,平均值包含排队延迟,用最小值更接近链路真实时延
  • 单位换算是常见错误来源:带宽按比特算、窗口按字节算,混用会差出一个数量级
  • 只调接收侧窗口而忽略发送侧拥塞窗口,测试结果可能完全不变,两侧都要看
  • 窗口缩放未协商成功时大窗口无法生效,调参前先确认选项状态

数据来源与参考

  • RFC 7323(窗口缩放)
  • RFC 6349
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌