Track how the congestion window doubles each round trip during slow start and when it reaches ssthresh.
Slow start acknowledges one window and sends two, so the congestion window doubles every round trip — exponential growth in time, measured in RTTs rather than seconds. Once cwnd reaches ssthresh the stack switches to congestion avoidance and adds roughly one segment per RTT instead. Short HTTP responses never leave slow start, so the initial window and the RTT — not the link speed — decide how fast a page loads over a long path.
TCP Slow Start
cwnd = initial × 2^rounds, and rounds to ssthresh = ceil(log2(ssthresh ÷ initial)).
cwnd = initial × 2^rounds, and rounds to ssthresh = ceil(log2(ssthresh ÷ initial)). Slow start acknowledges one window and sends two, so the congestion window doubles every round trip — exponential growth in time, measured in RTTs rather than seconds. Once cwnd reaches ssthresh the stack switches to congestion avoidance and adds roughly one segment per RTT instead.
Short HTTP responses never leave slow start, so the initial window and the RTT — not the link speed — decide how fast a page loads over a long path.
This calculator takes 5 inputs: Initial congestion window, Maximum segment size, Round-trip time, Round trips elapsed, Slow start threshold. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.