Congestion Window Calculator
Model the AIMD sawtooth: how far cwnd drops on loss and how many round trips recovery takes.
About Congestion Window Calculator
Loss-based congestion control cuts the window by a fixed fraction, then rebuilds it linearly at one segment per round trip. The mean of that sawtooth is what the application actually experiences as throughput. Recovery time scales with RTT × window, so on a long path a single loss can cost seconds of reduced throughput — which is why CUBIC uses β = 0.7 instead of Reno's 0.5.
Formulas
Congestion Window
On loss cwnd → cwnd × β; recovery takes (cwnd − cwnd × β) ÷ additive increase round trips.
- β
- Multiplicative decrease factor (0.5 for Reno, 0.7 for CUBIC)
- cwnd
- Congestion window in segments
Throughput from mean window
average throughput = mean cwnd × MSS × 8 ÷ RTT
- mean cwnd
- Midpoint of the sawtooth
- RTT
- Round-trip time in seconds
Worked example
With the default values below, Congestion Window Calculator returns Congestion Window After Loss of 20.0. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Congestion window before lossminimum 1 segments
- 40 segments
- Maximum segment sizeaccepts 88–9,000 bytes
- 1,460 bytes
- Round-trip timeminimum 0.1 ms
- 25 ms
- Multiplicative decrease factoraccepts 0.1–0.95
- 0.5
- Additive increase per RTTaccepts 0.1–10 segments
- 1 segments
Results
- Congestion Window After Loss
- 20.0 segments
- Round Trips To Recover
- 20
- Recovery Time
- 500 ms
- Average Window Over The Sawtooth
- 30.0 segments
- Average Throughput
- 14.02 Mbit/s
Step by step
- 1Values used
- 2Congestion Window
- 3Throughput from mean window
- 4Congestion Window After Loss= 20.0 segments
- 5Round Trips To Recover= 20
- 6Recovery Time= 500 ms
- 7Average Window Over The Sawtooth= 30.0 segments
- 8Average Throughput= 14.02 Mbit/s
Assumptions and limits
- The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 2 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
How is Congestion Window calculated?
On loss cwnd → cwnd × β; recovery takes (cwnd − cwnd × β) ÷ additive increase round trips. Loss-based congestion control cuts the window by a fixed fraction, then rebuilds it linearly at one segment per round trip. The mean of that sawtooth is what the application actually experiences as throughput.
Why does Congestion Window matter?
Recovery time scales with RTT × window, so on a long path a single loss can cost seconds of reduced throughput — which is why CUBIC uses β = 0.7 instead of Reno's 0.5.
What values do I need to enter?
This calculator takes 5 inputs: Congestion window before loss, Maximum segment size, Round-trip time, Multiplicative decrease factor, Additive increase per RTT. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Related Calculators
You might also need
- TCP Slow Start CalculatorCommonly used together
- Bandwidth Delay Product CalculatorCommonly used together
- TCP Retransmission CalculatorCommonly used together
- Packets Per Second CalculatorAlso in TCP & Transport
- TCP Window Size CalculatorAlso in TCP & Transport
- Queue Depth CalculatorAlso in TCP & Transport
