长肥网络下的单流拥塞控制对比:BBR vs KCC
长肥网络下的单流拥塞控制对比BBR vs KCC一、测试环境1.1 网络拓扑项目详情发送端成都移动 1000M 家庭宽带AS9808接收端新加坡甲骨文云 AMD EPYC 7J13 64-Core Processor480M 云网络带宽测试时间2026/06/24 22:40晚高峰时段测试工具iperf3 单流持续 10 秒重复 5 轮基线 RTT80ms实测 ping 129.150.56.*1.2 基线延迟测量C:\ping129.150.56.* 正在 Ping129.150.56.* 具有32字节的数据: 来自129.150.56.* 的回复: 字节32时间80msTTL49来自129.150.56.* 的回复: 字节32时间80msTTL49来自129.150.56.* 的回复: 字节32时间80msTTL49来自129.150.56.* 的回复: 字节32时间80msTTL49129.150.56.* 的 Ping 统计信息: 数据包: 已发送4已接收4丢失0(0% 丢失)往返行程的估计时间(以毫秒为单位): 最短80ms最长80ms平均80ms成都到新加坡的 80ms RTT 构成了典型的**长肥网络Long Fat NetworkLFN**特征RTT ≥ 80ms远超局域网/城域网范畴带宽延迟积BDP 480Mbps × 0.08s ≈38.4 Mbits ≈ 4.8 MBytes这是深缓冲区场景的判定依据——瓶颈链路的标准 FIFO 队列深度通常为数倍 BDP本例中 cwnd 峰值达到30-48 MBytes约为 BDP 的 6-10 倍属典型深缓冲区二、BBR 测试数据5轮第一轮[ 5] 0.00-1.00 sec 31.1 MBytes 261 Mbits/sec 0 13.9 MBytes [ 5] 1.00-2.00 sec 50.1 MBytes 420 Mbits/sec 0 10.9 MBytes [ 5] 2.00-3.00 sec 61.0 MBytes 512 Mbits/sec 0 10.0 MBytes [ 5] 3.00-4.00 sec 58.2 MBytes 488 Mbits/sec 0 9.81 MBytes [ 5] 4.00-5.00 sec 58.5 MBytes 490 Mbits/sec 0 10.3 MBytes [ 5] 5.00-6.00 sec 56.9 MBytes 477 Mbits/sec 0 10.2 MBytes [ 5] 6.00-7.00 sec 57.9 MBytes 486 Mbits/sec 0 10.4 MBytes [ 5] 7.00-8.00 sec 58.5 MBytes 491 Mbits/sec 0 10.4 MBytes [ 5] 8.00-9.00 sec 58.1 MBytes 487 Mbits/sec 0 10.5 MBytes [ 5] 9.00-10.00 sec 55.5 MBytes 466 Mbits/sec 0 10.5 MBytes [ 5] 10.00-10.08 sec 5.62 MBytes 612 Mbits/sec 0 10.4 MBytes [ 5] 0.00-10.08 sec 551 MBytes 459 Mbits/sec 0启动阶段首秒 261 Mbits/sec第二秒升至 420 Mbits/sec第三秒达到峰值 512 Mbits/sec。稳态第 3-10 秒维持在 460-512 Mbits/sec 区间cwnd 稳定在 10-14 MBytes。总吞吐459 Mbits/sec。第二轮[ 5] 0.00-1.00 sec 301 KBytes 2.46 Mbits/sec 0 138 KBytes [ 5] 1.00-2.00 sec 4.57 MBytes 38.4 Mbits/sec 0 2.44 MBytes [ 5] 2.00-3.00 sec 48.8 MBytes 409 Mbits/sec 0 37.5 MBytes [ 5] 3.00-4.00 sec 59.3 MBytes 498 Mbits/sec 0 38.7 MBytes [ 5] 4.00-5.00 sec 56.7 MBytes 476 Mbits/sec 0 28.2 MBytes [ 5] 5.00-6.00 sec 57.9 MBytes 485 Mbits/sec 0 28.7 MBytes [ 5] 6.00-7.00 sec 59.3 MBytes 497 Mbits/sec 0 28.8 MBytes [ 5] 7.00-8.00 sec 59.3 MBytes 497 Mbits/sec 0 27.6 MBytes [ 5] 8.00-9.00 sec 52.0 MBytes 436 Mbits/sec 1 12.7 MBytes [ 5] 9.00-10.01 sec 45.3 MBytes 375 Mbits/sec 0 27.6 MBytes [ 5] 10.01-10.24 sec 13.3 MBytes 487 Mbits/sec 0 27.6 MBytes [ 5] 0.00-10.24 sec 457 MBytes 374 Mbits/sec 1异常首秒仅 2.46 Mbits/sec接近断流第二秒 38.4 Mbits/sec第三秒才升至 409 Mbits/sec。稳定性第 8 秒发生 1 次重传Retr1且第 9 秒吞吐骤降至 375 Mbits/sec。总吞吐374 Mbits/sec为五轮最低。第三轮[ 5] 0.00-1.00 sec 28.3 MBytes 237 Mbits/sec 0 13.4 MBytes [ 5] 1.00-2.00 sec 60.1 MBytes 504 Mbits/sec 0 14.2 MBytes [ 5] 2.00-3.00 sec 50.0 MBytes 419 Mbits/sec 0 10.2 MBytes [ 5] 3.00-4.00 sec 56.9 MBytes 477 Mbits/sec 0 10.7 MBytes [ 5] 4.00-5.00 sec 57.3 MBytes 481 Mbits/sec 0 10.6 MBytes [ 5] 5.00-6.00 sec 59.6 MBytes 500 Mbits/sec 0 11.0 MBytes [ 5] 6.00-7.00 sec 57.1 MBytes 479 Mbits/sec 0 10.7 MBytes [ 5] 7.00-8.00 sec 57.7 MBytes 484 Mbits/sec 0 10.3 MBytes [ 5] 8.00-9.00 sec 57.4 MBytes 481 Mbits/sec 0 10.8 MBytes [ 5] 9.00-10.00 sec 58.5 MBytes 491 Mbits/sec 0 10.1 MBytes [ 5] 10.00-10.10 sec 5.98 MBytes 500 Mbits/sec 0 10.1 MBytes [ 5] 0.00-10.10 sec 549 MBytes 456 Mbits/sec 0总吞吐456 Mbits/sec。首秒 237 Mbits/seccwnd 稳定于 10-14 MBytes。第四轮[ 5] 0.00-1.00 sec 27.4 MBytes 230 Mbits/sec 0 13.5 MBytes [ 5] 1.00-2.00 sec 53.7 MBytes 451 Mbits/sec 0 15.8 MBytes [ 5] 2.00-3.00 sec 56.5 MBytes 474 Mbits/sec 0 10.2 MBytes [ 5] 3.00-4.00 sec 57.6 MBytes 483 Mbits/sec 0 11.1 MBytes [ 5] 4.00-5.01 sec 60.2 MBytes 499 Mbits/sec 0 11.1 MBytes [ 5] 5.01-6.00 sec 59.6 MBytes 506 Mbits/sec 0 10.8 MBytes [ 5] 6.00-7.00 sec 58.4 MBytes 490 Mbits/sec 0 11.0 MBytes [ 5] 7.00-8.00 sec 58.2 MBytes 488 Mbits/sec 0 10.8 MBytes [ 5] 8.00-9.00 sec 54.9 MBytes 461 Mbits/sec 0 10.8 MBytes [ 5] 9.00-10.00 sec 59.0 MBytes 495 Mbits/sec 0 11.1 MBytes [ 5] 10.00-10.08 sec 4.73 MBytes 473 Mbits/sec 0 11.1 MBytes [ 5] 0.00-10.08 sec 550 MBytes 458 Mbits/sec 0总吞吐458 Mbits/sec。首秒 230 Mbits/sec。第五轮[ 5] 0.00-1.00 sec 11.5 MBytes 96.1 Mbits/sec 0 6.64 MBytes [ 5] 1.00-2.00 sec 68.0 MBytes 571 Mbits/sec 0 17.3 MBytes [ 5] 2.00-3.00 sec 49.6 MBytes 416 Mbits/sec 0 12.4 MBytes [ 5] 3.00-4.00 sec 58.9 MBytes 494 Mbits/sec 0 12.2 MBytes [ 5] 4.00-5.00 sec 58.0 MBytes 487 Mbits/sec 0 12.6 MBytes [ 5] 5.00-6.00 sec 60.5 MBytes 507 Mbits/sec 0 12.7 MBytes [ 5] 6.00-7.00 sec 59.8 MBytes 502 Mbits/sec 0 12.2 MBytes [ 5] 7.00-8.00 sec 59.0 MBytes 495 Mbits/sec 0 12.5 MBytes [ 5] 8.00-9.00 sec 59.4 MBytes 498 Mbits/sec 0 12.3 MBytes [ 5] 9.00-10.00 sec 59.4 MBytes 498 Mbits/sec 0 12.2 MBytes [ 5] 10.00-10.09 sec 3.71 MBytes 365 Mbits/sec 0 12.2 MBytes [ 5] 0.00-10.09 sec 548 MBytes 456 Mbits/sec 0总吞吐456 Mbits/sec。首秒仅 96.1 Mbits/sec是五轮中最慢启动。BBR 五轮统计轮次总吞吐Mbits/sec首秒吞吐Mbits/sec丢包Retr稳态 cwndMBytes1459261010-1423742.46110-38大幅波动3456237010-144458230010-15545696.1012-17BBR 均值440.6 Mbits/sec标准差33.6 Mbits/sec含第二轮异常去除后为 457.8 Mbits/sec标准差 1.5 Mbits/sec三、KCC 测试数据5轮第一轮[ 5] 0.00-1.00 sec 26.7 MBytes 224 Mbits/sec 0 13.3 MBytes [ 5] 1.00-2.00 sec 61.9 MBytes 519 Mbits/sec 0 47.2 MBytes [ 5] 2.00-3.00 sec 57.7 MBytes 484 Mbits/sec 0 30.2 MBytes [ 5] 3.00-4.00 sec 60.9 MBytes 511 Mbits/sec 0 34.6 MBytes [ 5] 4.00-5.00 sec 59.3 MBytes 498 Mbits/sec 0 34.5 MBytes [ 5] 5.00-6.00 sec 59.3 MBytes 497 Mbits/sec 0 34.0 MBytes [ 5] 6.00-7.00 sec 59.2 MBytes 497 Mbits/sec 0 33.1 MBytes [ 5] 7.00-8.00 sec 59.3 MBytes 497 Mbits/sec 0 33.2 MBytes [ 5] 8.00-9.00 sec 59.3 MBytes 497 Mbits/sec 0 33.2 MBytes [ 5] 9.00-10.00 sec 59.3 MBytes 498 Mbits/sec 0 33.2 MBytes [ 5] 10.00-10.10 sec 5.50 MBytes 479 Mbits/sec 0 33.1 MBytes [ 5] 0.00-10.10 sec 568 MBytes 472 Mbits/sec 0启动首秒 224 Mbits/sec第二秒即达 519 Mbits/sec。cwnd峰值 47.2 MBytes约 BDP 的 10 倍稳态 33-34 MBytes。总吞吐472 Mbits/sec。零丢包。第二轮[ 5] 0.00-1.00 sec 589 KBytes 4.83 Mbits/sec 0 707 KBytes [ 5] 1.00-2.01 sec 8.05 MBytes 66.8 Mbits/sec 0 4.70 MBytes [ 5] 2.01-3.00 sec 56.3 MBytes 478 Mbits/sec 0 48.4 MBytes [ 5] 3.00-4.00 sec 59.3 MBytes 497 Mbits/sec 0 49.2 MBytes [ 5] 4.00-5.00 sec 59.3 MBytes 498 Mbits/sec 0 34.4 MBytes [ 5] 5.00-6.00 sec 58.7 MBytes 492 Mbits/sec 0 33.1 MBytes [ 5] 6.00-7.00 sec 59.8 MBytes 502 Mbits/sec 0 32.9 MBytes [ 5] 7.00-8.00 sec 59.3 MBytes 498 Mbits/sec 0 32.4 MBytes [ 5] 8.00-9.00 sec 59.1 MBytes 496 Mbits/sec 0 32.8 MBytes [ 5] 9.00-10.00 sec 59.4 MBytes 499 Mbits/sec 0 33.7 MBytes [ 5] 10.00-10.24 sec 14.2 MBytes 496 Mbits/sec 0 33.7 MBytes [ 5] 0.00-10.24 sec 494 MBytes 405 Mbits/sec 0启动首秒 4.83 Mbits/sec较慢第三秒跃升至 478 Mbits/sec。cwnd峰值 49.2 MBytes稳态 33-34 MBytes。总吞吐405 Mbits/sec最低轮但在 10.24 秒内保持零丢包。第三轮[ 5] 0.00-1.00 sec 32.8 MBytes 275 Mbits/sec 0 16.8 MBytes [ 5] 1.00-2.00 sec 59.3 MBytes 498 Mbits/sec 0 48.8 MBytes [ 5] 2.00-3.00 sec 58.5 MBytes 491 Mbits/sec 0 29.8 MBytes [ 5] 3.00-4.00 sec 60.0 MBytes 503 Mbits/sec 0 33.4 MBytes [ 5] 4.00-5.00 sec 59.3 MBytes 497 Mbits/sec 0 33.2 MBytes [ 5] 5.00-6.00 sec 59.2 MBytes 497 Mbits/sec 0 32.1 MBytes [ 5] 6.00-7.00 sec 59.3 MBytes 497 Mbits/sec 0 33.1 MBytes [ 5] 7.00-8.00 sec 59.3 MBytes 498 Mbits/sec 0 33.1 MBytes [ 5] 8.00-9.00 sec 58.8 MBytes 493 Mbits/sec 0 32.7 MBytes [ 5] 9.00-10.00 sec 59.8 MBytes 502 Mbits/sec 0 33.1 MBytes [ 5] 10.00-10.08 sec 4.82 MBytes 487 Mbits/sec 0 33.1 MBytes [ 5] 0.00-10.08 sec 571 MBytes 475 Mbits/sec 0总吞吐475 Mbits/sec。启动快速、稳态平滑、零丢包。第四轮[ 5] 0.00-1.00 sec 20.8 MBytes 174 Mbits/sec 0 10.3 MBytes [ 5] 1.00-2.00 sec 64.9 MBytes 545 Mbits/sec 0 47.0 MBytes [ 5] 2.00-3.00 sec 59.3 MBytes 497 Mbits/sec 0 48.0 MBytes [ 5] 3.00-4.00 sec 59.4 MBytes 498 Mbits/sec 0 33.0 MBytes [ 5] 4.00-5.00 sec 59.0 MBytes 495 Mbits/sec 0 33.1 MBytes [ 5] 5.00-6.00 sec 59.1 MBytes 496 Mbits/sec 0 33.1 MBytes [ 5] 6.00-7.00 sec 59.6 MBytes 500 Mbits/sec 0 32.4 MBytes [ 5] 7.00-8.00 sec 59.3 MBytes 497 Mbits/sec 0 33.2 MBytes [ 5] 8.00-9.00 sec 59.3 MBytes 498 Mbits/sec 0 32.1 MBytes [ 5] 9.00-10.00 sec 59.3 MBytes 497 Mbits/sec 0 33.4 MBytes [ 5] 10.00-10.10 sec 5.69 MBytes 487 Mbits/sec 0 33.2 MBytes [ 5] 0.00-10.10 sec 566 MBytes 470 Mbits/sec 0总吞吐470 Mbits/sec。零丢包。第五轮[ 5] 0.00-1.00 sec 31.4 MBytes 264 Mbits/sec 0 15.7 MBytes [ 5] 1.00-2.00 sec 59.5 MBytes 499 Mbits/sec 0 34.0 MBytes [ 5] 2.00-3.00 sec 59.3 MBytes 498 Mbits/sec 0 34.1 MBytes [ 5] 3.00-4.00 sec 59.2 MBytes 497 Mbits/sec 0 32.9 MBytes [ 5] 4.00-5.00 sec 59.3 MBytes 498 Mbits/sec 0 33.0 MBytes [ 5] 5.00-6.00 sec 59.1 MBytes 496 Mbits/sec 0 33.2 MBytes [ 5] 6.00-7.00 sec 58.8 MBytes 493 Mbits/sec 0 33.2 MBytes [ 5] 7.00-8.00 sec 59.8 MBytes 501 Mbits/sec 0 33.3 MBytes [ 5] 8.00-9.00 sec 58.6 MBytes 492 Mbits/sec 0 33.6 MBytes [ 5] 9.00-10.00 sec 59.9 MBytes 502 Mbits/sec 0 33.5 MBytes [ 5] 10.00-10.08 sec 4.63 MBytes 504 Mbits/sec 0 33.6 MBytes [ 5] 0.00-10.08 sec 570 MBytes 474 Mbits/sec 0总吞吐474 Mbits/sec。零丢包。KCC 五轮统计轮次总吞吐Mbits/sec首秒吞吐Mbits/sec丢包Retr稳态 cwndMBytes1472224033-3424054.83033-493475275033-344470174033-345474264033-34KCC 均值459.2 Mbits/sec标准差26.1 Mbits/sec含第二轮异常去除后为 472.8 Mbits/sec标准差 2.1 Mbits/sec四、对比分析4.1 启动阶段前 3 秒算法首秒吞吐均值第二秒均值第三秒均值是否出现首秒 10 Mbits/secBBR165.2 Mbits/sec297.9 Mbits/sec466.0 Mbits/sec是第二轮 2.46、第五轮 96.1KCC188.3 Mbits/sec410.8 Mbits/sec489.4 Mbits/sec是第二轮 4.83BBR 首秒吞吐在第二轮遭遇严重 stall2.46 Mbits/sec第五轮也仅 96.1 Mbits/sec。KCC 除第二轮外首秒均维持在 174-275 Mbits/sec启动一致性更优。4.2 稳态阶段第 3-10 秒算法稳态吞吐波动范围吞吐标准差去除异常轮丢包率BBR436-512 Mbits/sec1.5 Mbits/sec去异常1 次KCC478-519 Mbits/sec2.1 Mbits/sec去异常0 次两种算法在稳定后均能逼近物理瓶颈480M 带宽但 BBR 存在一次丢包记录而 KCC 五轮零丢包。4.3 拥塞窗口特征算法稳态 cwndMBytescwnd / BDP≈4.8 MBytesBBR10-142.1-2.9× BDPKCC33-346.9-7.1× BDP这是本测试中最显著的差异。KCC 维持了大约7× BDP的拥塞窗口而 BBR 仅维持约2-3× BDP。在 80ms RTT、480Mbps 的链路上维持更大的 cwnd 意味着ACK 时钟在更长的时间轴上积分深缓冲区中KCC 利用卡尔曼滤波器的方向性门控精确区分了TqueueT_{queue}Tqueue的增长斜率与物理路径变化。即便 cwnd 很大只要T˙queue≤0\dot{T}_{queue} \le 0T˙queue≤0KCC 便认为当前速率仍处在合理范围内无需强制排空。零丢包下的更高平均吞吐KCC 五轮均值 459.2 Mbits/sec含异常轮优于 BBR 的 440.6 Mbits/sec提升约 4.2%。在深缓冲区、长 RTT 下这一差异来源于 KCC 能够更持续地保持高窗口而不触发 BBR 的周期性 PROBE_RTT 强制排空。4.4 异常行为对比BBR 第二轮出现了一次重传Retr1伴随吞吐骤降至 375 Mbits/seccwnd 从 27.6 MBytes 跌至 12.7 MBytes。这是 BBR 在深缓冲区、长 RTT 路径上的典型行为——当 BBR 的 min_rtt 窗口因队列积压而暂时膨胀后触发 PROBE_RTT 强制排空导致 cwnd 急剧收缩。KCC 第二轮尽管启动较慢首秒 4.83 Mbits/sec但从未出现丢包且 cwnd 在第三秒即扩张至 48.4 MBytes随后稳定于 33-34 MBytes。说明 KCC 的滤波器和分层校准机制pestp_{est}pest阈值 / 漂移检测 / 周期性 PROBE_RTT在深缓冲区场景下能够更平滑地完成窗口扩张与收敛避免了 BBR 式的大幅锯齿。五、结论深缓冲区下两者均能打满瓶颈带宽的约 95% 以上单流饱和场景下算法差异被物理瓶颈480M压制。KCC 在零丢包和窗口扩张速度上优于 BBR五轮测试中KCC 保持零丢包BBR 出现一次丢包。KCC 的 cwnd 扩张至 7× BDP而 BBR 仅维持在 2-3× BDP——在 80ms RTT 长链路上更大的窗口是更高平均吞吐的物理基础。KCC 的启动一致性更高BBR 首秒吞吐出现多次 stall2.46 Mbits/sec、96.1 Mbits/sec而 KCC 仅有第二轮一次类似 stall其余四轮首秒均 ≥ 174 Mbits/sec。晚高峰22:40下KCC 的总吞吐均值459.2 Mbits/sec比 BBR440.6 Mbits/sec高出约 4.2%。在深缓冲区、长 RTT 场景下这一差异具有实际工程意义——KCC 的三层失效保护和方向性门控使其在不触发强制排空的前提下更持久地保持高窗口状态。工程意义对于骨干网、跨国链路、卫星回传等长肥网络KCC 的深缓冲区适应性优于 BBR能在不增加丢包的前提下更充分地利用延迟带宽积。KCC 的kcc_kf_enable1kcc_kf_steady_mode1甜品加速配置在此类链路中可显著缩短启动阶段并维持更平稳的稳态吞吐但并不意味着 KCC 优于 BBR须知没有银弹。测试数据集2026/06/24 22:40 晚高峰成都移动AS9808→ 新加坡甲骨文云单流 iperf3每算法 5 轮 10 秒测试。