Slow start is a state in the TCP congestion control algorithm that rapidly detects a connection’s maximum bandwidth. Slow start relies on several variables, events, and network transmissions to make decisions regarding state change and network conditions.
Slow start uses a congestion window variable (denoted cwnd
) to assess how quickly TCP can send data through the network without experiencing unnecessary timeouts of loss events. The cwnd
is initially set to the maximum segment size (MSS) which by TCP specification in RFC879 defaults to 536 octets (IP MSS – 40 octets.)
During slow start, TCP rapidly increases the cwnd
size by detecting timeout events and duplicate ACKs. Simultaneously, Slow Start is adjusting another variable named ssthresh
. When the cwnd
amounts to the ssthresh
value, slow start then transitions to TCP’s congestion avoidance state.