Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

혼잡 회피 메커니즘 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:22

혼잡 회피 메커니즘

분류

네트워크 및 통신

목적

네트워크 혼잡 상태를 감지하고 제어하여 성능 저하를 방지

주요 적용 계층

전송 계층 (TCP 등)

혼잡 상태

네트워크 자원(대역폭, 버퍼) 수요가 공급을 초과하는 상태

주요 결과

패킷 손실, 지연 증가, 처리량 감소

기술 상세

혼잡 감지 방법

타임아웃, 중복 ACK, ECN (Explicit Congestion Notification)

혼잡 제어 알고리즘

슬로우 스타트, 혼잡 회피, 빠른 재전송, 빠른 회복

혼잡 창 (cwnd)

송신자가 네트워크 상태를 고려해 조정하는 데이터 전송량

슬로우 스타트 임계값 (ssthresh)

슬로우 스타트 단계에서 혼잡 회피 단계로 전환되는 기준값

AIMD (Additive Increase Multiplicative Decrease)

혼잡 회피 단계의 기본 동작 방식

TCP Tahoe

초기 TCP 혼잡 제어 구현체

TCP Reno

빠른 회복 알고리즘을 추가한 개선판

TCP NewReno

부분적 ACK 상황을 더 잘 처리하는 개선판

TCP CUBIC

고대역폭·고지연 네트워크에 최적화된 현대 알고리즘

AQM (Active Queue Management)

라우터/스위치에서의 예방적 혼잡 제어 (예: RED)

BDP (Bandwidth-Delay Product)

혼잡 창 크기 설정의 이론적 기준

1. 개요

혼잡 회피 메커니즘은 패킷 교환 네트워크에서 네트워크 혼잡 상태를 감지하고, 송신 측의 데이터 전송 속도를 조절하여 혼잡을 완화하거나 예방하는 기술들의 집합을 가리킨다. 네트워크 혼잡은 라우터나 스위치의 버퍼가 포화 상태가 되어 패킷 손실, 긴 지연, 처리량 저하 등을 초래하는 현상이다. 이 메커니즘은 인터넷의 핵심 프로토콜인 TCP에서 가장 잘 구현되어 있으며, 네트워크의 안정성과 효율성을 유지하는 데 필수적인 역할을 한다.

혼잡 회피의 기본 원리는 피드백 루프를 통해 작동한다. 송신자는 네트워크 상태에 대한 간접적인 신호(예: 패킷 손실 또는 RTT 증가)를 감지한다. 이 신호를 혼잡 발생의 징후로 해석하여, 사전에 정의된 알고리즘에 따라 자신의 전송 속도를 낮춘다. 속도를 낮춤으로써 네트워크 내의 큐에 쌓인 패킷이 서서히 소비되어 혼잡이 해소되면, 송신자는 다시 점진적으로 전송 속도를 높인다. 이 과정을 반복하여 네트워크를 최대한 포화 상태에 가깝게 유지하면서도 붕괴되지 않도록 조정한다.

초기 인터넷에서는 패킷 손실을 거의 유일한 혼잡 신호로 사용했으나, 현대 네트워크에서는 더 정교한 접근법이 등장했다. AQM은 라우터가 능동적으로 패킷을 조기에 폐기하거나 표시하여 혼잡을 사전에 알리는 방식을 말한다. 또한, QUIC과 같은 새로운 전송 프로토콜이나 데이터센터 네트워크는 각 환경에 특화된 혼잡 제어 알고리즘을 사용한다. 효과적인 혼잡 회피는 높은 처리량, 낮은 지연 시간, 그리고 여러 흐름 간의 공정성을 동시에 달성하는 것을 목표로 한다.

2. 혼잡 회피의 필요성

네트워크 혼잡은 라우터나 스위치와 같은 네트워크 장치의 버퍼가 포화 상태가 되어 데이터 패킷 손실이 발생하는 현상이다. 이러한 혼잡은 단순히 패킷 손실을 초래하는 것을 넘어, 전체 네트워크 성능을 급격히 저하시키는 악순환을 일으킨다.

혼잡이 발생하면 패킷 손실로 인해 송신 측은 재전송을 시도하게 되고, 이는 네트워크에 더 많은 트래픽을 부과하여 혼잡을 가중시킨다. 결과적으로 처리량은 급감하고 지연 시간과 지터는 증가한다. 특히 TCP와 같은 신뢰성 있는 프로토콜은 패킷 손실을 네트워크 혼잡의 주요 징후로 간주하여 전송 속도를 크게 낮추기 때문에, 이러한 성능 저하는 더욱 두드러진다. 혼잡 회피 메커니즘이 없다면 네트워크는 빈번한 혼잡 붕괴 상태에 빠져 실질적인 통신이 불가능해질 수 있다.

따라서 혼잡 회피는 네트워크 자원의 효율적이고 공정한 사용을 보장하기 위해 필수적이다. 이는 개별 연결의 성능을 최적화하는 것을 넘어, 네트워크 전체의 안정성과 확장성을 유지하는 핵심 기반이 된다. 혼잡 회피 메커니즘은 송신자가 네트워크의 수용 능력을 탐색하고 그 한계 내에서 데이터를 전송하도록 유도함으로써, 모든 사용자에게 예측 가능한 서비스 품질을 제공하는 데 기여한다.

