Home / Computer Science / Networking / TCP Throughput Estimate (Mathis Formula)

Formula & Calculator

TCP Throughput Estimate (Mathis Formula)

This formula estimates how fast a TCP connection can transfer data given the packet loss rate, the round-trip time, and the maximum segment size. Throughput is proportional to MSS divided by (RTT times the square root of the loss probability). For example, a connection with 1% loss and 100 ms RTT has much lower throughput than one with 0.01% loss. It explains why packet loss hurts so much on high-latency links and why TCP tuning matters in long-distance networks.

Computer Science Networking TCP/IP
VORZEP · NETWORK PERFORMANCE TOOLS

TCP Throughput Estimate Calculator — Mathis Formula

Estimate loss-limited TCP throughput, or solve for MSS, RTT or packet-loss rate — with step-by-step math, live log-scale charts, an RTT × loss heat table, and unit conversions.

Throughput ≈ (MSS · C) / (RTT · √p)
The Mathis model is a steady-state upper bound for loss-based (Reno-style) TCP under random loss. Real throughput is also capped by link capacity and receive window, and modern algorithms such as CUBIC or BBR behave differently — treat results as an estimate.
Solve for
Maximum Segment Size (MSS) Largest TCP payload per packet, in bytes. 1460 is typical for Ethernet (1500 MTU minus 40 bytes of headers).
bytes
MSS must be greater than zero.
Model Constant (C) Depends on the loss pattern and ACK strategy. √(3/2) ≈ 1.22 for periodic loss with per-packet ACKs; √(3/4) ≈ 0.87 with delayed ACKs; ≈1.31 for random loss.
const
C must be greater than zero.
Round-Trip Time (RTT) Time for a packet to reach the receiver and its acknowledgment to return, in milliseconds.
ms
RTT must be greater than zero.
Packet Loss Probability (p) Fraction of packets lost, entered as a percentage. The slider is logarithmic (0.0001% to 10%).
%
Loss must be above 0% and at most 100%.
TCP Throughput Steady-state goodput in megabits per second. The slider is logarithmic (0.01 Mbps to 10 Gbps). SOLVED
Mbps
Throughput must be greater than zero.
TCP THROUGHPUT
9.047 Mbps
9.047 × 10⁶ bps
Throughput = (MSS · C) / (RTT · √p)
Step-by-step solution
Graphical representation
Log–log scale. The amber dot marks your current operating point.
Sensitivity
Connection Metrics
What drives TCP throughput
Throughputbits per second
≈
MSS·C / (RTT·√p)inverse in RTT and √p

Loss enters as a square root

Cutting the loss rate by 100× only raises throughput 10×. Going from 1% to 0.01% loss buys a tenfold gain, but going from 0.001% to 0.0001% buys just 3.2×.

RTT hurts linearly

Doubling the round-trip time halves throughput at the same loss rate. This is why long-haul and satellite paths need extremely low loss to fill a fast link.

MSS scales throughput directly

Bigger segments mean more bytes per congestion-window step. Jumbo frames (8960-byte MSS) deliver about 6× the loss-limited rate of a 1460-byte MSS.

It's an upper bound

The result is the loss-limited ceiling. Actual throughput is the minimum of this value, the link capacity, and the receive-window limit (window / RTT).

How to Use This Calculator

The Mathis formula links four quantities: throughput, MSS, RTT and packet loss, with a constant C that captures the loss pattern. Pick what to solve for and fill in the rest.

1. Choose what to solve for

Throughput, MSS, RTT, or loss probability. The tool rearranges the formula and locks that field.

2. Enter path characteristics

Set RTT in milliseconds and loss as a percentage. Presets cover typical LAN, WAN and satellite paths.

3. Pick MSS and the constant C

Use 1460 for standard Ethernet and choose C based on delayed ACKs or loss pattern. Both stay editable whatever you solve for.

4. Read the result

Throughput auto-scales between bps, Kbps, Mbps and Gbps, with engineering notation and full working shown step by step.

5. Explore the charts

Toggle between throughput-vs-loss and throughput-vs-RTT curves to see how sensitive your path is.

6. Go Advanced

Advanced mode adds sensitivity, connection metrics (window size, BDP, transfer time) and a deeper look at what drives throughput.

What This Tool Offers

Built around the Mathis et al. model, a standard back-of-the-envelope tool for reasoning about TCP performance over lossy paths.

Solve four ways

Estimate throughput, or work backwards to the MSS, RTT or loss rate a target rate requires.

Two live log-scale charts

Curves for several RTTs or loss rates, with your operating point marked.

RTT × loss heat table

A colour-graded throughput grid computed from your MSS and C.

Required-loss table

See the maximum loss rate that can still sustain 1 Mbps up to 10 Gbps at your RTT.

Sensitivity check

See how a 1% change in each input moves the answer.

Unit converter

Convert between bps, Kbps, Mbps, Gbps, MB/s and GB per hour.

Conversion Tables & Reference

Throughput unit conversion, plus live tables driven by your current MSS, RTT and C.

