혼잡 제어 메커니즘
1. 개요
1. 개요
혼잡 제어 메커니즘은 패킷 교환 네트워크에서 네트워크 혼잡을 관리하고 완화하기 위한 기술과 정책의 집합이다. 네트워크 혼잡은 네트워크 경로 상의 하나 이상의 링크나 라우터에서 전송 요구가 처리 용량을 초과할 때 발생하며, 이로 인해 패킷 손실, 긴 지연 시간, 처리율 저하 등의 문제가 생긴다. 혼잡 제어의 핵심 목적은 네트워크를 안정된 상태로 유지하면서 가능한 한 높은 처리량을 달성하는 것이다.
이 메커니즘은 주로 TCP와 같은 전송 계층 프로토콜에서 구현되며, 라우터에서 수행되는 능동적 큐 관리와 같은 네트워크 계층의 기법과 함께 작동한다. 기본 원리는 송신자가 네트워크 상태를 추정하고, 그에 따라 데이터 전송 속도를 조절하는 것이다. 주요 조절 변수로는 혼잡 윈도우 크기와 RTT 측정값 등이 사용된다.
혼잡 제어는 네트워크의 공정성, 효율성, 안정성을 보장하는 데 필수적이다. 효과적인 혼잡 제어가 없다면, 네트워크는 혼잡 붕괴 상태에 빠져 전체 처리량이 급격히 떨어질 수 있다. 이는 1980년대 중반 인터넷에서 처음 대규모로 관찰된 문제로, 현대 인터넷의 핵심 설계 요소로 자리 잡게 되었다.
2. 혼잡 제어의 필요성과 목표
2. 혼잡 제어의 필요성과 목표
패킷 교환 네트워크에서 데이터는 여러 노드를 거쳐 전송된다. 특정 경로상의 한 지점에서 네트워크 자원(예: 대역폭, 버퍼 공간, 처리 능력)에 대한 수요가 공급을 초과하면 혼잡이 발생한다. 혼잡은 네트워크 성능을 심각하게 저하시키는 주요 원인으로, 패킷 손실, 전송 지연 증가, 처리량 감소, 자원 낭비 등을 초래한다. 따라서 혼잡 제어는 네트워크가 효율적이고 안정적으로 운영되도록 보장하는 핵심 메커니즘이다.
혼잡 제어의 주요 목표는 다음과 같이 요약할 수 있다.
목표 | 설명 |
|---|---|
효율성 | 네트워크 자원을 최대한 활용하여 전체 처리량을 높이고, 유휴 상태를 최소화한다. |
공정성 | 여러 데이터 흐름이 네트워크 자원을 공정하게 공유하도록 한다. 특정 흐름이 독점하는 것을 방지한다. |
안정성 | 네트워크가 혼잡 붕괴 상태에 빠지지 않도록 예방하고, 혼잡이 발생하더라도 시스템이 빠르게 정상 상태로 회복되도록 한다. |
지연 최소화 |
혼잡 제어는 단순히 혼잡이 발생한 후 대응하는 것을 넘어, 혼잡을 사전에 예방하고 네트워크를 최적의 작업 지점 근처에서 운영하는 것을 목표로 한다. 이는 네트워크의 확장성과 견고성을 결정하는 중요한 요소이며, 인터넷과 같은 대규모 분산 시스템이 기능할 수 있는 기반을 제공한다.
3. 혼잡 제어의 기본 원리
3. 혼잡 제어의 기본 원리
혼잡 제어의 기본 원리는 네트워크의 혼잡 상태를 감지하고, 이를 바탕으로 데이터 전송 속도를 조절하여 혼잡을 완화하거나 예방하는 과정을 포함한다. 이는 크게 혼잡 감지와 혼잡 회피/제어 조치라는 두 가지 핵심 단계로 구성된다.
혼잡 감지는 네트워크가 포화 상태에 근접했거나 이미 포화 상태임을 인지하는 단계이다. 주요 감지 방법으로는 패킷 손실과 왕복 지연 시간 증가가 있다. 패킷 손실은 일반적으로 라우터의 버퍼가 가득 차서 패킷이 폐기될 때 발생하며, 이는 TCP 프로토콜에서 재전송 타임아웃 또는 중복 ACK를 통해 감지된다. 또한, 데이터 패킷의 전송부터 그에 대한 확인 응답까지의 시간인 왕복 지연 시간이 점차 증가하는 현상은 라우터 큐에 패킷이 쌓이고 있음을 의미하는 간접적인 혼잡 신호로 활용된다. 일부 최신 메커니즘은 지연 시간의 변화율을 정밀하게 측정하여 혼잡을 조기에 감지하기도 한다.
혼잡이 감지되면, 송신자는 데이터 전송 속도를 낮추는 조치를 취한다. 이는 주로 혼잡 윈도우 크기를 동적으로 조절하는 방식으로 이루어진다. 혼잡 윈도우는 ACK를 기다리지 않고 한 번에 전송할 수 있는 데이터 양을 제한한다. 혼잡 감지 신호에 따라 혼잡 윈도우 크기를 급격히 줄인 후, 네트워크 상태가 양호해지면 점진적으로 증가시키는 것이 일반적인 패턴이다. 이러한 조치는 네트워크에 존재하는 병목 링크의 대역폭을 초과하지 않도록 송신률을 제한함으로써, 큐의 무한정 성장과 버퍼블로트를 방지하고 공정한 대역폭 공유를 도모하는 데 목표를 둔다.
3.1. 혼잡 감지 방법
3.1. 혼잡 감지 방법
혼잡 감지는 혼잡 제어 메커니즘의 첫 단계로, 네트워크가 포화 상태에 근접했거나 이미 포화되어 성능이 저하되고 있음을 인지하는 과정이다. 주요 감지 방법은 패킷 손실, 지연 시간 증가, 명시적 혼잡 통지 등 세 가지로 구분된다.
가장 전통적이고 널리 사용되는 방법은 패킷 손실을 통한 간접적 혼잡 감지이다. TCP에서는 재전송 타임아웃이 발생하거나 중복 ACK를 세 개 연속으로 수신하면 패킷 손실이 발생한 것으로 간주하고 이를 혼잡의 신호로 해석한다. 이는 네트워크의 라우터나 스위치의 버퍼가 가득 차 패킷이 폐기되었을 가능성이 높기 때문이다. 그러나 무선 환경의 오류나 기타 이유로 인한 손실을 혼잡으로 오인할 수 있는 단점이 있다.
지연 시간의 변화를 관측하는 방법은 혼잡을 보다 조기에 감지할 수 있다. 왕복 지연 시간이 점진적으로 증가하는 것은 네트워크 큐에 패킷이 쌓이고 있음을 의미하며, 이는 곧 혼잡의 전조 현상이다. BBR과 같은 최신 프로토콜은 대역폭과 지연 시간을 직접 측정하여 대역폭 지연 곱을 추정하고, 지연 시간이 최소값에서 증가하기 시작하는 지점을 혼잡의 시작으로 판단한다. 이 방법은 손실이 발생하기 전에 예방적으로 대응할 수 있다는 장점이 있다.
네트워크 장비가 직접 혼잡 상태를 알려주는 명시적 혼잡 통지 방식도 있다. ECN이 대표적인 예로, 라우터는 자신의 큐 길이가 임계치를 초과하면 지나가는 패킷의 IP 헤더에 ECN 표시를 한다. 수신 측은 이 표시를 확인하여 ACK 패킷을 통해 송신 측에 혼잡을 알리고, 송신 측은 패킷 손실 없이도 전송 속도를 낮춘다. 이는 불필요한 재전송과 지연을 줄이는 효율적인 방법이다.
감지 방법 | 감지 신호 | 장점 | 단점 |
|---|---|---|---|
패킷 손실 | 재전송 타임아웃, 중복 ACK | 구현이 간단하고 보편적 | 혼잡이 이미 발생한 후에야 감지, 무선 오류와 구분 어려움 |
지연 시간 | RTT 증가, 대역폭 변화 | 조기 감지 가능, 예방적 조치 가능 | 측정 노이즈에 민감, 정확한 기준 설정이 복잡 |
명시적 통지 (ECN) | 네트워크 장비의 ECN 표시 | 손실 없이 조기 통지, 네트워크 효율 향상 | 종단과 네트워크 장비 모두의 지원 필요 |
3.2. 혼잡 회피 및 제어 조치
3.2. 혼잡 회피 및 제어 조치
혼잡이 감지되면, 네트워크 또는 종단 호스트는 이를 완화하고 네트워크를 안정된 상태로 되돌리기 위한 조치를 취한다. 이러한 조치는 크게 혼잡 회피와 혼잡 제어로 나눌 수 있으며, 주로 데이터 전송 속도를 조절하는 방식으로 이루어진다.
혼잡 회피는 혼잡이 본격적으로 발생하기 전에 사전에 예방하는 전략이다. 대표적인 방법은 슬로우 스타트와 혼잡 회피 알고리즘에서 사용되는 혼잡 윈도우의 증가 속도를 조절하는 것이다. 패킷 손실이 발생하지 않은 상태에서도 왕복 지연 시간의 증가나 중복 ACK 수신과 같은 혼잡 신호를 감지하면, 전송 속도의 증가를 억제하거나 선제적으로 윈도우 크기를 줄여 과도한 트래픽 주입을 막는다.
한편, 혼잡이 이미 발생하여 패킷 손실 등의 명확한 증상이 나타났을 때는 보다 적극적인 혼잡 제어 조치가 실행된다. 가장 일반적인 조치는 혼잡 윈도우 크기를 급격히 줄이는 것이다. 예를 들어, TCP Reno에서는 세 번의 중복 ACK를 받는 빠른 재전송 단계에서 윈도우를 반으로 줄이고, 타임아웃이 발생하면 윈도우 크기를 1로 초기화한다. 이는 네트워크에 가해지는 부하를 즉시 낮추어 큐가 해소되고 패킷 손실이 멈출 수 있도록 한다.
조치의 구체적인 메커니즘은 사용되는 알고리즘에 따라 다르다. 전통적인 TCP Tahoe는 모든 패킷 손실에 대해 윈도우를 1로 줄이고 슬로우 스타트를 재시작하는 반면, TCP NewReno나 CUBIC은 부분적인 윈도우 감소와 더 부드러운 회복 방식을 채택한다. 또한, AQM을 구현한 라우터는 RED와 같은 기법을 통해 평균 큐 길이를 모니터링하다가 임계치를 넘으면 무작위로 패킷을 표시하거나 폐기하여, 종단 호스트에게 조기에 혼잡 신호를 보내 조정을 유도한다.
4. TCP 혼잡 제어 알고리즘
4. TCP 혼잡 제어 알고리즘
TCP 혼잡 제어는 패킷 손실을 주요 혼잡 신호로 간주하고, 이에 반응하여 송신 윈도우 크기를 동적으로 조정하는 방식을 취한다. 초기 TCP 구현체부터 발전을 거듭하여 여러 알고리즘이 제안되었으며, 그 핵심은 슬로우 스타트, 혼잡 회피, 빠른 재전송, 빠른 회복의 네 가지 기본 메커니즘으로 구성된다.
슬로우 스타트 단계에서는 연결 초기에 혼잡 윈도우 크기를 1부터 시작하여 매 ACK 수신 시 지수적으로 증가시킨다. 이는 사용 가능한 대역폭을 빠르게 탐색하기 위한 목적을 가진다. 혼잡 윈도우가 미리 설정된 임계값에 도달하면, 혼잡 회피 단계로 진입하여 윈도우 크기를 선형적으로 증가시킨다. 이는 네트워크를 포화 상태에 가깝게 유지하면서도 혼잡을 유발하지 않도록 조심하는 단계이다.
패킷 손실이 발생하면, TCP는 이를 네트워크 혼잡의 징후로 해석한다. 초기 알고리즘인 TCP Tahoe는 타임아웃이나 세 개의 중복 ACK를 감지하면 즉시 혼잡 윈도우 크기를 1로 줄이고 슬로우 스타트 단계로 돌아갔다. 이후 등장한 TCP Reno는 세 개의 중복 ACK를 통한 패킷 손실 감지 시, 혼잡 윈도우를 반으로 줄이고 빠른 회복 단계를 통해 선형 증가로 바로 진입하는 방식을 도입했다. 이는 단일 패킷 손실에 대한 복구 성능을 향상시켰다.
더 발전된 알고리즘으로는 여러 패킷 손실을 한 번의 복구 주기 내에서 처리할 수 있도록 개선한 TCP NewReno와, 대역폭-지연 곱에 더욱 최적화된 동작을 위해 혼잡 윈도우를 3차 함수 형태로 증가시키는 TCP CUBIC이 있다. CUBIC은 특히 고대역폭·장지연 네트워크 환경에서 기존 에이미드 알고리즘보다 공정성과 링크 활용률 측면에서 우수한 성능을 보인다.
알고리즘 | 주요 혁신 | 혼잡 신호(중복 ACK) 시 동작 |
|---|---|---|
TCP Tahoe | 슬로우 스타트, 혼잡 회피 도입 | 윈도우를 1로 줄이고 슬로우 스타트 재시작 |
TCP Reno | 빠른 재전송과 빠른 회복 도입 | 윈도우를 절반으로 줄이고 선형 증가(빠른 회복) |
TCP NewReno | 부분적 ACK 문제 해결 | 한 RTT 내 여러 패킷 손실 복구 가능 |
TCP CUBIC | 3차 함수 기반 윈도우 증가 | 손실 후 더 공격적이고 안정적인 성장 곡선 |
4.1. 슬로우 스타트와 혼잡 회피
4.1. 슬로우 스타트와 혼잡 회피
슬로우 스타트는 TCP 혼잡 제어 알고리즘의 초기 단계로, 송신자가 네트워크의 이용 가능한 대역폭을 탐색하는 과정이다. 송신자는 연결 설정 후 혼잡 윈도우 크기를 1개의 MSS로 시작한다. 데이터 전송 후 ACK를 성공적으로 수신할 때마다 혼잡 윈도우 크기는 지수적으로 증가한다. 즉, 매 RTT마다 윈도우 크기가 두 배가 된다. 이 과정은 네트워크의 용량 한계에 도달하여 패킷 손실이 발생하거나, 사전에 설정된 슬로우 스타트 임계값에 도달할 때까지 계속된다.
슬로우 스타트 임계값에 도달하면 알고리즘은 혼잡 회피 단계로 전환된다. 혼잡 회피 단계에서는 보수적으로 윈도우 크기를 선형적으로 증가시킨다. 일반적으로 매 RTT마다 혼잡 윈도우 크기를 1 MSS만큼 증가시킨다. 이는 네트워크가 포화 상태에 가까워졌다고 판단하고, 과도한 데이터 전송으로 인한 혼잡 붕괴를 방지하기 위한 조치이다.
패킷 손실은 혼잡의 주요 지표로 간주된다. 타임아웃이나 중복 ACK의 수신과 같은 패킷 손실이 감지되면, 송신자는 네트워크에 혼잡이 발생했다고 판단하고 즉시 대응한다. 대응 조치는 구현된 알고리즘에 따라 다르지만, 일반적으로 다음과 같은 작업을 수행한다.
1. 슬로우 스타트 임계값을 현재 혼잡 윈도우 크기의 절반으로 낮춘다.
2. 혼잡 윈도우 크기를 1 MSS로 재설정(슬로우 스타트 재시작)하거나, 새로운 임계값으로 설정한다.
이 두 메커니즘은 함께 작동하여 TCP 연결이 초고속으로 대역폭을 점유하지 않도록 보장하면서도, 사용 가능한 대역폭을 효율적으로 활용할 수 있게 한다.
4.2. 빠른 재전송과 빠른 회복
4.2. 빠른 재전송과 빠른 회복
TCP의 슬로우 스타트 및 혼잡 회피 알고리즘은 패킷 손실을 혼잡 발생의 주요 신호로 간주하며, 일반적으로 재전송 타임아웃이 발생할 때까지 기다린 후 조치를 취한다. 그러나 타임아웃을 기다리는 것은 상당한 시간 지연을 초래하여 성능을 저하시킨다. 이를 보완하기 위해 도입된 것이 빠른 재전송과 빠른 회복 메커니즘이다.
빠른 재전송은 중복된 ACK 수신을 통해 패킷 손실을 조기에 감지하고 재전송을 유발하는 기법이다. 수신자는 순서가 맞지 않는 세그먼트를 받으면 마지막으로 정상 수신한 순번에 대한 ACK를 반복적으로 전송한다. 송신자가 동일한 순번에 대한 ACK를 세 번 연속으로 받으면(즉, 총 네 개의 중복 ACK), 해당 순번의 데이터 세그먼트가 손실되었다고 판단하고 타임아웃을 기다리지 않고 즉시 해당 세그먼트를 재전송한다[1].
빠른 재전송 이후에 수행되는 혼잡 제어 조치에는 주로 TCP Tahoe와 TCP Reno의 두 가지 접근 방식이 있다. Tahoe는 빠른 재전송 후 혼잡 윈도우를 1로 줄이고 슬로우 스타트 단계로 돌아간다. 반면, Reno는 빠른 회복 알고리즘을 도입하여 보다 공격적인 성능 유지를 시도한다. 빠른 회복에서는 빠른 재전송이 발생했을 때, 혼잡 윈도우를 반으로 줄이고(혼잡 회피와 동일) 슬로우 스타트 임계값을 이 새로운 윈도우 크기로 설정한다. 그러나 슬로우 스타트 단계로 돌아가지 않고, 줄어든 혼잡 윈도우 크기에서 바로 혼잡 회피 단계를 시작한다. 이는 중복 ACK가 네트워크를 통해 계속 흐르고 있음을 의미하며, 이는 손실된 패킷 하나만이 빠져나갔고 나머지 패킷들은 수신자에게 도착했음을 시사하기 때문이다.
빠른 회복 상태에서는 손실된 패킷의 재전송이 성공적으로 확인(ACK)될 때까지, 매 중복 ACK를 수신할 때마다 혼잡 윈도우를 1씩 증가시켜 송신률을 유지한다. 손실된 패킷에 대한 새로운 ACK(즉, 누적 ACK)가 도착하면, 혼잡 윈도우를 슬로우 스타트 임계값으로 설정하고 정상적인 혼잡 회피 단계로 복귀한다. 이 메커니즘은 단일 패킷 손실에 대한 복구 시간을 크게 단축시켜 전체 처리량을 향상시킨다.
4.3. TCP Tahoe, Reno, NewReno, CUBIC
4.3. TCP Tahoe, Reno, NewReno, CUBIC
TCP 혼잡 제어 알고리즘은 초기 TCP Tahoe와 TCP Reno를 시작으로, 네트워크 환경 변화와 성능 개선 요구에 따라 TCP NewReno, TCP CUBIC 등으로 진화해왔다.
초기 표준 알고리즘인 TCP Tahoe는 슬로우 스타트, 혼잡 회피, 빠른 재전송의 세 가지 기본 메커니즘을 포함했다. 그러나 타임아웃으로 인한 혼잡 창 크기가 1로 초기화되는 문제가 있어, 패킷 손실 후 회복 속도가 느렸다. 이를 개선한 TCP Reno는 빠른 회복 메커니즘을 추가 도입했다. 이로써 단일 패킷 손실 시 혼잡 창을 반으로 줄이고 선형 증가 단계로 바로 진입할 수 있게 되어 성능이 향상되었다. 하지만 여러 패킷이 한 RTT 내에 손실되면 여전히 타임아웃이 발생할 수 있는 한계가 있었다.
TCP NewReno는 Reno의 부분적 ACK 문제를 해결하기 위해 개발되었다. '부분적 ACK'를 받은 후에도 빠른 회복 상태를 유지하여, 한 RTT 내에 발생한 여러 패킷 손실을 단일 RTT 내에 모두 복구할 수 있게 했다. 이는 특히 버스트 손실이 발생하는 환경에서 Reno보다 우수한 성능을 보였다. 주요 개선점은 'Recovery' 상태를 도입하여 손실된 모든 세그먼트가 복구될 때까지 빠른 회복 단계를 유지하는 것이었다.
알고리즘 | 주요 특징 | 한계점 |
|---|---|---|
슬로우 스타트, 혼잡 회피, 빠른 재전송 도입 | 단일 패킷 손실에도 타임아웃 발생, 혼잡 창이 1로 초기화됨 | |
빠른 회복 메커니즘 추가 | 여러 패킷 손실 시 부분적 ACK 문제로 타임아웃 발생 가능 | |
부분적 ACK 문제 해결, 복수 패킷 손실 복구 능력 향상 | 여전히 손실 기반 반응에 의존함 | |
3차 함수를 이용한 창 증가, RTT 독립적 동작, 고대역폭 지연 곱 네트워크에 최적화 | 손실이 혼잡의 유일한 지표로 간주될 수 있음 |
2000년대 후반 고속 장거리 네트워크가 보편화되면서, 기존 손실 기반 알고리즘의 한계가 부각되었다. 이에 등장한 TCP CUBIC은 혼잡 창 크기를 시간의 3차 함수로 제어하는 핵심 아이디어를 채택했다. 손실 발생 후에도 창 크기를 급격히 낮추지 않고, 이전 최대 창 크기 근처에서 완만하게 탐색하며 증가시킨다. 이는 RTT에 독립적으로 동작하여 긴 RTT 흐름이 불리해지는 문제를 완화하고, 대역폭을 더 공정하게 공유하도록 설계되었다. CUBIC은 현재 리눅스의 기본 TCP 혼잡 제어 알고리즘으로 널리 사용되며, 고대역폭·지연 곱 네트워크 환경에서의 확장성을 입증했다.
5. AQM (능동적 큐 관리) 메커니즘
5. AQM (능동적 큐 관리) 메커니즘
AQM(능동적 큐 관리)은 네트워크의 중간 노드(주로 라우터나 스위치)에서 큐의 길이를 능동적으로 관리하여 혼잡을 사전에 예방하거나 완화하는 메커니즘이다. 종단 호스트만이 혼잡을 제어하는 전통적인 방식의 한계를 보완하며, 큐잉 지연과 패킷 손실을 줄이고 공평성과 처리량을 향상시키는 것을 목표로 한다. AQM은 버퍼블로트 현상을 효과적으로 해결하는 핵심 기술로 주목받는다.
가장 대표적인 AQM 메커니즘인 RED(Random Early Detection)은 평균 큐 길이를 계산하여 사전에 무작위로 패킷을 폐기하거나 ECN(Explicit Congestion Notification) 표시를 한다. 평균 큐 길이가 최소 문턱값 미만이면 모든 패킷을 통과시키고, 최대 문턱값을 초과하면 모든 패킷을 폐기(또는 표시)한다. 두 문턱값 사이에서는 확률적으로 패킷을 폐기하는데, 이로 인해 TCP 송신자가 혼잡 윈도우를 조기에 줄여 큐가 가득 차는 것을 방지한다. RED의 변형으로는 가중치를 적용한 WRED 등이 있다.
메커니즘 | 주요 특징 | 목표 |
|---|---|---|
평균 큐 길이 기반의 확률적 패킷 폐기/표시 | 큐 길이 관리, 지연 감소 | |
지연 시간을 직접 측정하여 관리 대상 패킷 선택 | 버퍼블로트 제거, 대기 시간 유지 | |
CoDel과 공정 큐잉(Fair Queuing) 결합 | 지연 감소 + 흐름 간 공평성 보장 |
CoDel(Controlled Delay)은 큐의 대기 시간(지연)을 직접 제어 대상으로 삼는 새로운 접근법이다. RED가 큐 길이를 간접적인 지표로 사용하는 반면, CoDel은 패킷이 큐에 머문 시간을 측정한다. 설정된 지연 목표치를 초과하는 패킷이 일정 시간 이상 지속되면 패킷을 폐기하여 송신자에게 혼잡 신호를 보낸다. 이 방식은 다양한 대역폭과 RTT(왕복 시간) 조건에서도 일정한 지연을 유지하는 데 효과적이다. FQ-CoDel은 CoDel 알고리즘을 각 네트워크 흐름별로 독립된 큐에 적용하는 공정 큐잉과 결합한다. 이를 통해 한 개의 공격적 흐름이 전체 큐를 독점하는 것을 방지하고, 지연 감소와 함께 흐름 간의 공평한 대역폭 분배를 동시에 달성한다.
5.1. RED (Random Early Detection)
5.1. RED (Random Early Detection)
RED는 AQM의 대표적인 메커니즘으로, 라우터나 스위치의 버퍼가 완전히 가득 차기 전에 패킷을 조기에 무작위로 폐기(drop)하거나 표시(mark)하여 혼잡을 사전에 통지하는 방법이다. 전통적인 테일 드롭 방식은 큐가 가득 찰 때까지 패킷을 계속 쌓아두다가 오버플로가 발생하면 새로 도착하는 패킷을 모두 폐기하는 방식이었다. 이 방식은 전체 동기화 현상을 유발하여 링크 이용률을 급격히 떨어뜨리고, 큐 지연 시간을 불필요하게 증가시키는 문제가 있었다. RED는 이러한 문제를 완화하기 위해 설계되었다.
RED의 핵심 작동 원리는 평균 큐 길이를 계산하고, 두 개의 사전 설정된 임계값(최소 임계값, 최대 임계값)과 비교하여 패킷 폐기 확률을 결정하는 것이다. 평균 큐 길이는 지수 가중 이동 평균을 사용하여 계산되어 일시적인 버스트 트래픽의 영향을 완화한다. 평균 큐 길이가 최소 임계값 미만이면 모든 패킷을 통과시킨다. 최대 임계값을 초과하면 모든 새로 도착하는 패킷을 폐기한다. 가장 중요한 것은 평균 큐 길이가 두 임계값 사이에 있을 때로, 이 경우 새로 도착하는 각 패킷을 일정 확률로 폐기(또는 ECN이 지원되는 환경에서는 표시)한다. 이 확률은 평균 큐 길이가 증가함에 따라 선형적으로 증가한다[2].
이러한 조기 무작위 폐기 방식은 여러 이점을 제공한다. 첫째, 큐 길이를 낮은 수준으로 유지하여 대기 시간을 줄인다. 둘째, 무작위로 선택된 연결의 패킷을 폐기함으로써 여러 TCP 연결이 동시에 패킷 손실을 경험하는 전체 동기화 현상을 방지한다. 이는 링크 이용률을 안정적으로 유지하는 데 도움이 된다. 셋째, 패킷 손실을 조기에 발생시켜 송신자에게 혼잡 신호를 더 빠르게 전달함으로써, 혼잡 제어 메커니즘이 더 신속하게 반응하도록 유도한다.
그러나 RED는 올바른 동작을 위해 여러 매개변수(최소/최대 임계값, 최대 폐기 확률, 가중치 등)의 민감한 튜닝이 필요하다는 실용적인 어려움을 안고 있다. 잘못 설정된 매개변수는 성능을 오히려 악화시킬 수 있다. 또한, 평균 큐 길이 계산 방식이 매우 느리게 변화하는 트래픽에는 잘 적응하지만, 빠르게 변화하는 트래픽에는 반응이 둔할 수 있다. 이러한 한계를 해결하기 위해 이후에 Adaptive RED, WRED, 그리고 CoDel과 같은 더 강건한 AQM 알고리즘이 제안되었다.
5.2. CoDel 및 FQ-CoDel
5.2. CoDel 및 FQ-CoDel
AQM 메커니즘 중 하나인 CoDel(Controlled Delay, 제어된 지연)은 버퍼블로트 현상을 해결하기 위해 2012년에 제안되었다. 기존의 RED가 큐 길이를 기준으로 패킷을 조기에 폐기하는 방식이라면, CoDel은 패킷이 큐에서 대기하는 시간, 즉 지연 시간을 직접 측정하고 제어하는 데 중점을 둔다. CoDel의 핵심 아이디어는 네트워크 경로의 고정된 버퍼 지연을 허용하되, 그 지연을 초과하는 과도한 대기 시간(즉, 큐잉 지연)을 효과적으로 관리하는 것이다. 이를 위해 CoDel은 각 패킷의 소요 시간(sojourn time)을 계산하고, 이 값이 설정된 목표 지연 시간을 일정 기간 동안 지속적으로 초과할 경우 패킷을 폐기한다.
CoDel의 동작은 주로 두 개의 매개변수, 목표(target)와 간격(interval)에 의해 결정된다. 목표는 허용할 수 있는 최소 큐잉 지연 시간이며, 간격은 혼잡 상태를 판단하기 위한 최소 시간 창이다. 알고리즘은 큐의 지연이 목표를 초과하는 상태가 간격 이상 지속되면 혼잡으로 판단하고, 패킷 폐기를 시작하여 송신자에게 혼잡 신호를 보낸다. 이 방식은 큐 길이가 아닌 지연 시간을 기준으로 하기 때문에 링크 용량이나 버퍼 크기에 관계없이 일관된 지연 성능을 제공할 수 있다는 장점이 있다.
FQ-CoDel(Fair Queuing with Controlled Delay)은 CoDel의 지연 제어 메커니즘을 공정 대기열(Fair Queuing) 스케줄링 알고리즘과 결합한 것이다. FQ-CoDel은 들어오는 트래픽을 여러 개의 흐름(flow)으로 분리하여 각각 별도의 대기열에 할당한다. 그런 다음 각 대기열에 대해 독립적으로 CoDel 알고리즘을 적용하여 패킷을 폐기하거나 전송 순서를 결정한다. 이 구조는 몇 가지 중요한 이점을 제공한다. 첫째, 한 개의 과도한 흐름이 전체 대기열을 점유하여 다른 흐름의 성능을 저하시키는 것을 방지한다. 둘째, 지연에 민감한 소규모 흐름(예: 웹 요청, DNS 쿼리)이 대용량 파일 전송과 같은 배경 트래픽 뒤에서 긴 대기 시간을 겪지 않도록 보호한다.
FQ-CoDel의 성능은 다양한 환경에서 검증되어, 리눅스 커널을 비롯한 여러 시스템에 기본 혼잡 관리 알고리즘으로 채택되었다[3]. 다음 표는 CoDel과 FQ-CoDel의 주요 특징을 비교한 것이다.
특성 | CoDel | FQ-CoDel |
|---|---|---|
관리 기준 | 패킷 지연 시간(소요 시간) | 패킷 지연 시간 + 흐름 분리 |
주요 목표 | 버퍼블로트 제어, 지연 감소 | 버퍼블로트 제어 + 흐름 간 공정성 |
큐 구조 | 단일 대기열 | 다중 대기열(흐름별) |
적용 범위 | 단일 경로의 지연 관리 | 다중 흐름 환경의 지연 및 공정성 관리 |
결론적으로, CoDel과 FQ-CoDel은 버퍼블로트를 완화하고 종단 간 지연을 줄이는 데 효과적인 현대적인 AQM 솔루션이다. 특히 FQ-CoDel은 네트워크의 공정성과 응답성을 동시에 개선함으로써, 혼잡 제어가 단순히 대역폭 활용도를 높이는 것을 넘어 사용자 체감 품질을 향상시키는 데 기여한다.
6. 혼잡 제어의 분류
6. 혼잡 제어의 분류
혼잡 제어 메커니즘은 구현 주체와 제어 방식에 따라 여러 기준으로 분류된다. 주요 분류 체계는 종단 간 혼잡 제어와 네트워크 지원 혼잡 제어로 나뉘며, 제어 변수에 따라 윈도우 기반 혼잡 제어와 속도 기반 혼잡 제어로 구분된다.
종단 간 혼잡 제어는 TCP와 같이 네트워크 계층의 명시적 피드백 없이, 송신자가 패킷 손실이나 왕복 시간 증가와 같은 간접적인 신호를 통해 혼잡을 추론하고 대응하는 방식이다. 이는 인터넷의 초기 설계 철학인 "종단 간 원칙"에 부합하지만, 네트워크 상태에 대한 정보가 제한적이라는 단점이 있다. 반면, 네트워크 지원 혼잡 제어는 라우터나 스위치 같은 네트워크 장비가 ECN (명시적 혼잡 통지)이나 AQM 메커니즘을 통해 명시적으로 혼잡 신호를 제공하는 방식이다. 이는 혼잡을 조기에 감지하고 통지할 수 있어 네트워크 효율성을 높일 수 있다.
제어 변수 측면에서 윈도우 기반 혼잡 제어는 혼잡 윈도우 크기를 조절하여 한 번에 전송할 수 있는 데이터 양을 제한한다. 대표적인 TCP 혼잡 제어 알고리즘들은 모두 이 방식을 사용한다. 속도 기반 혼잡 제어는 초당 전송률을 직접 제어 변수로 사용한다. 이 방식은 대역폭이 크고 지연 시간이 긴 네트워크 환경에서 더 유연한 제어가 가능하다는 장점이 있다. 일부 최신 프로토콜은 두 방식을 혼합하거나 상황에 따라 선택적으로 적용하기도 한다.
분류 기준 | 주요 유형 | 설명 | 대표 예시 |
|---|---|---|---|
구현 주체 | 종단 간 혼잡 제어 | 송수신 호스트가 패킷 손실, 지연 등을 통해 혼잡을 간접 추론 | |
네트워크 지원 혼잡 제어 | 네트워크 장비가 명시적인 혼잡 신호(예: ECN)를 제공 | RED (Random Early Detection), ECN 사용 네트워크 | |
제어 변수 | 윈도우 기반 | 혼잡 윈도우 크기를 조절하여 전송량 제어 | 대부분의 전통적 TCP 알고리즘 |
속도 기반 | 초당 전송 속도를 직접 계산 및 제어 |
6.1. 종단 간 혼잡 제어 vs 네트워크 지원 혼잡 제어
6.1. 종단 간 혼잡 제어 vs 네트워크 지원 혼잡 제어
혼잡 제어 메커니즘은 그 책임과 구현 위치에 따라 크게 종단 간 혼잡 제어와 네트워크 지원 혼잡 제어로 분류된다. 이 두 방식은 네트워크 혼잡을 관리하는 주체와 접근 방식에서 근본적인 차이를 보인다.
종단 간 혼잡 제어는 네트워크 계층의 명시적인 지원 없이, 오직 통신의 종단점(주로 전송 계층 프로토콜)이 혼잡을 추론하고 대응하는 방식을 말한다. 대표적인 예가 TCP의 혼잡 제어 알고리즘이다. 송신 호스트는 패킷 손실(타임아웃 또는 중복 ACK 수신)이나 RTT 증가와 같은 간접적인 신호를 통해 네트워크 혼잡을 감지한다. 이후 혼잡 윈도우 크기를 조정하여 전송 속도를 제어한다. 이 방식의 장점은 네트워크 인프라의 변경 없이 종단 호스트의 소프트웨어만 업데이트하면 구현이 가능하다는 점이다. 그러나 네트워크 내부 상태에 대한 명확한 정보가 부족하여 반응이 지연되거나 과도하게 공격적/보수적일 수 있다는 한계가 있다.
반면, 네트워크 지원 혼잡 제어는 라우터나 스위치와 같은 네트워크 장비가 능동적으로 혼잡을 관리하는 데 참여하는 방식을 의미한다. 네트워크 장비는 자신의 큐 상태를 모니터링하고, 혼잡이 예상되거나 발생했을 때 종단 호스트에게 명시적인 피드백 신호를 제공한다. 대표적인 메커니즘으로는 ECN과 AQM이 있다. ECN은 IP 패킷 헤더와 TCP 헤더를 이용해 혼잡 표시를 전달하며, AQM은 RED나 CoDel과 같은 알고리즘으로 패킷을 조기에 폐기하거나 표시하여 혼잡을 사전에 예방한다. 이 방식은 네트워크가 직접 혼잡 상태를 알려주므로 보다 빠르고 정확한 제어가 가능하며, 불필요한 패킷 손실과 지연을 줄일 수 있다. 단점은 네트워크 장비와 종단 호스트 모두가 해당 기능을 지원해야 하며, 네트워크 인프라의 업데이트가 필요하다는 점이다.
현대 네트워크는 주로 두 방식을 혼합하여 사용하는 경향이 있다. 예를 들어, TCP는 종단 간 제어를 기본으로 하되, 네트워크가 ECN을 지원하면 이를 활용하는 하이브리드 방식을 채택한다. 이는 네트워크의 효율성과 공평성을 높이는 데 기여한다.
6.2. 윈도우 기반 vs 속도 기반
6.2. 윈도우 기반 vs 속도 기반
혼잡 제어는 크게 윈도우 기반 혼잡 제어와 속도 기반 혼잡 제어로 분류된다. 이 두 방식은 네트워크의 사용 가능한 대역폭을 얼마나 활용할지를 결정하는 핵심 매개변수의 차이에서 비롯된다.
윈도우 기반 방식은 혼잡 윈도우라는 개념을 사용한다. 혼잡 윈도우는 수신자의 수신 윈도우와 함께, 송신자가 ACK를 기다리지 않고 한 번에 전송할 수 있는 최대 데이터 양(일반적으로 패킷 또는 바이트 단위)을 정의한다. 대표적인 예인 TCP는 패킷 손실이나 지연 증가를 혼잡의 신호로 감지하여 이 혼잡 윈도우의 크기를 동적으로 조절한다. 예를 들어, 슬로우 스타트 단계에서는 윈도우 크기를 지수적으로 증가시키다가, 임계값에 도달하거나 패킷 손실이 발생하면 윈도우 크기를 줄이는 방식으로 작동한다. 이 방식의 성능은 왕복 지연 시간의 영향을 크게 받으며, 대역폭-지연 곱이 큰 네트워크에서는 윈도우 크기를 충분히 키워야 효율을 높일 수 있다.
반면, 속도 기반 방식은 초당 전송률(예: Mbps)을 직접 제어한다. 송신자는 네트워크 상태를 추정하여 초당 보낼 수 있는 패킷의 비율을 결정하고, 이 속도를 기준으로 데이터를 전송한다. 이 방식은 전송 속도를 보다 직접적이고 부드럽게 조절할 수 있으며, 특히 멀티미디어 스트리밍이나 실시간 통신 프로토콜에서 유용하다. 그러나 정확한 대역폭 추정이 어렵다는 도전 과제가 있다. 일부 최신 혼잡 제어 알고리즘은 두 방식을 혼합하거나, 대역폭과 지연을 함께 측정하여 최적의 전송 속도를 계산하는 방식을 사용하기도 한다.
7. 최신 혼잡 제어 프로토콜
7. 최신 혼잡 제어 프로토콜
BBR (Bottleneck Bandwidth and Round-trip propagation time)은 구글이 2016년에 발표한 새로운 혼잡 제어 알고리즘이다. 기존의 손실 기반 혼잡 제어 알고리즘들이 패킷 손실을 혼잡의 주요 신호로 삼아 대역폭을 과소평가하는 문제를 해결하기 위해 설계되었다. BBR은 패킷 손실 대신 링크의 실제 물리적 용량인 병목 대역폭과 왕복 지연 시간을 직접 측정하여 최적의 송신 속도를 모델링한다. 이를 통해 네트워크 버퍼블로트를 유발하지 않으면서도 높은 처리량과 낮은 지연을 동시에 달성하는 것을 목표로 한다.
BBR의 핵심은 병목 링크의 두 가지 상태 변수, 즉 최대 대역폭(BtlBw)과 최소 왕복 지연 시간(RTprop)을 지속적으로 추정하는 데 있다. 알고리즘은 주기적으로 송신 속도를 일시적으로 높여 실제 사용 가능한 대역폭을 탐색하고, 큐 지연이 증가하지 않는 수준에서 데이터를 전송한다. BBR의 동작은 주로 네 가지 단계를 순환한다. 시작(Startup) 단계에서는 빠르게 대역폭을 탐색하고, 배수(Drain) 단계에서는 Startup에서 생성된 큐를 배수한다. 이후 대역폭 탐색(Probe BW) 단계와 지연 탐색(Probe RTT) 단계를 반복하며 네트워크 상태의 변화에 적응한다.
QUIC 프로토콜은 전송 계층에서 TCP를 대체하기 위해 설계되었으며, 그 내부에 유연한 혼잡 제어 프레임워크를 포함하고 있다. QUIC 자체는 특정 알고리즘을 규정하지 않으며, 연결 협상 과정을 통해 사용할 혼잡 제어 알고리즘을 결정한다. 이를 통해 새로운 알고리즘의 배포가 운영 체제 커널 업데이트에 의존하지 않고 사용자 공간에서 쉽게 이루어질 수 있다. QUIC의 표준 구현은 일반적으로 TCP Cubic 또는 BBR과 유사한 로직을 채용하지만, 패킷 번호가 항상 증가하고 헤더가 암호화되어 있어 중간 네트워크 장비의 가시성이 낮다는 특성이 혼잡 판단에 영향을 미친다.
최근에는 BBR의 개선판인 BBRv2와 같은 연구가 활발히 진행되고 있으며, QUIC을 위한 전용 알고리즘 개발도 이어지고 있다. 이러한 프로토콜들은 이종 네트워크 환경, 특히 무선 링크에서의 성능, 다른 트래픽과의 공정성, 그리고 다양한 AQM 하에서의 안정성을 높이는 데 초점을 맞추고 있다.
7.1. BBR (Bottleneck Bandwidth and Round-trip propagation time)
7.1. BBR (Bottleneck Bandwidth and Round-trip propagation time)
BBR(Bottleneck Bandwidth and Round-trip propagation time)은 구글이 2016년에 제안한 새로운 TCP 혼잡 제어 알고리즘이다. 기존의 패킷 손실 기반 혼잡 제어 방식과 근본적으로 다른 접근법을 채택한다. BBR은 네트워크 경로의 실제 용량인 대역폭과 지연 시간인 왕복 지연 시간(RTT)을 직접 측정하여 데이터 전송 속도를 조절한다. 이 방식은 패킷 손실이 혼잡의 결과일 뿐 혼잡 그 자체는 아니라는 인식에 기반을 둔다[4].
BBR의 핵심은 네트워크 경로의 두 가지 핵심 상태 변수인 최대 대역폭(BtlBw)과 최소 왕복 지연 시간(RTprop)을 지속적으로 추정하는 데 있다. 이 두 값을 곱한 결과인 BDP(Bandwidth-Delay Product)는 네트워크 파이프를 꽉 채우는 데 필요한 최적의 데이터 양을 나타낸다. BBR은 주기적으로 전송 속도를 일시적으로 높여 최대 대역폭을 탐색하고, 전송을 최소화하여 최소 RTT를 탐색한다. 그런 후 추정된 BDP에 기반하여 큐에 지연을 축적시키지 않으면서도 링크를 최대한 활용하는 전송 속도와 윈도우 크기를 유지한다.
BBR의 동작은 크게 네 단계로 구성된 상태 머신으로 설명된다.
단계 | 목표 | 주요 동작 |
|---|---|---|
Startup | 가능한 빠르게 대역폭을 탐색 | 전송 속도를 지수적으로 증가시켜 대역폭 추정치가 더 이상 증가하지 않는 지점을 찾음 |
Drain | Startup 단계에서 생성된 큐를 배수 | 추정된 BDP에 맞춰 전송 속도를 낮춰 큐에 쌓인 지연을 제거 |
ProbeBW | 대역폭 변화를 지속적으로 탐색 | 8개의 RTT 주기로 구성되며, 한 주기는 최대 대역폭으로 전송하고 나머지 주기는 그보다 낮은 속도로 전송하여 안정적 운영과 변화 탐지 균형 |
ProbeRTT | 최소 RTT를 주기적으로 재확인 | 10초마다 한 번씩 전송 속도를 크게 낮추고 유지하여 최소 RTT를 정확히 측정 |
기존 TCP Reno나 CUBIC과 같은 손실 기반 알고리즘은 패킷 손실을 혼잡 신호로 간주하여 윈도우 크기를 반으로 줄이는 공격적인 반응을 보인다. 이는 특히 대역폭이 높고 지연이 큰 망에서 성능 저하를 초래한다. 반면 BBR은 패킷 손실에 덜 민감하게 반응하며, 지연 증가를 최소화하면서도 높은 처리량을 유지하는 데 중점을 둔다. 결과적으로 BBR은 버퍼블로트 현상을 크게 완화하고 평균 처리량과 지연 성능을 동시에 개선하는 것으로 알려졌다.
7.2. QUIC의 혼잡 제어
7.2. QUIC의 혼잡 제어
QUIC 프로토콜은 TCP의 혼잡 제어 방식을 계승하면서도, 전송 계층과 애플리케이션 계층의 결합을 통해 더 유연하고 효율적인 제어를 가능하게 한다. QUIC은 기본적으로 TCP의 슬로우 스타트, 혼잡 회피, 빠른 재전송 및 빠른 회복과 유사한 알고리즘을 사용하지만, 이를 독자적인 프레임과 ACK 메커니즘 위에서 구현한다. 핵심적인 차이점은 QUIC이 패킷 손실을 혼잡의 주요 지표로 삼는 전통적인 접근법에 더해, 지연 시간 증가를 보다 정교하게 관측할 수 있는 구조를 갖추고 있다는 점이다.
QUIC 혼잡 제어의 가장 큰 특징은 프로토콜 자체에 특정 알고리즘을 고정하지 않고, 애플리케이션이 혼잡 제어 로직을 선택하고 변경할 수 있는 프레임워크를 제공한다는 것이다. 이를 통해 구글의 BBR이나 CUBIC과 같은 최신 알고리즘을 TCP 스택을 업데이트할 필요 없이 서버 측에서 자유롭게 배포하고 실험할 수 있다. 또한, QUIC의 연결은 연결 ID를 기반으로 하므로, 사용자의 IP 주소가 변경되더라도(예: Wi-Fi에서 셀룰러 네트워크로 전환) 기존의 혼잡 제어 상태(예: 혼잡 윈도우 크기)를 유지한 채 연결을 계속할 수 있다. 이는 이동 중인 환경에서 혼잡 붕괴를 재유발하지 않고도 원활한 핸드오버를 가능하게 하는 중요한 장점이다.
구현 측면에서, QUIC은 패킷 번호가 항상 증가하며 재전송 시에도 새로운 번호를 부여한다. 이는 TCP의 재전송 모호성 문제를 제거하여, 수신된 ACK가 원래 전송된 패킷에 대한 것인지 재전송된 패킷에 대한 것인지를 명확히 구분할 수 있게 한다. 결과적으로 RTT 샘플링의 정확도가 향상되고, 불필요한 혼잡 윈도우 감소를 줄이는 데 기여한다. 표준화된 QUIC(IETF QUIC 또는 HTTP/3)은 일반적으로 TCP의 NewReno나 CUBIC을 기본 알고리즘으로 참조하지만, 실제 구현체들은 다양한 알고리즘을 채택하고 있다[5].
8. 혼잡 제어의 성능 평가 지표
8. 혼잡 제어의 성능 평가 지표
혼잡 제어 메커니즘의 성능은 여러 정량적 지표를 통해 평가된다. 주요 지표로는 처리량, 지연 시간, 지연 시간 변이, 공정성, 그리고 혼잡 붕괴에 대한 강건성이 있다. 이상적인 혼잡 제어는 높은 처리량, 낮은 지연 시간과 그 변이, 공정한 대역폭 분배, 그리고 혼잡 상황에서도 안정성을 유지하는 것을 목표로 한다.
처리량은 단위 시간당 성공적으로 전달된 데이터의 양을 의미하며, 혼잡 제어 알고리즘이 가용 대역폭을 얼마나 효율적으로 활용하는지를 보여준다. 지연 시간은 패킷이 송신자에서 수신자까지 도달하는 데 걸리는 시간이며, 대기열 지연에 큰 영향을 받는다. 지연 시간 변이(지터)는 이 지연 시간의 변동 폭으로, 실시간 애플리케이션의 품질에 결정적 영향을 미친다. 공정성은 여러 데이터 흐름이 네트워크 자원을 공평하게 공유하는 정도를 평가한다.
성능 평가는 주로 시뮬레이션, 에뮬레이션, 또는 실제 네트워크 테스트베드에서 이루어진다. 평가 시나리오는 단일 병목 링크, 다중 경로, 변동하는 대역폭과 지연 시간 등 다양한 네트워크 조건을 포함한다. 성능 지표들은 서로 트레이드오프 관계에 있어, 한 지표의 개선이 다른 지표의 악화를 초래할 수 있다. 예를 들어, 처리량을 극대화하려고 송신 윈도우를 과도하게 늘리면 큐잉 지연이 증가하고 공정성이 저하될 수 있다.
9. 도전 과제 및 향후 발전 방향
9. 도전 과제 및 향후 발전 방향
혼잡 제어는 지속적으로 발전하는 분야로, 새로운 네트워크 환경과 애플리케이션 요구사항에 따라 여러 도전 과제에 직면하고 있습니다. 한 가지 주요 과제는 이기종 네트워크 환경에서의 효과적인 동작입니다. 모바일 네트워크의 변동성이 큰 대역폭과 지연, 또는 위성 통신의 긴 왕복 시간 같은 환경에서는 기존 TCP 알고리즘이 성능 저하를 겪을 수 있습니다. 또한, 데이터 센터 내의 극단적으로 짧은 지연과 높은 대역폭을 요구하는 환경은 낮은 대기 시간과 높은 처리량을 동시에 보장하는 새로운 메커니즘의 필요성을 제기합니다.
다른 중요한 도전 과제는 공정성과 효율성의 균형입니다. 여러 흐름이 대역폭을 공유할 때, 특정 혼잡 제어 알고리즘만 사용하는 흐름이 불공정하게 더 많은 자원을 차지하는 문제가 발생할 수 있습니다. 이는 혼잡 제어의 상호운용성 문제로 이어집니다. 또한, 최근의 QUIC 프로토콜과 같은 암호화 트렌드는 네트워크 장비가 패킷 페이로드를 검사하지 못하게 만들어, 기존의 네트워크 기반 혼잡 제어나 모니터링 방식을 어렵게 만듭니다.
향후 발전 방향은 기계 학습과 자율 최적화에 초점을 맞추고 있습니다. 머신러닝을 활용해 네트워크 상태를 실시간으로 예측하고 혼잡 제어 매개변수를 동적으로 조정하는 연구가 활발합니다. 또한, 정보 중심 네트워킹이나 지연 허용 네트워킹 같은 새로운 네트워크 패러다임에 적합한 혼잡 제어 방식의 개발도 진행 중입니다. 궁극적인 목표는 다양한 애플리케이션(예: 실시간 스트리밍, 대용량 파일 전송, 원격 제어)의 서비스 품질 요구사항을 이해하고 이를 자동으로 충족시키는 상황 인지형 및 애플리케이션 인지형 혼잡 제어로의 진화입니다.