3. TCP 혼잡 제어 알고리즘

TCP 혼잡 제어 알고리즘은 혼잡 회피 메커니즘의 핵심을 이루며, 슬로우 스타트, 혼잡 회피, 빠른 재전송, 빠른 회복이라는 네 가지 주요 단계로 구성된다. 이 알고리즘들은 패킷 손실을 네트워크 혼잡의 주요 신호로 간주하고, 윈도우 크기를 동적으로 조절하여 네트워크의 용량을 초과하지 않도록 한다. 초기 TCP 타호와 TCP 리노를 거쳐 현재 표준으로 자리 잡은 TCP 뉴리노가 대표적이다.

슬로우 스타트 단계에서는 연결 초기에 혼잡 윈도우 크기를 1 또는 2개의 세그먼트로 낮게 시작하여 네트워크에 부담을 주지 않는다. 이후 매 ACK 수신 시 혼잡 윈도우를 지수적으로 증가시켜 사용 가능한 대역폭을 빠르게 탐색한다. 이 증가는 사전에 설정된 슬로우 스타트 임계값에 도달하거나 패킷 손실이 감지될 때까지 계속된다.

혼잡 회피 단계는 슬로우 스타트 임계값에 도달하면 시작된다. 이 단계에서는 보수적으로 윈도우 크기를 선형적으로 증가시켜 네트워크의 포화 상태에 근접하지 않도록 한다. 일반적으로 매 RTT마다 혼잡 윈도우를 1 MSS만큼 증가시킨다. 만약 타임아웃에 의한 패킷 손실이 발생하면, 혼잡 윈도우 크기를 1로 줄이고 슬로우 스타트 임계값을 손실 발생 시 윈도우 크기의 절반으로 설정한 후 슬로우 스타트를 다시 시작한다.

빠른 재전송과 빠른 회복은 타임아웃을 기다리지 않고 더 신속하게 혼잡을 대처하기 위한 메커니즘이다. 수신 측에서 순서가 바뀐 세그먼트를 받으면 즉시 누락된 시퀀스 번호에 대한 중복 ACK를 전송한다. 송신 측이 동일한 시퀀스 번호에 대한 중복 ACK를 3개 연속으로 받으면(빠른 재전송), 해당 패킷의 손실을 추정하고 타임아웃을 기다리지 않고 즉시 재전송한다. 이후 빠른 회복 단계로 들어가 혼잡 윈도우를 절반으로 줄이고, 선형 증가 모드로 전환하여 네트워크 상태를 안정화시킨다. 이는 불필요한 긴 타임아웃 대기 시간을 줄여 전체 처리량을 향상시킨다.

알고리즘 단계

주요 동작

트리거 조건

윈도우 크기 조정

슬로우 스타트

대역폭 빠른 탐색

연결 시작 또는 타임아웃 후

매 ACK당 지수 증가 (cwnd += MSS)

혼잡 회피

안정적 운영 유지

ssthresh 도달 시

매 RTT당 선형 증가 (cwnd += MSS/cwnd)

빠른 재전송

손실 패킷 즉시 재전송

동일 시퀀스 번호 중복 ACK 3회 수신

-

빠른 회복

혼잡 후 빠른 복구

빠른 재전송 실행 후

cwnd = ssthresh(=손실 시 cwnd/2) + 3*MSS, 이후 선형 증가

3.1. 슬로우 스타트

슬로우 스타트는 TCP 혼잡 제어 알고리즘의 초기 단계로, 네트워크의 이용 가능한 대역폭을 탐색하기 위해 혼잡 윈도우 크기를 지수 함수적으로 증가시키는 방식이다. 이 메커니즘은 연결이 시작될 때나 혼잡이 감지된 후에 활성화된다. 송신자는 초기에 작은 혼잡 윈도우(일반적으로 1 또는 2개의 MSS)로 데이터 전송을 시작하고, 각 ACK를 수신할 때마다 윈도우 크기를 1 MSS씩 증가시킨다. 이는 매 RTT마다 혼잡 윈도우 크기가 두 배로 증가하는 효과를 낳는다.

슬로우 스타트의 주요 목적은 네트워크에 갑작스러운 부하를 주지 않으면서 가능한 빠르게 최적의 전송 속도에 도달하는 것이다. 이 과정은 세 가지 조건 중 하나가 발생할 때 종료된다. 첫째, 혼잡 윈도우가 미리 설정된 슬로우 스타트 임계값에 도달하면 알고리즘은 혼잡 회피 단계로 전환된다. 둘째, 패킷 손실이 감지되면, 이는 네트워크 혼잡의 신호로 간주되어 슬로우 스타트를 중단하고 손실 복구 절차를 시작한다. 셋째, 수신자 광고 윈도우에 의해 제한을 받는 경우이다.

슬로우 스타트의 동작은 다음 표로 요약할 수 있다.

단계

조건

혼잡 윈도우(cwnd) 변화

시작

연결 시작 또는 타임아웃 후

cwnd = 1 MSS (또는 2, 4 등)

증가

매 ACK 수신 시

cwnd += 1 MSS

종료 조건 1

cwnd >= ssthresh (슬로우 스타트 임계값)

