NDM-TCP vs TCP Cubic vs TCP Reno:城市 LTE/4G 网络性能测试
发布: (2026年2月12日 GMT+8 21:20)
5 分钟阅读
原文: Dev.to
Source: Dev.to
在此性能评估中,我们比较了三种拥塞控制算法——NDM‑TCP(基于机器学习)、TCP Cubic 和 TCP Reno——在模拟典型城市 LTE/4G 移动网络环境的网络条件下。
测试设置
- 基础延迟: 50 ms
- 延迟抖动: ±20 ms (抖动)
- 丢包率: 5 %
- 测试工具: iperf3, 10秒运行
- 环境: 模拟城市 LTE/4G
整体性能指标
| 指标 | NDM‑TCP (ML) | TCP Cubic | TCP Reno |
|---|---|---|---|
| 总传输量(发送端) | 22.5 MBytes | 36.4 MBytes | 47.6 MBytes |
| 总接收量(接收端) | 19.8 MBytes | 34.6 MBytes | 44.1 MBytes |
| 平均比特率(发送端) | 18.9 Mbits/s | 30.5 Mbits/s | 39.9 Mbits/s |
| 接收端比特率 | 16.4 Mbits/s | 28.8 Mbits/s | 36.5 Mbits/s |
| 总重传次数 | 23 | 30 | 52 |
| 测试时长(接收端) | 10.12 s | 10.08 s | 10.13 s |
区间统计
NDM‑TCP (ML)
| 间隔 (s) | 传输量 | 比特率 | 重传次数 | cwnd |
|---|---|---|---|---|
| 0‑1 | 2.38 MBytes | 19.9 Mbits/s | 3 | 256 KB |
| 1‑2 | 2.88 MBytes | 24.1 Mbits/s | 2 | 320 KB |
| 2‑3 | 1.00 MBytes | 8.39 Mbits/s | 4 | 128 KB |
| 3‑4 | 2.38 MBytes | 19.9 Mbits/s | 2 | 320 KB |
| 4‑5 | 2.25 MBytes | 18.9 Mbits/s | 2 | 256 KB |
| 5‑6 | 2.88 MBytes | 24.1 Mbits/s | 4 | 128 KB |
| 6‑7 | 2.00 MBytes | 16.8 Mbits/s | 1 | 320 KB |
| 7‑8 | 1.25 MBytes | 10.5 Mbits/s | 3 | 128 KB |
| 8‑9 | 2.00 MBytes | 16.8 Mbits/s | 1 | 320 KB |
| 9‑10 | 3.50 MBytes | 29.3 Mbits/s | 1 | 192 KB |
TCP Cubic
| 间隔 (s) | 传输量 | 比特率 | 重传次数 | cwnd |
|---|---|---|---|---|
| 0‑1 | 4.75 MBytes | 39.8 Mbits/s | 7 | 512 KB |
| 1‑2 | 3.12 MBytes | 26.2 Mbits/s | 3 | 320 KB |
| 2‑3 | 4.62 MBytes | 38.8 Mbits/s | 2 | 576 KB |
| 3‑4 | 4.62 MBytes | 38.8 Mbits/s | 3 | 448 KB |
| 4‑5 | 2.62 MBytes | 22.0 Mbits/s | 4 | 256 KB |
| 5‑6 | 2.50 MBytes | 21.0 Mbits/s | 1 | 384 KB |
| 6‑7 | 3.38 MBytes | 28.3 Mbits/s | 2 | 448 KB |
| 7‑8 | 3.38 MBytes | 28.3 Mbits/s | 5 | 448 KB |
| 8‑9 | 3.75 MBytes | 31.5 Mbits/s | 1 | 448 KB |
| 9‑10 | 3.62 MBytes | 30.3 Mbits/s | 2 | 512 KB |
TCP Reno
| 间隔 (s) | 传输量 | 比特率 | 重传次数 | cwnd |
|---|---|---|---|---|
| 0‑1 | 10.6 MBytes | 89.0 Mbits/s | 11 | 1.75 MB |
| 1‑2 | 10.8 MBytes | 90.2 Mbits/s | 11 | 576 KB |
| 2‑3 | 3.88 MBytes | 32.5 Mbits/s | 5 | 192 KB |
| 3‑4 | 2.75 MBytes | 23.1 Mbits/s | 3 | 320 KB |
| 4‑5 | 2.75 MBytes | 23.1 Mbits/s | 3 | 512 KB |
| 5‑6 | 4.88 MBytes | 40.9 Mbits/s | 4 | 384 KB |
| 6‑7 | 3.12 MBytes | 26.2 Mbits/s | 2 | 448 KB |
| 7‑8 | 4.25 MBytes | 35.7 Mbits/s | 7 | 192 KB |
| 8‑9 | 1.75 MBytes | 14.7 Mbits/s | 5 | 128 KB |
| 9‑10 | 2.88 MBytes | 24.1 Mbits/s | 1 | 384 KB |
算法特性
NDM‑TCP (ML)
- 吞吐量: 平均 18.9 Mbits/s(中等)
- 重传次数: 23(最低)
- 拥塞窗口: 128‑320 KB,自适应
- 性能: 稳定,波动有限;侧重于稳定性和效率。
TCP Cubic
- 吞吐量: 平均 30.5 Mbits/s
- 重传次数: 30
- 拥塞窗口: 256‑576 KB
- 性能: 在速度和可靠性之间取得平衡;相较于 Reno 变动更小。
TCP Reno
- 吞吐量: 平均 39.9 Mbits/s(最高)
- 重传次数: 52(最多)
- 拥塞窗口: 初始为 1.75 MB,随后变化幅度大
- 性能: 侵略性强,峰值速度高,但比特率波动大且开销高。
Comparative Summary
| 指标 | NDM‑TCP | TCP Cubic | TCP Reno |
|---|---|---|---|
| 平均比特率(发送端) | 18.9 Mbits/s | 30.5 Mbits/s | 39.9 Mbits/s |
| 总重传次数 | 23 | 30 | 52 |
| 每次重传的兆字节 | 0.98 MB | 1.21 MB | 0.92 MB |
| 典型 cwnd 范围 | 128‑320 KB | 256‑576 KB | 128 KB‑1.75 MB |
权衡
- TCP Reno: 最大化吞吐量;适用于对偶尔丢包可接受的大批量数据传输。
- TCP Cubic: 提供折中方案——速度快且可靠性适中;是多数网络的可靠默认选择。
- NDM‑TCP: 强调可靠性和低开销;非常适合对延迟敏感或受电池限制的移动场景(例如 VoIP、游戏、实时流媒体、拥塞网络)。
建议
- 当原始速度是主要目标且网络能够容忍更高的重传开销时,选择 Reno。
- 对于寻求性能与稳定性平衡的通用部署,选择 Cubic。
- 在对稳定性、效率以及降低重传至关重要的环境中部署 NDM‑TCP。