Slow Start

ACK가 돌아올 때마다 cwnd를 열어 경로 용량을 탐색한다

Slow Start는 별도 타이머가 아니라 ACK clock을 따라 움직인다. 새 데이터를 누적 확인하는 ACK가 돌아오면 cwnd가 증가하고, flight size가 `min(rwnd, cwnd)` 안에 있을 때만 추가 데이터를 보낼 수 있다.

1. sender가 cwnd만큼 보냄
Sendercwnd 여유 확인
Networkflight size 증가
2. receiver가 누적 ACK 반환
Receiver새 데이터 확인
ACKsender로 돌아감
3. cwnd 증가 이상적인 설명에서는 새 ACK마다 증가해 RTT마다 대략 두 배처럼 보인다.
4. ssthresh 또는 혼잡 신호 기준에 도달하거나 손실/ECN 같은 신호가 있으면 Slow Start를 멈춘다.
예시: IW=10, ssthresh=40
RTT 0
10 SMSS
초기 cwnd. 현대 구현은 환경과 설정에 따라 달라질 수 있다.
ACK clock 이후
20 SMSS
새 데이터를 확인하는 ACK들이 돌아오며 더 많은 전송 슬롯이 열린다.
ssthresh 도달
40 SMSS
여기서부터는 Slow Start가 아니라 Congestion Avoidance로 전환한다.
이후 phase
CA
Reno 계열 설명에서는 증가가 더 완만한 additive increase처럼 보인다.
즉시 보낼 수 있는 양은 대략 min(rwnd, cwnd) - flight size로 제한된다.