혼잡 회피 단계로 전환

종료 조건 2

패킷 손실 감지 (타임아웃 또는 3-듀플리케이트 ACK)

ssthresh 갱신 및 cwnd 리셋 후 재시작

종료 조건 3

cwnd >= 수신자 광고 윈도우(rwnd)

rwnd에 의해 전송률 제한

이 알고리즘은 네트워크 용량을 빠르게 탐색할 수 있지만, 높은 대역폭과 긴 지연을 가진 네트워크에서는 윈도우가 충분히 커지기까지 많은 RTT가 소요될 수 있다는 단점이 있다. 이러한 문제를 완화하기 위해 더 큰 초기 윈도우를 사용하거나 혼잡 윈도우를 한 번에 여러 세그먼트만큼 증가시키는 확장 메커니즘도 제안되었다.

3.2. 혼잡 회피

혼잡 회피 단계는 슬로우 스타트 단계를 통해 혼잡 윈도우가 혼잡 임계값에 도달한 후 시작됩니다. 이 단계에서는 네트워크가 수용 가능한 한계에 근접했다고 판단하여, 윈도우 크기를 더욱 신중하게 증가시킵니다.

슬로우 스타트 단계에서 윈도우 크기가 지수적으로 증가하는 것과 달리, 혼잡 회피 단계에서는 가법적 증가 방식을 사용합니다. 일반적으로 매 왕복 시간마다, 또는 매 승인된 세그먼트마다 혼잡 윈도우 크기를 1 MSS(Maximum Segment Size)만큼 선형적으로 증가시킵니다. 이는 네트워크에 새로운 패킷을 점진적으로 주입하여 혼잡을 유발하지 않으면서도 가능한 대역폭을 활용하는 데 목적이 있습니다.

혼잡이 감지되면, 즉 패킷 손실이 발생하면 혼잡 임계값이 현재 혼잡 윈도우 크기의 절반으로 설정됩니다. 그 후, 혼잡 윈도우 크기는 1 MSS로 줄어들거나(전통적인 TCP 타호 방식) 새로운 혼잡 임계값으로 설정되어(TCP 리노 방식) 슬로우 스타트 단계부터 다시 시작합니다. 이 조치는 네트워크의 혼잡을 완화시키기 위한 즉각적인 반응입니다.

단계

윈도우 증가 방식

목표

슬로우 스타트

지수적 증가 (2배)

가능한 빨리 사용 가능 대역폭 탐색

혼잡 회피

선형적 증가 (가법적 증가)

혼잡을 피하면서 효율적으로 대역폭 활용

이 메커니즘은 TCP가 네트워크의 공정한 대역폭 공유를 유도하는 핵심 요소입니다. 여러 TCP 연결이 동일한 병목 구간을 공유할 경우, 각 연결은 주기적으로 패킷 손실을 경험하고 그에 따라 전송 속도를 줄임으로써, 결과적으로 대역폭을 상대적으로 공정하게 나누어 갖는 경향이 생깁니다.

3.3. 빠른 재전송

빠른 재전송은 TCP 혼잡 제어 알고리즘의 핵심 구성 요소 중 하나로, 패킷 손실을 감지하고 복구하는 속도를 높여 전체적인 처리량을 개선하는 메커니즘이다. 이 메커니즘은 슬로우 스타트나 혼잡 회피 단계에서의 혼잡 창 크기 조절과는 별도로, 손실 감지에 대한 논리를 담당한다.

기본적인 TCP의 재전송은 재전송 타임아웃에 의존한다. 송신 측은 패킷을 보낸 후 타이머를 설정하고, ACK를 일정 시간 내에 받지 못하면 해당 패킷이 손실되었다고 판단하여 재전송한다. 그러나 RTO 값은 일반적으로 왕복 지연 시간의 평균값보다 훨씬 크게 설정되므로, 손실 발생부터 재전송까지의 지연이 크다. 빠른 재전송은 중복된 ACK를 활용하여 RTO 만료를 기다리지 않고 조기에 손실을 추정하고 재전송을 유발한다.

구체적인 동작은 다음과 같다. 송신 측이 순서 번호가 높은 패킷을 먼저 보내면, 수신 측은 기대하는 순서의 패킷이 도착하지 않았더라도 도착한 패킷에 대해 중복 ACK를 보낸다. 송신 측이 동일한 순서 번호에 대한 중복 ACK를 3개 연속으로 수신하면[1], 해당 순서의 패킷이 손실되었다고 간주하고 즉시 해당 패킷을 재전송한다. 이후 빠른 회복 알고리즘이 동작하여 혼잡 창을 조정하고 네트워크의 혼잡 상태를 이어가게 된다.

이 메커니즘의 주요 이점은 타임아웃을 기다리지 않아도 되어 지연을 줄일 수 있다는 점이다. 특히 지연이 크거나 변동성이 있는 네트워크에서 RTO 값이 부정확할 수 있어 빠른 재전송의 효용이 더 크다. 그러나 연속적인 패킷 손실이 발생하거나 수신 측의 지연 ACK 정책으로 인해 중복 ACK가 충분히 생성되지 않는 경우에는 빠른 재전송이 동작하지 않을 수 있으며, 이때는 기존의 재전송 타임아웃에 의존하게 된다.

