Formula & Calculator
TCP Throughput Estimate (Mathis Formula)
Estimates the maximum achievable TCP throughput given packet loss rate, round-trip time, and maximum segment size.
Interpretation
Mathis formula estimates TCP throughput: Throughput ≈ (MSS × C) / (RTT × √p), where C is a constant (typically 1.22) and p is packet loss rate. Example: MSS=1460 bytes, RTT=0.1 s, p=0.001 → throughput ≈ (1460×1.22)/(0.1×√0.001) ≈ 1781/0.00316 ≈ 563,000 B/s ≈ 0.56 MB/s.
Variables
| Symbol | Quantity | Unit |
|---|---|---|
| Throughput | Estimated TCP throughput | bytes/s |
| MSS | Maximum segment size | bytes |
| C | Constant (~1.22) | |
| RTT | Round-trip time | s |
| p | Packet loss probability |
What it means
The Mathis formula is a simple yet powerful model for estimating TCP throughput based on the packet loss rate and round‑trip time (RTT). It is derived from the TCP congestion control mechanism, particularly Reno, and is given by Throughput ≈ (MSS * C) / (RTT * √p), where MSS is the maximum segment size, C is a constant (often 1.22 for TCP Reno), and p is the packet loss probability. The formula shows that throughput is inversely proportional to RTT and the square root of the loss rate. This implies that even small packet losses can severely impact throughput, especially over long RTT links. It is widely used to predict the performance of TCP connections over error‑prone links (e.g., wireless) and to dimension network buffers. The formula is an approximation; it assumes that losses are due to congestion and not corruption. It is also used in evaluating the impact of TCP options like SACK and window scaling. Understanding this formula helps network engineers diagnose poor performance and choose appropriate congestion control algorithms.
Worked example
TCP Throughput (Mathis) – Two Examples
Real‑World| Parameter | Value |
|---|---|
| MSS | 1460 bytes = 11,680 bits |
| RTT | 50 ms = 0.05 s |
| p | 0.001 |
| Parameter | Value |
|---|---|
| MSS | 11,680 bits |
| RTT | 0.2 s |
| p | 0.01 |
Common mistakes
- Constant C: Usually 1.22 for TCP Reno; different congestion control algorithms have different constants.
- MSS units: Maximum segment size in bytes – convert to bits if needed.
- Packet loss p: Must be a fraction (e.g., 0.01 for 1% loss) – not a percentage.
- RTT: In seconds – not milliseconds without conversion.
- Assumptions: The formula assumes no timeouts and limited window growth; it is an approximation.
Applications
The Mathis formula estimates TCP throughput as a function of the maximum segment size (MSS), round‑trip time (RTT), and packet loss rate (p). It is widely used in network performance engineering to predict the achievable throughput of a TCP connection under lossy conditions. Engineers apply this formula to diagnose performance bottlenecks, to configure network equipment for high‑speed links, and to design congestion control enhancements. It also helps in capacity planning for data centres and WANs, where loss rates and RTTs vary. Understanding this formula is essential for troubleshooting slow file transfers and for optimising application performance over TCP.
- Performance estimation of TCP connections
- Network capacity planning and troubleshooting
- Design of congestion control algorithms
- Optimisation of satellite and mobile networks
- Quality of service (QoS) analysis
Frequently Asked Questions
The Mathis formula gives an estimate of the maximum achievable TCP throughput given the packet loss rate, RTT, and maximum segment size: Throughput ≈ (MSS × C) / (RTT × √p), where C is a constant (often taken as 1.22 or 1.5), MSS is the maximum segment size (bytes), RTT is the round‑trip time (seconds), and p is the packet loss probability (fraction).
It assumes:
- TCP congestion control follows the standard additive increase/multiplicative decrease (AIMD).
- Losses are independent and random (not correlated).
- The window size is not limited by the receiver window.
- Losses are the primary cause of throughput reduction.
- Applying it to bursty loss – the formula assumes random, independent losses; bursty losses (e.g., due to router buffer overflow) can degrade performance more severely.
- Using the wrong constant – the constant C may vary (e.g., 1.22 for TCP Reno, 1.5 for some versions).
- Ignoring the effect of delayed ACKs – which can alter the throughput.
- Using it for very high loss rates – for p > 0.1, the formula becomes inaccurate.
Throughput is inversely proportional to √p. This means that even a small increase in loss rate significantly reduces throughput. For example, increasing loss from 0.01% to 0.04% doubles the loss, reducing throughput by half (since √0.0004 = 2×√0.0001).
Throughput is inversely proportional to RTT. Higher latency (RTT) reduces throughput for the same loss rate because the congestion window takes longer to recover. This is why long‑distance links require careful tuning.
To increase throughput, you can:
- Reduce packet loss (improve link quality).
- Reduce RTT (move servers closer).
- Increase MSS (use larger packets, e.g., jumbo frames).
Using C=1.22: Throughput ≈ (1460 × 8 bits × 1.22) / (0.1 × √0.001) ≈ (1460 × 8 × 1.22) / (0.1 × 0.0316) ≈ (14249.6) / 0.00316 ≈ 4,509,000 bps ≈ 4.5 Mbps. This is much less than the link capacity, showing the impact of loss.
It does not account for:
- Receiver window limitations.
- Timeouts (RTO) – which can drastically reduce throughput.
- Variations in RTT (jitter).
- Slow start and other transient effects.
The Padhye formula is a more comprehensive model that includes timeouts and the effect of the receiver window. Another is the BIC/CUBIC throughput model for high‑speed TCP variants. The Mathis formula is the simplest and most widely used for quick estimates.
CUBIC uses a different congestion control algorithm (cubic function) that allows faster recovery and better performance for high bandwidth‑delay products. The Mathis formula is less accurate for CUBIC; however, for moderate loss rates, it can still serve as a rough estimate. Specialised formulas exist for CUBIC.