0.1% 的丢包,能把吞吐打成什么样
很多人以为丢包 0.1% 只影响 0.1% 的数据。实际在 TCP 上,一次丢包会触发拥塞窗口减半,而窗口的恢复需要若干个 RTT。所以在高延迟链路上,0.1% 的丢包足以让吞吐掉一半。
实测一条 RTT 160ms 的线路:丢包 0% 时 92Mbps,0.1% 时 38Mbps,1% 时 9Mbps。这不是线性关系,是拥塞控制放大后的结果。
BBR 类算法对这个不敏感,因为它不把丢包当拥塞信号。所以同一线路换成 BBR 后,0.1% 丢包场景能跑到 78Mbps。
这也解释了为什么「测速正常但用起来慢」经常同时成立:测速用的是多流短时传输,避开了拥塞窗口长期受限的情况。