3.4. 빠른 회복

빠른 회복은 TCP 혼잡 제어 알고리즘의 한 단계로, 빠른 재전송 단계 이후에 활성화된다. 이 메커니즘의 주요 목적은 세그먼트 손실이 네트워크의 심각한 혼잡을 의미하지 않을 가능성이 있다고 가정하고, 불필요하게 슬로우 스타트 단계로 되돌아가는 것을 피하여 처리량을 보다 빠르게 회복하는 데 있다.

빠른 회복이 시작되면, 혼잡 창 크기(cwnd)는 손실이 발생한 시점의 값의 절반으로 설정되며, 혼잡 창 임계값(ssthresh)도 이 값으로 갱신된다. 이후 중복 ACK를 수신할 때마다 cwnd를 1 MSS씩 증가시킨다. 이는 수신 측이 새로운 데이터를 성공적으로 수신했음을 의미하며, 따라서 네트워크에 추가적인 데이터를 보낼 여유가 있다고 판단하기 때문이다. 손실된 세그먼트에 대한 재전송이 확인되고 새로운 비중복 ACK가 도착하면, cwnd를 ssthresh 값으로 설정하고 정상적인 혼잡 회피 단계로 진입한다.

다음 표는 빠른 재전송과 빠른 회복 과정에서 주요 변수의 변화를 요약한다.

단계

혼잡 창(cwnd)

임계값(ssthresh)

동작

손실 감지 (3 Dup ACK)

변함 없음

cwnd / 2로 설정

빠른 재전송 및 빠른 회복 시작

빠른 회복 중 (Dup ACK 수신)

1 MSS씩 선형 증가

변함 없음

네트워크 여유 확인

손실 패킷 재전송 확인

ssthresh 값으로 설정

변함 없음

혼잡 회피 단계로 복귀

이 방식은 전통적인 타호 알고리즘이 세 번의 중복 ACK 이후에 cwnd를 1 MSS로 줄이고 슬로우 스타트부터 다시 시작하는 것에 비해 훨씬 더 공격적이다. 빠른 회복은 단일 패킷 손실이 전체 혼잡의 붕괴를 의미하지 않을 때 처리량 저하를 크게 완화한다. 이는 현대 네트워크에서 흔히 발생하는 임의적 손실이나 순간적인 혼잡에 대해 TCP의 성능을 크게 향상시킨다.

4. AQM (능동적 큐 관리)

AQM(능동적 큐 관리)은 네트워크 장비(주로 라우터나 스위치)의 대기열이 가득 차기 전에 미리 패킷을 폐기하거나 표시하여 송신자에게 혼잡을 알리는 메커니즘이다. 전통적인 Drop Tail 큐 관리 방식은 버퍼가 완전히 찰 때까지 패킷을 저장하다가 넘치면 새로 도착하는 패킷을 무조건 폐기한다. 이 방식은 버퍼블로트를 유발하고, 큐잉 지연을 불필요하게 증가시키며, TCP의 혼잡 제어가 제때 반응하지 못하게 만드는 문제가 있다. AQM은 이러한 문제를 사전에 완화하기 위해 설계되었다.

AQM의 핵심 목표는 평균 큐 길이를 짧게 유지하여 지연을 낮추고, 패킷 폐기를 통해 여러 TCP 연결이 공정하게 대역폭을 공유하도록 유도하는 것이다. 대표적인 알고리즘으로는 RED와 CoDel이 있다.

알고리즘

핵심 메커니즘

주요 목표

RED (Random Early Detection)

평균 큐 길이를 계산하여 특정 임계값을 초과하면 도착 패킷을 확률적으로 폐기하거나 ECN[2]으로 표시한다.

큐 길이 안정화, 전역 동기화 방지

CoDel (Controlled Delay)

패킷의 체류 시간(sojourn time)을 직접 측정하여 허용 가능 지연을 초과하는 기간이 지속되면 패킷을 폐기한다.

큐잉 지연 관리, 버퍼블로트 제거

RED는 두 개의 큐 길이 임계값(최소 임계값, 최대 임계값)을 사용한다. 평균 큐 길이가 최소 임계값 아래면 패킷을 모두 통과시키고, 최대 임계값 위면 모두 폐기한다. 두 임계값 사이에서는 계산된 확률에 따라 패킷을 폐기하거나 ECN을 표시한다. 이는 여러 TCP 흐름의 감속 시점을 무작위로 분산시켜 전역 동기화를 방지한다.

반면, CoDel은 큐 길이가 아닌 패킷 체류 시간에 주목한다. 이는 다양한 대역폭과 RTT를 가진 환경에서도 일관되게 지연을 제어할 수 있게 해준다. CoDel은 지연이 목표치를 초과하는 상태가 일정 시간 이상 지속되면 패킷을 폐기하여 송신자에게 혼잡 신호를 보낸다. 이 방식은 버퍼가 크더라도 불필요한 패킷 축적을 방지하여 낮은 지연을 유지하는 데 효과적이다.

4.1. RED (Random Early Detection)

