A congestion window is the sender's exact in-flight cap in this toy model.

highlighted = computed this step

The sender has a window

A congestion window is a sender-side limit. In this toy, cwnd counts how many MSS-sized segments may be in flight before ACKs return.

in flightcwnd\text{in flight}\le\text{cwnd}
Window limits flightToy congestion window rows recomputed from exact integer rules.Window limits flightcwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

Start with one segment

The first row starts at cwnd 1. That means only 1 MSS-sized segment is allowed in flight.

cwnd=1\text{cwnd}=1
Window limits flightToy congestion window rows recomputed from exact integer rules.Window limits flightcwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

Rows are RTT steps

Each row is one round trip in the simplified model. The next row uses the result from the row before it.

next row uses previous result\text{next row uses previous result}
Window limits flightToy congestion window rows recomputed from exact integer rules.Window limits flightcwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

Summary

The congestion window is the exact in-flight cap in this toy sequence. The visual is recomputed from pinned integer rules before it is rendered.

start=1\text{start}=1
Window limits flightToy congestion window rows recomputed from exact integer rules.Window limits flightcwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9