%3C/text%3E%3C/svg%3E">
💻
💻 Tech & IT

TCP Throughput with Packet Loss (Mathis) Calculator

Results update as you type.

Your numbers

Understanding the TCP throughput with packet loss calculator — concept and principle

This calculator estimates the maximum steady-state throughput of one TCP connection when packets are being lost, using the well-known Mathis formula. It explains why a path with a little loss and a long round-trip time can feel slow even on a fast link, and helps network engineers judge whether a loss rate is acceptable for a given transfer speed, for example across a WAN or VPN.

Mathis formula for TCP throughputMSS 1,460 bytes over a 50 ms RTT is 233.6 kbit/s; times 1.22 ÷ √0.001 = 38.58 gives about 9.01 Mbps.Packet loss caps one TCP flow0.1% lost = 1 packet in 1,000 → sender slows downMSS ÷ RTT1,460 B × 8 ÷ 0.05 s233.6 kbit/s×1.22 ÷ √loss1.22 ÷ √0.00138.58≈ 9.01 Mbps maxfor one flow, however fast the link
With 0.1% loss and a 50 ms RTT, one TCP connection tops out near 9 Mbps.

How it is calculated

Throughput ≤ (MSS ÷ RTT) × C ÷ √p, with C ≈ 1.22.

The principle

Classic TCP congestion control (Reno-style AIMD) grows its window by about one segment per RTT and halves it after each loss. Mathis, Semke, Mahdavi and Ott (1997) showed that with random, periodic losses this saw-tooth averages out to a window of about √(3/(2p)) segments, which gives the constant √1.5 ≈ 1.22. Throughput is window ÷ RTT, so it falls with the square root of loss and in direct proportion to RTT. Halving the RTT doubles the ceiling; cutting loss by a factor of 4 doubles it too.

Worked example

  1. Inputs: MSS 1,460 bytes, RTT 50 ms, loss 0.1%.
  2. MSS in bits: 1,460 × 8 = 11,680 bits.
  3. MSS ÷ RTT: 11,680 ÷ 0.05 = 233,600 bit/s.
  4. √p = √0.001 = 0.031623, so 1.22 ÷ 0.031623 = 38.580.
  5. Throughput: 233,600 × 38.580 = 9,012,238 bit/s ≈ 9.012 Mbps.
How Max throughput (Mbps) changes with RTT (ms)How Max throughput changes with RTT01020304012.52537.55062.575100Example: 9.012238349RTT (ms)
Each point is the calculator re-run with only “RTT (ms)” changed; the gold point is the default example. Change the inputs above and this chart follows your numbers.
RTT (ms)Max throughput (Mbps)
12.536.0489534
2518.0244767
37.512.0163178
509.012238349
62.57.209790679
756.0081589
1004.506119175

How to read the result

The number is a ceiling for one flow, independent of link speed. On a 1 Gbps path with 50 ms RTT and 0.1% loss, a single classic TCP stream cannot exceed about 9 Mbps. To reach higher speeds you need lower loss, lower RTT or several parallel flows. Loss well below 0.01% is often needed for multi-hundred-megabit single streams over long distances.

Common mistakes

Keep in mind: The Mathis formula is an approximation that assumes random loss, Reno-style congestion control and no timeouts. Real throughput can be higher or lower.

Frequently asked questions

Why does a little packet loss slow TCP so much?

Each loss halves the window, and rebuilding it takes many RTTs on long paths.

Does BBR follow this formula?

No. BBR models bandwidth and RTT directly and is much less sensitive to random loss.

Where does 1.22 come from?

It is √(3/2), from averaging the saw-tooth window of periodic loss.

Sources: Mathis, M., Semke, J., Mahdavi, J., Ott, T. (1997), The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm, ACM SIGCOMM Computer Communication Review 27(3) · IETF RFC 5681, TCP Congestion Control

Checked 8 Nov 2026. Standard formulas and RFC/IEEE definitions, computed locally in your browser — nothing you type is sent anywhere.

💻 All tech & IT tools →🌍 Calculators by country →