RED는 AQM 기법 중 하나로, 네트워크 혼잡이 완전히 발생하기 전에 미리 패킷을 폐기하여 송신자에게 혼잡 신호를 조기에 전달하는 것을 목표로 한다. 전통적인 테일 드롭 방식은 큐가 가득 찰 때까지 패킷을 버퍼링하다가 오버플로우가 발생하면 새로 도착하는 패킷을 모두 폐기하는 방식이다. 이 방식은 큐잉 지연을 증가시키고, 여러 TCP 연결이 동시에 패킷을 잃어 급격한 혼잡 창 감소를 유발하는 글로벌 싱크로나이제이션 현상을 일으킬 수 있다.

RED는 이러한 문제를 완화하기 위해 평균 큐 길이를 계산하고, 두 개의 사전 설정된 임계값(최소 임계값, 최대 임계값)을 기준으로 확률적으로 패킷을 표시(드롭 또는 ECN 표시)한다. 평균 큐 길이가 최소 임계값 미만이면 모든 패킷을 통과시키고, 최대 임계값을 초과하면 모든 패킷을 표시한다. 두 임계값 사이의 영역에서는 평균 큐 길이에 비례하는 확률로 패킷을 표시한다. 이는 혼잡을 사전에 방지하고, 큐 길이를 안정적으로 유지하며, 버퍼 블로트를 감소시키는 효과가 있다.

RED의 핵심 매개변수와 동작은 다음 표와 같다.

매개변수/동작

설명

평균 큐 길이 계산

새로 도착하는 패킷의 큐 길이를 이용해 지수 가중 이동 평균을 계산하여 갑작스러운 변화를 완화한다.

최소 임계값 (min_th)

평균 큐 길이가 이 값보다 낮으면 패킷 드롭 확률은 0이다.

최대 임계값 (max_th)

평균 큐 길이가 이 값을 초과하면 모든 패킷이 표시된다.

최대 표시 확률 (max_p)

평균 큐 길이가 두 임계값 사이일 때 적용될 수 있는 최대 드롭/표시 확률이다.

RED는 혼잡을 조기에 알리고 큐 지연을 관리하는 데 효과적이지만, 적절한 매개변수 설정이 어렵고 다양한 트래픽 조건에서 성능이 민감하게 변할 수 있다는 비판도 존재한다. 이후 이러한 한계를 보완한 Adaptive RED나 WRED 같은 변형 알고리즘이 제안되었다.

4.2. CoDel (Controlled Delay)

CoDel은 네트워크 혼잡을 관리하기 위한 능동적 큐 관리 알고리즘이다. 버퍼블로트 현상을 해결하는 데 중점을 두고 설계되었으며, 지연 시간을 직접 측정하고 제어하는 방식을 사용한다. 기존의 RED (Random Early Detection)가 큐 길이를 기준으로 패킷을 조기에 폐기하는 반면, CoDel은 패킷이 큐에서 대기하는 시간(소위 *큐잉 지연*)을 주요 메트릭으로 삼는다. 이는 지나치게 큰 버퍼로 인해 발생하는 과도한 지연을 효과적으로 방지한다.

CoDel의 핵심 동작 원리는 두 가지 임계값, 즉 *간격(interval)*과 *목표(target)*를 기반으로 한다. 간격은 일반적으로 100ms로 설정되며, 이 시간 동안 최소 큐잉 지연이 목표 값(예: 5ms)을 초과하면 혼잡 상태로 판단한다. 알고리즘은 이 상태가 지속될 경우, 패킷을 주기적으로 폐기하여 송신 측의 전송 속도를 조절하도록 유도한다. 이 방식은 버퍼가 가득 차기 전에 지연을 근본적으로 관리하므로, 처리량을 유지하면서도 지연 시간과 지터를 크게 줄일 수 있다.

CoDel의 주요 장점은 매개변수 설정이 간단하고 네트워크 조건 변화에 강건하다는 점이다. RED는 평균 큐 길이에 대한 최소/최대 임계값 등 여러 변수를 조정해야 하지만, CoDel은 대부분의 환경에서 동일한 기본값(간격 100ms, 목표 5ms)을 사용해도 효과적으로 작동한다[3]. 이로 인해 라우터 및 스위치의 버퍼 관리 정책으로 널리 채택되고 있으며, 최근의 TCP 혼잡 제어 알고리즘과도 연동되어 종단 간 성능을 향상시킨다.

5. BDP (대역폭-지연 곱)과 버퍼링

BDP(Bandwidth-Delay Product)는 네트워크 링크의 데이터 전송 용량을 나타내는 지표이다. 이는 링크의 대역폭(bandwidth)과 왕복 지연 시간(Round-Trip Time, RTT)을 곱하여 계산된다. 단위는 비트(bit) 또는 바이트(byte)이다. BDP는 "파이프의 크기"로 비유되며, 송신자가 ACK를 받지 않고도 네트워크에 채울 수 있는 최대 데이터 양을 의미한다. 즉, 링크를 완전히 활용하기 위해 필요한 최소 송신 윈도우 크기와 수신 측 버퍼 크기의 기준이 된다.

