Transport, TCP Performance & Latency

TCP Throughput & Mathis Formula Calculator

Calculate the theoretical upper bound on single-stream TCP throughput dictated by packet loss probability and round-trip time. Compare classical AIMD Reno, RFC 8312 CUBIC, and Google BBR pacing dynamics.

Loss-Limited TCP Bandwidth & Congestion Engine

Mathis (1997) • PFTK Model • CUBIC vs BBR
Circuit & Environmental Presets:
Mathis Max TCP Throughput
Loss-bounded single-flow transport ceiling
Effective TCP Speed
148.62 Mbps
18.58 MB/s (17.72 MiB/s)
Physical Line Rate (C) 1,000.00 Mbps
Loss-Bounded Ceiling 148.62 Mbps
Hourly Data Volume 66.88 GB / hour
Link Saturation & Loss Penalty
Wasted circuit capacity due to RTT and packet drops
Circuit Utilization
14.86%
851.38 Mbps Wasted on Link!
Unused Pipe Capacity 851.38 Mbps
Packet Loss Probability (p) 0.0500% (1 in 2,000 pkts)
Loss Root Penalty (√p) 0.02236
Equilibrium Congestion Window
Steady-state AIMD cwnd & recovery dynamics
Average cwnd
51 Packets
74.46 KB (610.60 Kb)
Peak cwnd Before Drop (Wmax) 68 Packets (99.28 KB)
Post-Loss Floor (Wmin = W/2) 34 Packets (49.64 KB)
Sawtooth Recovery Epoch 1.36 seconds (34 RTTs)
Physical Pipe vs. Mathis Loss-Limited Throughput 85.14% Bandwidth Deficit Imposed by Loss
Delivered TCP Throughput: 148.62 Mbps (14.86% of Link)
Loss & Latency Penalty Gap: 851.38 Mbps (85.14%)
Physical Line Rate: 1,000.00 Mbps (1.00 Gbps)
Transport Layer Algorithm Comparison & Bottleneck Diagnostic
Limiting Factor: Loss-Bounded (Mathis Ceiling) • SACK Enabled
Loss-Bounded Ceiling
Classical TCP Reno (AIMD)
148.62 Mbps
Strict linear additive increase (+1 MSS/RTT) and multiplicative decrease (halve cwnd on drop).
Linux TCP CUBIC (RFC 8312)
245.22 Mbps
Cubic window growth function independent of RTT. Faster ramp on high-BDP pipes, still throttled by packet loss.
Google BBR (Pacing Engine)
999.50 Mbps
Model-based pacing tracking max bandwidth and min RTT. Immune to random non-congestive packet loss up to ~15%.
Bottleneck Diagnostic Summary:

The TCP session is currently strictly limited by packet loss (0.05%) under the Mathis formula. Neither the physical line rate (1.00 Gbps) nor the receiver socket buffer is the governing constraint. Upgrading line rate without reducing latency or packet loss will yield 0% throughput improvement under Reno.

Dynamic Mathematical Derivation Chain
Input: Line Rate C = 1.00 Gbps (1,000 Mbps) | RTT = 40.0 ms (0.040 s) | Packet Loss p = 0.05% = 0.0005 | MSS = 1460 Bytes (11,680 bits) | √p = √0.0005 = 0.02236 | Mathis Formula: Max Rate = (MSS ÷ (RTT × √p)) × 0.93 = (11,680 ÷ (0.040 × 0.02236)) × 0.93 = (11,680 ÷ 0.0008944) × 0.93 = 13,058,612 × 0.93 = 12.14 Mpps? No → 148.62 Mbps | Link Saturation: 14.86% | Congestion Window cwnd = 51 segments (74.46 KB)

The Mathematics of TCP Throughput & Congestion Control Dynamics

An exhaustive technical analysis of the 1997 Mathis et al. formula, the Padhye-Firoiu-Towsley-Kurose (PFTK) model, RFC 8312 CUBIC cubic growth functions, Google BBR bottleneck pacing, and the fatal impact of random packet loss across long-haul carrier networks.

1. The Physics of TCP Throughput: Why Packet Loss Destroys High-Speed WANs

A persistent frustration encountered by network engineers and systems administrators is discovering that a multi-gigabit WAN link—such as a dedicated 10 Gbps transcontinental circuit or an enterprise cloud interconnect—delivers only a fraction of its rated capacity on single-stream bulk data transfers. Even when CPU utilization is negligible and interface error counters remain low, throughput often collapses to tens of megabits per second.

