본문 바로가기
5장 컴퓨터 과학/Computer Network

[컴퓨터 네트워크] TCP의 혼잡제어

2021. 6. 16.

혼잡제어의 개념

혼잡제어란 네트워크로 유입되는 데이터 트래픽의 양이 네트워크 용량을 초과하지 않도록 유지하는 것이다. 데이터 총량이 네트워크가 처리할 수 있는 허용량을 초과하면 네트워크는 혼잡 상태가 된다.

네트워크 용량과 혼잡 영역

그림에서 가로축은 사용자 트래픽의 양을 세로축은 네트워크 지연시간을 나타낸다. 사용자 트래픽 양이 네트워크 용량보다 충분히 적으면 지연 시간이 크지 않지만 네트워크 용량에 접근해가면 지연 시간이 급증한다는 것을 알 수 있다. 이와 같은 혼잡 상태는 네트워크 성능을 현저히 떨어뜨리고 결국 네트워크 기능을 마비시킨다. 따라서 네트워크 혼잡 상태를 방지하려면 혼잡제어 기능이 필요하다.

TCP 혼잡제어의 원리

일반적으로 TCP는 느린 출발 알고리즘과 혼잡회피 알고리즘을 기반으로 혼잡제어를 수행한다. 다시 말해 느린 출발 알고리즘 단계부터 시작해 혼잡회피 알고리즘, 혼잡감지 알고리즘 단계로 구분하면서 혼잡제어가 수행된다.

  • 느린 출발 알고리즘

느린 출발(Slow Start) 알고리즘은 혼잡제어를 위한 윈도우의 큭를 한계치에 도달할 때까지 지수적으로(1, 2, 4, 8, ...) 증가시키는 방법을 취한다.

  • 혼잡회피 알고리즘

혼잡회피 알고리즘은 혼잡 윈도우 크기를 혼잡 상태가 감지될 때까지 1씩(1, 2, 3, 4, ...) 증가시키는 방법이다. 느린 출발 알고리즘과는 달리 비교적 큰 값에서 시작하지만 일정하게 1씩 증가한다. 이러한 알고리즘은 혼잡감지 단계에서 상호 연계하여 동작되도록 한다.

  • 혼잡감지 알고리즘

TCP에서 혼잡제어는 느린 출발 알고리즘과 혼잡회피 알고리즘이 서로 연동해 수행된다. 타임아웃이 발생하거나 ACK 세그먼트가 세 번 수신되면 혼잡이 감지된 것으로 간주한다. 즉 혼잡 상태라고 판단하는 것이다. 타임아웃이 발생해 혼잡 상태라고 판단되면 느린 출발 단계로 다시 돌아가 느린 출발 알고리즘이 수행되며, ACK가 세 번 수신되어 혼잡 상태로 판단되면 혼잡회피 단계로 돌아가 혼잡회피 알고리즘이 수행된다.

반응형

댓글