BDP는 네트워크 버퍼의 적정 크기를 결정하는 데 중요한 역할을 한다. 이상적인 상태에서는 링크의 버퍼 크기가 BDP와 같거나 약간 더 커야 한다. 충분한 버퍼링은 높은 대역폭과 긴 지연 시간을 가진 링크에서 처리량을 최대화한다. 버퍼가 BDP보다 너무 작으면, 윈도우가 BDP에 도달하기 전에 버퍼가 가득 차서 패킷 손실이 발생하고 링크 활용도가 떨어진다. 반대로, 버퍼가 필요 이상으로 크면 버퍼블로트 현상이 발생한다. 이는 큐에 패킷이 과도하게 쌓여 지연 시간과 지터를 크게 증가시키는 문제이다.

따라서 현대 네트워크 설계에서는 BDP를 고려한 적정 버퍼링이 핵심 과제이다. 특히 고대역폭 장거리 링크에서는 BDP 값이 수 메가바이트에서 기가바이트에 이르기도 하여, 버퍼 관리가 더욱 복잡해진다. 이를 해결하기 위해 BDP를 동적으로 추정하여 TCP 혼잡 윈도우를 조절하는 알고리즘이나, AQM 기법을 통해 버퍼 큐의 길이를 사전에 관리하는 방식이 사용된다.

6. QUIC의 혼잡 제어

QUIC는 Google이 개발한 차세대 전송 계층 프로토콜로, TCP의 혼잡 제어 기본 원칙을 계승하면서도 설계상의 유연성으로 인해 더 빠른 진화와 실험을 가능하게 한다. QUIC는 TLS 암호화 핸드셰이크를 프로토콜 내부에 통합하여 연결 설정 지연을 줄이고, 패킷 손실 시 헤드 오브 라인 블로킹 문제를 완화한다. 이러한 특성은 혼잡 제어 메커니즘의 동작에 직접적인 영향을 미친다.

QUIC의 혼잡 제어는 TCP와 마찬가지로 슬로우 스타트, 혼잡 회피, 빠른 재전송 등의 단계를 포함하지만, 프로토콜이 사용자 공간에서 구현되기 때문에 알고리즘의 배포와 업데이트가 운영체제 커널의 변경 없이 이루어질 수 있다는 점이 근본적인 차이점이다. 이는 BBR이나 CUBIC과 같은 새로운 혼잡 제어 알고리즘을 빠르게 적용하고 테스트할 수 있는 기반을 제공한다[4]. 또한, 각 연결이 독립적인 연결 ID를 사용하기 때문에 네트워크 경로가 변경되어도(예: Wi-Fi에서 셀룰러로 전환) 혼잡 제어 상태를 유지할 수 있다.

QUIC 표준(RFC 9000 및 RFC 9002)은 특정 알고리즘을 강제하지 않지만, 표준화된 혼잡 제어 프레임워크와 신호(예: ACK 프레임, 패킷 손실 감지)를 제공한다. 이를 통해 다양한 공급업체와 구현체가 서로 호환되면서도 각자 최적의 혼잡 제어 로직을 채택할 수 있다. 현재 널리 사용되는 QUIC 구현체인 Google의 gQUIC와 IETF 표준 QUIC는 일반적으로 CUBIC 또는 NewReno 알고리즘을 기본값으로 사용하며, 점차 BBR과 같은 지연 기반 알고리즘의 적용이 확대되고 있다.

특징

TCP 혼잡 제어

QUIC 혼잡 제어

구현 위치

운영체제 커널

사용자 공간(애플리케이션)

알고리즘 업데이트

커널 업데이트 필요

애플리케이션 업데이트로 가능

멀티플렉싱

단일 스트림의 손실이 전체 연결에 영향(헤드 오브 라인 블로킹)

스트림 독립성으로 인해 손실 영향 최소화

연결 마이그레이션

지원 어려움(새로운 TCP 핸드셰이크 필요)

연결 ID를 통한 원활한 마이그레이션 지원

암호화

별도의 TLS 핸드셰이크 필요

기본적으로 암호화됨(핸드셰이크 지연 감소)

결과적으로, QUIC의 혼잡 제어는 TCP의 검증된 메커니즘을 기반으로 하되, 더 나은 적응성, 유연성, 그리고 현대 네트워크 환경(특히 불안정한 무선 환경)에 대한 강건성을 목표로 진화하고 있다.

7. 데이터센터 네트워크의 혼잡 제어

데이터센터 네트워크는 짧은 왕복 시간, 높은 대역폭, 그리고 인캐스트 트래픽과 같은 특수한 트래픽 패턴을 보인다. 이러한 환경은 전통적인 TCP 혼잡 제어 알고리즘이 비효율적으로 동작할 수 있는 조건을 만들며, 특히 버퍼 블로트 현상을 유발하기 쉽다. 따라서 데이터센터 내부 통신을 최적화하기 위한 전용 혼잡 제어 메커니즘이 개발되었다.

대표적인 프로토콜로는 DCTCP가 있다. DCTCP는 ECN을 적극적으로 활용하여 네트워크 혼잡을 초기에 감지하고, 혼잡 정도에 비례하여 윈도우 크기를 미세하게 조정한다. 이를 통해 큐의 지연 시간을 크게 줄이면서도 높은 처리량을 유지할 수 있다. 또한, TIMELY와 같은 알고리즘은 RTT의 변화를 직접 측정하여 혼잡을 판단하며, RDMA 환경에서의 효율적인 통신을 지원하기도 한다.