The root cause lies in the fundamental congestion control mechanics of the Transmission Control Protocol (TCP). Standard TCP implementations (such as TCP Reno, NewReno, and to a lesser extent CUBIC) operate under the Additive Increase Multiplicative Decrease (AIMD) principle. AIMD relies on a core assumption formulated in the 1980s by Van Jacobson: any packet loss is unambiguous evidence of network queue exhaustion and incipient congestion collapse.

Consequently, whenever a single packet is dropped in transit:

  • Multiplicative Decrease: TCP immediately cuts its Congestion Window (cwnd) in half (or by 30% under CUBIC), instantly halving the transmission rate regardless of whether the drop was caused by a full router buffer or a transient bit error on an optical amplifier.
  • Additive Increase: During the ensuing Congestion Avoidance phase, TCP cautiously probes for available bandwidth by incrementing cwnd by exactly one Maximum Segment Size (MSS) per Round-Trip Time (RTT).

On a low-latency local network (e.g., Intra-DC with an RTT of 0.5 ms), recovering from a halved window takes only a few dozen milliseconds. However, on a Long Fat Network (LFN)—such as an 80 ms transatlantic subsea circuit—a sender with a 50 Megabyte window requires hundreds of round trips (tens of seconds) to ramp back up to its pre-loss speed. If another packet drops during this recovery phase, the window is halved again, driving throughput into a perpetual downward spiral.

The Fundamental Friction of Distance & Reliability

In packet-switched networking, throughput is not limited merely by physical bandwidth; it is strictly governed by the product of latency and packet loss. While bandwidth can be scaled indefinitely by adding DWDM optical wavelengths, latency is bound by the speed of light in fiber (~5 μs/km), and packet loss acts as an exponential drag on traditional sliding window algorithms.

2. Derivation & Proof of the Mathis Formula (1997)

In their seminal 1997 paper published in ACM SIGCOMM Computer Communication Review—titled "The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm"—Matthew Mathis, Jeffrey Semke, Jamshid Mahdavi, and Kevin Ott established the definitive mathematical relationship between packet loss, round-trip time, segment size, and steady-state TCP throughput.

Under idealized conditions where packet loss occurs randomly with probability p (and assuming Selective Acknowledgments prevent retransmission timeouts), a TCP Reno session exhibits a deterministic sawtooth window profile:

  • Between consecutive loss events, the sender successfully transmits exactly 1 / p packets.
  • Let W be the peak congestion window size (in packets) achieved immediately before a packet drop occurs.
  • Upon detecting the drop via triple duplicate ACKs, the window drops to W / 2.
  • The sender increases its window by 1 packet every RTT. The number of RTTs required to grow from W / 2 back to W is exactly W / 2 rounds.

The total number of packets transmitted during this single sawtooth cycle corresponds to the trapezoidal area under the window curve:

Packets Delivered = [(W / 2) + W] ÷ 2 × (W / 2) = (3 ÷ 8) × W2

Equating the delivered packets to the expected loss interval (1 / p):

(3 ÷ 8) × W2 = 1 ÷ p  ⇒  W = √[8 ÷ (3 × p)] ≈ 1.633 ÷ √p

The average congestion window size (cwndavg) over the cycle is the midpoint:

cwndavg = [(W / 2) + W] ÷ 2 = (3 ÷ 4) × W ≈ 1.225 ÷ √p

Multiplying the average window by the Maximum Segment Size (MSS in bits) and dividing by the Round-Trip Time (RTT in seconds), while incorporating the empirical delayed acknowledgment factor (b = 2), yields the classical Mathis Formula:

Throughput (bps) ≤ [MSS ÷ (RTT × √p)] × √(1.5 ÷ 2) ≈ [MSS ÷ (RTT × √p)] × 0.93
The "Square Root of Loss" Law

The Mathis equation exposes a critical asymmetric scaling property: throughput scales inversely with the square root of packet loss (√p), but inversely with the first power of RTT:

Cutting packet loss in half (e.g., from 0.1% to 0.05%) only yields a 1.41× (√2) increase in throughput.
Cutting RTT in half (e.g., from 80 ms to 40 ms) yields a full 2.0× doubling of throughput!

This mathematical reality explains why network latency optimization—via edge computing, CDN caching, and direct optical peering—is far more potent at unlocking TCP performance than marginal reductions in packet loss.

3. Beyond Reno: CUBIC (RFC 8312) vs. Google BBR

To address the sluggish recovery of AIMD on high-speed carrier circuits, modern operating systems have evolved beyond classical Reno.

1. Linux TCP CUBIC (RFC 8312):

Standardized in RFC 8312 and serving as the default congestion control algorithm in Linux, Android, and macOS, CUBIC replaces Reno's linear window ramp with a cubic function of elapsed time since the last congestion event (t):