Throughput unit converter

Unit Conversion Reference

UnitIn bits/sIn bytes/sTypical example
1 Kbps1,000125 B/sLegacy dial-up era
1 Mbps1,000,000125 KB/sBasic video call
100 Mbps10⁸12.5 MB/sFast Ethernet
1 Gbps10⁹125 MB/sGigabit Ethernet
10 Gbps10¹⁰1.25 GB/sData-centre link

Throughput Heat Table (RTT × Loss)

Loss-limited throughput for the current MSS and C.

lowerhigher throughput

Loss Rate Required to Sustain a Target Rate

Maximum loss rate for each target at the current RTT, MSS and C.

Common Values for the Constant C

CValueAssumption
√(3/2)≈1.2247Periodic loss, an ACK for every packet
√(3/4)≈0.8660Periodic loss with delayed ACKs (one ACK per two packets)
≈1.311.31Random (Bernoulli) loss, per-packet ACKs

What Does the Mathis Formula Measure?

Loss-based TCP grows its congestion window until a packet is dropped, then cuts it and grows again, a sawtooth pattern. Mathis, Semke, Mahdavi and Ott showed that the average of that sawtooth depends on just three path properties: segment size, round-trip time and loss rate. The result is the steady-state throughput a single long-lived TCP flow can sustain on a lossy path.

Mathis Formula

Throughput ≈ (MSS · C) / (RTT · √p)

Rearranged to solve for the other variables:

MSS = Throughput · RTT · √p / C
RTT = (MSS · C) / (Throughput · √p)
p = ( (MSS · C) / (RTT · Throughput) )²

MSS is in bits when computing bits per second, so bytes are multiplied by 8.

Variables

SymbolMeaningNotes
ThroughputSteady-state TCP rateShown in bps, Kbps, Mbps or Gbps
MSSMaximum segment sizeBytes; 1460 typical on Ethernet
CModel constant≈0.87–1.31 depending on ACK and loss pattern
RTTRound-trip timeEntered in ms, used in seconds
pPacket loss probabilityEntered as %, used as a fraction

Calculation Examples

Given: MSS = 1460 B, C = 1.2247, RTT = 50 ms, p = 0.1% — solve for throughput
MSS·C = 1460 × 8 × 1.2247 = 14,305 bits
RTT·√p = 0.05 × √0.001 = 0.0015811
Throughput = 14,305 / 0.0015811 = ≈9.05 Mbps
Given: target 1 Gbps, MSS = 1460 B, C = 1.2247, RTT = 20 ms — solve for p
p = ( 14,305 / (0.02 × 10⁹) )² = (7.15 × 10⁻⁴)²
p = ≈5.1 × 10⁻⁷ (about 0.00005%)

Frequently Asked Questions

No. It is a steady-state upper bound for a single long-lived, loss-limited flow. Link capacity, receive-window limits, competing traffic and slow start can all push real throughput lower.

The window at which loss occurs scales as 1/√p: with loss probability p, a flow sends about 1/p packets between drops, and the sawtooth area works out to a window of order 1/√p.

It was derived for Reno-style AIMD. CUBIC scales differently with RTT and loss, and BBR is largely loss-agnostic, so treat the formula as a rough benchmark for those algorithms.

Use about 1.22 for periodic loss with per-packet ACKs, 0.87 with delayed ACKs, or 1.31 for random loss. The differences shift results by tens of percent, not orders of magnitude.

Because throughput falls with RTT. At 100 ms RTT and 1460-byte MSS, sustaining 1 Gbps requires a loss rate far below 0.0001%, see the required-loss table above.

The receive window (max throughput = window / RTT), the bottleneck link capacity, and application behaviour. The effective rate is roughly the minimum of all of these.

Calculating...

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
Scenario 1 – Good Connection: TCP has MSS = 1460 bytes, RTT = 50 ms, packet loss rate p = 0.001 (0.1%). Estimate throughput.
ParameterValue
MSS1460 bytes = 11,680 bits
RTT50 ms = 0.05 s
p0.001
1Throughput ≈ (MSS × C) / (RTT × √p), where C ≈ 1.22
2≈ (11680 × 1.22) / (0.05 × √0.001) = 14249.6 / (0.05 × 0.03162) = 14249.6 / 0.001581 ≈ 9,013,000 bps ≈ 9.0 Mbps
Result ≈ 9.0 Mbps ✓ Good throughput
Scenario 2 – High Loss, Long RTT: MSS = 1460, RTT = 200 ms, p = 0.01 (1% loss). Estimate throughput.
ParameterValue
MSS11,680 bits
RTT0.2 s
p0.01
1Throughput ≈ (11680 × 1.22) / (0.2 × √0.01) = 14249.6 / (0.2 × 0.1) = 14249.6 / 0.02 ≈ 712,480 bps ≈ 0.71 Mbps
Result ≈ 0.71 Mbps ⚠️ Low throughput
Key insight: TCP throughput drops dramatically with packet loss – it's proportional to 1/√p. Reducing loss is crucial for high‑speed networks.

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