Below the threshold, the toy window doubles at each round trip.

highlighted = computed this step

Slow start grows quickly

When cwnd is below the threshold, this toy uses the slow-start rule: double the window for the next RTT.

below threshold⇒double\text{below threshold}\Rightarrow\text{double}
Slow start doublesToy congestion window rows recomputed from exact integer rules.Slow start doublescwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

First doubling

RTT 1 starts at cwnd 1 and doubles to 2.

1⋅2=21\cdot2=2
Slow start doublesToy congestion window rows recomputed from exact integer rules.Slow start doublescwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

The doubling continues

The next slow-start rows carry that same exact rule: 2 becomes 4, then 4 becomes 8.

2→4→82\to4\to8
Slow start doublesToy congestion window rows recomputed from exact integer rules.Slow start doublescwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9

Summary

Slow start is visible as the steep left side of the line: 1, 2, 4, 8.

1,2,4,81,2,4,8
Slow start doublesToy congestion window rows recomputed from exact integer rules.Slow start doublescwnd in MSSlossthreshold12345678910RTTRTTcwndssthreshphaseeventnext118slow startdouble2228slow startdouble4348slow startdouble8488avoidanceadd one9598avoidanceadd one106108losshalve5755avoidanceadd one6865avoidanceadd one7975avoidanceadd one81085avoidanceadd one9