TCP Throughput Formula
The TCP throughput formula explains the maximum data transfer rate limited by window size, RTT, and packet loss.
Includes worked examples.
The Formula
This is the Mathis formula for TCP throughput — the maximum sustainable data rate a single TCP connection can achieve under packet loss conditions. It shows that throughput is fundamentally limited not just by bandwidth, but by the round-trip time and the frequency of packet loss events.
Variables
| Symbol | Meaning | Unit |
|---|---|---|
| Throughput | Maximum sustained data rate | bits/second |
| MSS | Maximum Segment Size — largest TCP payload per packet | bytes |
| RTT | Round-Trip Time — time for a packet to travel to server and back | seconds |
| p | Packet loss probability (0 to 1) | dimensionless |
| √p | Square root of packet loss — amplifies the effect of even small losses | — |
Simpler Window-Based Formula
Without packet loss, TCP throughput is simply the receiver window size divided by the round-trip time. This is the theoretical ceiling — the Mathis formula accounts for real-world loss.
Example 1
Home broadband: RTT = 20 ms, window = 65,535 bytes, no packet loss
Throughput = 65,535 bytes / 0.020 s = 3,276,750 bytes/s
Throughput ≈ 26.2 Mbps — typical for a standard TCP connection
Example 2
MSS = 1460 bytes, RTT = 50 ms, packet loss p = 0.001 (0.1%)
Throughput = (1460 / 0.050) × (1 / √0.001)
= 29,200 × 31.62
Throughput ≈ 923 Kbps — even 0.1% loss significantly caps throughput
Why Packet Loss Hurts So Much
TCP uses Additive Increase, Multiplicative Decrease (AIMD):
- On each round trip without loss: window grows by 1 MSS (slow, linear increase)
- On each packet loss event: window is cut in half (fast, multiplicative decrease)
- Even rare loss events (1 in 1000 packets) devastate throughput on high-latency links
TCP Window Scaling
Standard TCP allows a maximum window of 65,535 bytes (64 KB). On high-speed, high-latency links (satellite, intercontinental), this creates a "bandwidth-delay product" bottleneck:
A 1 Gbps link with 200 ms RTT has a BDP of 25 MB — far larger than a 64 KB window. TCP window scaling (RFC 1323) extends the window up to 1 GB to fill these high-BDP paths.
When to Use This Formula
- Diagnosing why a connection performs far below line rate
- Network capacity planning for latency-sensitive applications
- Understanding why satellite or intercontinental links underperform despite high bandwidth
- Evaluating the impact of reducing packet loss (e.g., switching from WiFi to wired)