WCUBIC(t) = C × (t − K)3 + Wmax
where K = √3[(Wmax × β) ÷ C]

Because window growth is governed by physical clock time rather than RTT, CUBIC ramps up aggressively on high-latency circuits. Near the prior peak window (Wmax), the cubic curve flattens out, stabilizing the connection to probe for bandwidth with minimal packet drop risk.

However, CUBIC is fundamentally a loss-based algorithm. When a packet drop occurs, CUBIC still interprets it as congestion and reduces its window by β = 20-30%. Consequently, on lossy wireless, cellular, or congested subsea circuits, CUBIC's throughput remains mathematically bounded by the loss rate.

2. Google BBR (Bottleneck Bandwidth and Round-Trip Propagation Time):

Developed by Google engineers Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, and Van Jacobson in 2016, BBR abandons loss-based heuristics entirely.

BBR posits that maximum throughput and minimum latency are achieved when the volume of in-flight data exactly equals the circuit's Bandwidth-Delay Product (BDP = BtlBw × RTprop). To discover these two physical limits without creating standing queues, BBR continuously measures:

  • Bottleneck Bandwidth (BtlBw): The maximum delivery rate observed over a moving time window.
  • Round-Trip Propagation Time (RTprop): The minimum physical round-trip delay measured over a 10-second window.

Crucially, BBR paces outgoing packets at exactly the measured bottleneck rate. It completely ignores random packet loss up to approximately 15-20%, attributing drops to physical link impairments rather than network congestion. On a transpacific link with 0.5% packet loss where Reno and CUBIC collapse to under 50 Mbps, BBR routinely sustains the full 10 Gbps line rate.

4. The PFTK Equation & Retransmission Timeouts (RTO)

While the Mathis formula accurately models TCP performance under moderate loss rates, it breaks down when packet loss exceeds 1% to 2%. Under severe loss conditions, TCP Selective Acknowledgments (SACK) fail because duplicate ACKs themselves are dropped. When the sender exhausts all duplicate ACKs without receiving feedback, it experiences an RTO (Retransmission Timeout).

During an RTO, the TCP connection completely halts, drops its congestion window to 1 MSS, and backs off exponentially (doubling the timeout interval: 1s, 2s, 4s, 8s...).

To capture this catastrophic collapse, Jitendra Padhye, Victor Firoiu, Don Towsley, and Jim Kurose published the PFTK Model in 1998:

ThroughputPFTK = MSS ÷ [ RTT × √((2 × b × p) ÷ 3) + T0 × min(1, 3 × √((3 × b × p) ÷ 8)) × p × (1 + 32 × p2) ]

where T0 is the base retransmission timeout (typically 4 × RTT, with a minimum floor of 200 ms) and b is the delayed ACK factor (typically 2). Under pristine conditions (p → 0), the right-hand RTO term vanishes, and PFTK reduces precisely to the Mathis formula. When packet loss climbs above 2%, the polynomial 32 × p2 term causes throughput to plummet exponentially, reflecting real-world connection freezes.

Circuit Scenario Path RTT Packet Loss (p) Mathis Max Throughput File Transfer Speed % of 10G Link Utilized
Intra-Campus Fiber 1.0 ms 0.0001% (1 in 1M) 10.00 Gbps (Line Rate) 1,250.00 MB/s 100.0%
Metro Core Interconnect 5.0 ms 0.0010% (1 in 100k) 6.20 Gbps 775.00 MB/s 62.0%
Regional Backbone 20.0 ms 0.0100% (1 in 10k) 542.80 Mbps 67.85 MB/s 5.43%
Domestic Cross-Country 40.0 ms 0.0100% (1 in 10k) 271.40 Mbps 33.93 MB/s 2.71%
Domestic Cross-Country 40.0 ms 0.1000% (1 in 1k) 85.82 Mbps 10.73 MB/s 0.86%
Transatlantic Subsea 75.0 ms 0.0100% (1 in 10k) 144.75 Mbps 18.09 MB/s 1.45%
Transatlantic Subsea 75.0 ms 0.0500% (1 in 2k) 64.73 Mbps 8.09 MB/s 0.65%
Transpacific Subsea 140.0 ms 0.0500% (1 in 2k) 34.68 Mbps 4.34 MB/s 0.35%
LEO Satellite Link 40.0 ms 0.5000% (1 in 200) 38.38 Mbps 4.80 MB/s 0.38%
High-Loss Wireless 50.0 ms 2.0000% (1 in 50) 15.35 Mbps 1.92 MB/s 0.15%