데이터의 양이 수신 측에서 처리할 수 있는 양을 초과하면
송신 측에서는 수신 측에서 처리하지 못한 데이터를 손실 데이터로 간주하고
계속 재전송하게 되므로 네트워크가 더욱더 혼잡하게 된다.
이러한 혼잡 상태를 제어하는 것을 혼잡 제어라고 한다.
송신 측이 전송 rate를 패킷 손실이 일어날때까지 증가시키는 접근법이다.
AIMD는 window size를 1MSS씩 밖에 증가시키지 않기 때문에 네트워크의 모든 대역을 활용하여 빠른 속도로 통신하기까지 시간이 오래 걸린다는 것이 단점이다.
송신측이 윈도우 사이즈를 1부터 패킷 손실이 일어날때까지 지수단위로 증가시킨다.
처음에는 window size가 1이라 속도가 느리나 지수승으로 window size가 커지므로 속도도 빠르게 증가한다.
TCP Tahoe는 처음에는 Slow Start를 사용하다가 임계점(Threshold)에 도달하면 AIMD 방식을 사용한다.
1) 처음 윈도우 사이즈는 1MSS다.
2) 임계점까지는 Slow Start를 사용한다.
3) 임계점부터는 AIMD 방식을 쓴다(윈도우 사이즈1씩 증가)
4) 3 duplicate ACKs 혹은 timeout을 만나면 임계점을 window size의 절반으로 줄이고 window size를 1로 줄인다.
이것 역시 속도가 느려진다느 단점이 있다.
1) 처음 윈도우 사이즈는 1MSS다.
2) 임계점까지는 Slow Start
3) 그 이후로는 AIMD
4) 3 duplicate ACKs를 만나면 window size를 절반으로 줄이고 임계점을 그 값으로 설정한다.
timeout을 만나면 window size를 1로 줄인다. 임계점은 변하지 않는다.
참고자료
[네트워크] TCP 혼잡제어(congestion control), AIMD, Slow Start , TCP Reno, Tahoe