데이터센터 혼잡 제어의 주요 목표는 낮은 지연 시간과 높은 처리량을 동시에 보장하는 것이다. 다음 표는 전통적인 TCP와 데이터센터용 프로토콜의 주요 접근법을 비교한다.

프로토콜

혼잡 신호

주요 목표

적합 환경

TCP Reno/CUBIC

패킷 손실

공정성, 처리량

일반 인터넷

DCTCP

ECN 마킹

낮은 지연, 높은 처리량

데이터센터

TIMELY

RTT 변화율

낮은 지연, RDMA 최적화

데이터센터, 고속 네트워크

이러한 메커니즘들은 스파인-리프 구조를 가진 현대적 데이터센터 패브릭 내에서 마이크로 버스트 트래픽을 효과적으로 관리하고, 테일 레이턴시를 최소화하는 데 기여한다. 결과적으로 분산 애플리케이션과 스토리지 시스템의 전반적인 성능과 예측 가능성을 향상시킨다.

8. 성능 평가 지표

성능 평가 지표는 혼잡 제어 메커니즘의 효과를 정량적으로 측정하고 비교하는 데 사용되는 핵심 메트릭이다. 주요 지표로는 처리량, 지연 시간, 공정성이 있으며, 이들은 서로 트레이드오프 관계에 있는 경우가 많다. 네트워크의 상태와 애플리케이션의 요구사항에 따라 각 지표의 중요도는 달라진다.

처리량은 단위 시간당 성공적으로 전달된 데이터의 양을 의미한다. 최대 대역폭을 효율적으로 활용하여 높은 처리량을 달성하는 것이 혼잡 제어의 주요 목표 중 하나이다. 처리량은 종종 '굿풋'(goodput)으로 측정되는데, 이는 재전송된 패킷을 제외한 유효한 응용 계층 데이터의 전송률을 의미한다. 네트워크가 혼잡해지면 패킷 손실이 증가하고 처리량이 급격히 떨어질 수 있다.

지연 시간은 패킷이 송신자에서 수신자에 도달하기까지 걸리는 시간이다. 여기에는 전송 지연, 전파 지연, 처리 지연, 큐잉 지연이 포함된다. 혼잡이 발생하면 라우터의 버퍼에 패킷이 대기하게 되어 큐잉 지연이 증가하며, 이는 전체 지연 시간과 지연 시간의 변동([5])을 증가시킨다. 실시간 애플리케이션은 낮은 지연과 지터를 요구한다.

공정성은 여러 TCP 연결이나 데이터 흐름이 네트워크 자원을 공정하게 나누어 사용하는 정도를 나타낸다. 이상적인 공정성은 각 흐름이 동일한 처리량을 얻는 것이다. 공정성을 평가하는 지표로는 제인 공정성 지수가 널리 사용된다. 일부 혼잡 제어 알고리즘은 높은 처리량을 위해 공정성을 일부 희생하기도 한다.

지표

설명

주요 영향 요소

처리량

단위 시간당 전송 성공한 데이터량

대역폭, 패킷 손실률, 혼잡 윈도우 크기

지연 시간

패킷의 종단 간 전송 소요 시간

전파 거리, 라우터 큐 길이, 혼잡 정도

공정성

다중 흐름 간 자원 분배의 공평성

혼잡 제어 알고리즘, RTT(왕복 시간) 차이

이러한 지표들은 시뮬레이션, 테스트베드, 실제 네트워크에서의 측정을 통해 평가된다. 새로운 혼잡 제어 알고리즘을 설계할 때는 높은 처리량, 낮은 지연, 좋은 공정성을 모두 만족시키는 균형점을 찾는 것이 과제이다.

8.1. 처리량

처리량은 단위 시간당 네트워크 링크나 종단 시스템을 통해 성공적으로 전달된 데이터의 양을 의미한다. 일반적으로 초당 비트 수(bps)나 초당 패킷 수(pps)로 측정한다. 이는 네트워크나 특정 혼잡 제어 알고리즘의 효율성을 평가하는 가장 기본적인 지표 중 하나이다.

이상적인 처리량은 사용 가능한 물리적 대역폭에 근접하지만, 실제로는 패킷 손실, 재전송, 큐잉 지연, 그리고 혼잡으로 인해 항상 낮아진다. 효과적인 혼잡 회피 메커니즘의 주요 목표는 네트워크가 포화 상태에 도달하지 않도록 하면서도 가능한 최대 처리량을 유지하는 것이다. 예를 들어, TCP 혼잡 제어는 슬로우 스타트와 혼잡 회피 단계를 통해 대역폭-지연 곱을 탐색하고, 손실을 혼잡의 신호로 간주하여 전송 속도를 조정함으로써 장기적으로 안정적인 높은 처리량을 달성하려 한다.

처리량은 종종 지연 시간 및 공정성과 같은 다른 지표와 함께 고려된다. 과도하게 공격적인 전송은 단기적으로 높은 처리량을 얻을 수 있지만, 네트워크에 혼잡을 유발해 결국 패킷 손실과 재전송을 증가시켜 전체 처리량을 떨어뜨리고 지연을 증가시킬 수 있다. 반면, 지나치게 보수적인 접근 방식은 사용 가능한 대역폭을 제대로 활용하지 못해 처리량이 낮아지는 결과를 초래한다. 따라서 최적의 성능은 높은 처리량, 낮은 지연, 그리고 여러 흐름 간의 공정한 자원 분배 사이의 균형을 찾는 데 있다.

