728x90

TCP Tahoe와 TCP Reno

[Slow-Start / Congestion Avoidance / Fast Recovery / Fast Retransmit ]

 

위의 그래프를 통해 알 수 있듯 TCP Tahoe와 TCP Reno는 ssthresh(slow start threshold)값까지 지수적 증가(Slow-Start)를 하게 되고 ssthresh를 넘어서면 선형적 증가(Additive Increase)를 하는 것까지는 동일하다. TCP Tahoe와 TCP Reno의 차이점은 N개의 중복 ACK가 발생할 경우 나타난다. TCP Tahoe의 경우 N개의 중복 ACK가 발생하게 되면 바로 Slow-Start를 시작한다. 반면 TCP Reno의 경우 N개의 중복 ACK가 발생하면 ssthresh값을 Congestion Window(cwnd) 사이즈의 반으로 줄여 빠른 복구(Fast Recovery) 모드에서 혼잡제어(Congestion Avoidance)를 수행하여 바로 선형적 증가(AI)를 하게 되며, TCP Timeout에 이르러 Slow-Start를 시작한다.

 

* Slow-Start(느린 시작) : ACKs가 정상적으로 도착했을 때 작은 Window size로부터 시작하여, 개별 segment가 acknowledged(ACK) 되었을 때마다 두 배로 증가한다. 이때 지속적으로 체크되는 Congestion Window(송신자-cwnd)라는 변수를 움직인다.

 

* Congestion Avoidance(혼잡 회피) : Slow-Start의 지수적 증가가 어떤 변수에 도달하게 되면 네트워크 congestion이 곧 일어나게 됨을 간주하고, 이를 회피하기 위해 cwnd 변수가 선형적(linear)으로 증가하도록 한다. 즉 Queue에 패킷이 가득 차 있을 때 패킷이 계속해서 들어 올 경우 처리하는 기법으로 TCP 성능을 향상시킨다.

 

* Fast Recovery(빠른 복구) : Congestion이 발생하였을 때 Congestion Window를 현재의 반으로 줄이고 additive increase(가산 증가)를 하는 것으로 Bandwidth-Delay product(현재 설정된 연결을 통해서 전송되고 있는 데이터) 값이 큰 경우 효율적이다.

 

* Fast Retransmit(빠른 재전송) : 타임아웃 주기(RTT)가 비교적 길면 손실 패킷에 대한 재전송  하기 전 지연 시간이 증가하게 된다. 그래서 송신자는 세그먼트들을 연속해서 보내므로 많은 중복 ACK가 여러 번 존재할 수 있도록 하여, 중복 ACK에 의해 패킷 손실을 발견하면 타임아웃이 발생하기 전에 세그먼트를 재전송 하는 것이다.


728x90

'Network' 카테고리의 다른 글

MAC, IP ADDRESS  (0) 2014.11.13
3 way handshaking  (0) 2014.11.13
IGP 프로토콜  (0) 2014.10.19
STUN 프로토콜  (0) 2014.10.19
IPV4 헤더 TTL 필드  (0) 2014.10.17

+ Recent posts