Source: Dev.to
In this performance evaluation, we compared three congestion control algorithms—NDM‑TCP (ML‑based), TCP Cubic, and TCP Reno—under network conditions that simulate a typical urban LTE/4G mobile network environment.
Test Setup
- Base latency: 50 ms
- Latency variation: ±20 ms (jitter)
- Packet loss rate: 5 %
- Test tool: iperf3, 10‑second run
- Environment: simulated urban LTE/4G
| Metric | NDM‑TCP (ML) | TCP Cubic | TCP Reno |
|---|
| Total Transfer (Sender) | 22.5 MBytes | 36.4 MBytes | 47.6 MBytes |
| Total Received (Receiver) | 19.8 MBytes | 34.6 MBytes | 44.1 MBytes |
| Average Bitrate (Sender) | 18.9 Mbits/s | 30.5 Mbits/s | 39.9 Mbits/s |
| Receiver Bitrate | 16.4 Mbits/s | 28.8 Mbits/s | 36.5 Mbits/s |
| Total Retransmissions | 23 | 30 | 52 |
| Test Duration (Receiver) | 10.12 s | 10.08 s | 10.13 s |
Interval Statistics
NDM‑TCP (ML)
| Interval (s) | Transfer | Bitrate | Retransmissions | 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
| Interval (s) | Transfer | Bitrate | Retransmissions | 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
| Interval (s) | Transfer | Bitrate | Retransmissions | 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 |
Algorithm Characteristics
NDM‑TCP (ML)
- Throughput: 18.9 Mbits/s average (moderate)
- Retransmissions: 23 (lowest)
- Congestion Window: 128‑320 KB, adaptive
- Performance: Steady with limited fluctuations; prioritizes stability and efficiency.
TCP Cubic
- Throughput: 30.5 Mbits/s average
- Retransmissions: 30
- Congestion Window: 256‑576 KB
- Performance: Balances speed and reliability; less variability than Reno.
TCP Reno
- Throughput: 39.9 Mbits/s average (highest)
- Retransmissions: 52 (most)
- Congestion Window: Starts with 1.75 MB, then varies widely
- Performance: Aggressive, high peak speeds but large bitrate swings and overhead.
Comparative Summary
| Metric | NDM‑TCP | TCP Cubic | TCP Reno |
|---|
| Avg. Bitrate (Sender) | 18.9 Mbits/s | 30.5 Mbits/s | 39.9 Mbits/s |
| Total Retransmissions | 23 | 30 | 52 |
| MBytes per Retransmission | 0.98 MB | 1.21 MB | 0.92 MB |
| Typical cwnd range | 128‑320 KB | 256‑576 KB | 128 KB‑1.75 MB |
Trade‑offs
- TCP Reno: Maximizes throughput; suitable for bulk data transfers where occasional loss is acceptable.
- TCP Cubic: Offers a middle ground—good speed with moderate reliability; a solid default for many networks.
- NDM‑TCP: Emphasizes reliability and low overhead; ideal for latency‑sensitive or battery‑constrained mobile scenarios (e.g., VoIP, gaming, real‑time streaming, congested networks).
Recommendations
- Choose Reno when raw speed is the primary goal and the network can tolerate higher retransmission overhead.
- Opt for Cubic for general‑purpose deployments seeking a balance of performance and stability.
- Deploy NDM‑TCP in environments where stability, efficiency, and reduced retransmissions are critical.