8.2. 지연 시간

지연 시간은 패킷이 송신자에서 수신자까지 전달되는 데 걸리는 총 시간을 의미한다. 이는 전파 지연, 전송 지연, 처리 지연, 그리고 큐잉 지연의 합으로 구성된다. 혼잡 회피 메커니즘은 네트워크 내 패킷의 대기 시간을 증가시키는 주요 원인인 큐잉 지연에 직접적인 영향을 미친다.

네트워크 혼잡이 발생하면 라우터의 버퍼에 패킷이 쌓이게 되고, 이로 인해 큐잉 지연이 증가한다. 전통적인 TCP 혼잡 제어 알고리즘은 패킷 손실을 혼잡의 주요 신호로 간주하여, 손실이 감지된 후 윈도우 크기를 급격히 줄인다. 이는 버퍼를 비우고 지연을 감소시키는 효과가 있지만, 처리량 또한 함께 떨어지는 단점이 있다. 반면, AQM 기법인 RED나 CoDel은 버퍼가 가득 차기 전에 미리 패킷을 표시하거나 폐기하여 큐 길이를 관리함으로써 평균 지연 시간과 지연 변동을 줄이는 것을 목표로 한다.

지연 시간은 특히 실시간 응용 프로그램에서 매우 중요한 성능 지표이다. QUIC 프로토콜은 단일 RTT 내에 연결 설정과 데이터 전송을 가능하게 하여 초기 지연을 줄이고, 더 세분화된 혼잡 제어를 통해 지연 증가를 완화하려고 시도한다. 데이터센터 환경에서는 매우 짧은 지연이 요구되며, DCTCP와 같은 알고리즘이 큐 지연을 명시적인 피드백으로 활용하여 낮은 지연을 유지한다.

지연 시간과 처리량은 일반적으로 트레이드오프 관계에 있다. 큰 버퍼는 처리량을 높일 수 있지만 지연을 증가시키고, 작은 버퍼는 지연을 줄이지만 링크 활용도를 떨어뜨릴 수 있다. 따라서 혼잡 제어의 목표는 높은 처리량과 낮은 지연, 그리고 공정성을 동시에 만족시키는 균형점을 찾는 것이다.

8.3. 공정성

공정성은 네트워크 혼잡 제어 메커니즘의 핵심 성능 평가 지표 중 하나이다. 이는 네트워크 자원(대역폭)을 여러 플로우가 얼마나 공평하게 나누어 사용하는지를 측정한다. 이상적인 공정한 상태는 모든 플로우가 동일한 양의 대역폭을 얻거나, 각 플로우의 필요에 따라 적절하게 할당받는 것이다. 그러나 TCP의 기본적인 애드리티브 인크리즈 멀티플리커티브 디크리즈 방식은 공정성에 있어 한계를 보인다. 예를 들어, RTT가 짧은 플로우는 RTT가 긴 플로우보다 더 빠르게 혼잡 윈도우를 증가시켜 더 많은 대역폭을 차지하는 경향이 있다[6].

다양한 혼잡 제어 알고리즘은 이러한 공정성 문제를 해결하거나 다른 공정성 목표를 추구한다. TCP 뉴렌은 패킷 손실 대신 큐 지연을 혼잡 신호로 사용하여 RTT에 덜 민감한 공정성을 달성하려 한다. TCP BBR은 대역폭과 지연을 직접 측정하여 BDP를 채우는 방식으로 동작하며, 기존 로스 기반 알고리즘과 대역폭을 공유할 때 공정성 문제가 제기되기도 한다. 데이터센터 환경의 DCTCP는 미세한 피드백을 통해 큐 길이를 낮게 유지하면서도 플로우 간 공정한 대역폭 분배를 목표로 한다.

공정성을 정량화하는 대표적인 척도로는 제인 공정성 지수가 널리 사용된다. 이 지수는 0부터 1 사이의 값을 가지며, 1에 가까울수록 모든 플로우가 완벽하게 공평한 대역폭을 할당받았음을 의미한다. 네트워크 설계자는 처리량과 지연 시간을 최적화하면서도 이 공정성 지수를 고려해야 한다. 공정성은 단순히 평등한 분배를 넘어, 우선순위가 높은 트래픽을 위한 가중치 부여나 최소 대역폭 보장과 같은 정책적 요소와도 결합된다.

9. 관련 문서

  • Wikipedia - 혼잡 제어

  • Wikipedia - Congestion avoidance

  • IETF RFC 5681 - TCP Congestion Control

  • KISA - 네트워크 혼잡 제어 기술 동향

  • ScienceON - TCP 혼잡 제어 알고리즘의 성능 분석

  • NAVER 포스트 - 네트워크 혼잡 제어란?

  • ResearchGate - A Survey on Congestion Control Mechanisms in Computer Networks

리비전 정보

버전r1
수정일2026.02.14 21:22
편집자unisquads
편집 요약AI 자동 생성