혼잡 신호 해석

현대 혼잡 제어는 같은 네트워크를 서로 다른 신호로 읽는다

Reno와 CUBIC은 손실을, Vegas는 지연 증가를, DCTCP는 ECN 마킹을, BBR은 병목 대역폭과 RTT 모델을 중심 신호로 삼는다.

혼잡 신호는 큐가 생기는 시점과 패킷이 버려지는 시점이 다르다

delay

RTT 기울기가 먼저 움직인다.

ECN

손실 전 CE 마킹 비율을 읽는다.

loss

큐가 넘친 뒤 중복 ACK나 timeout으로 줄인다.

model

최소 RTT와 병목 대역폭을 계속 갱신한다.

Reno / NewReno

Slow Start, CA, Fast Recovery의 기준 모델

loss based

중복 ACK와 timeout을 혼잡의 대표 신호로 본다.

cwnd AIMD

ACK마다 천천히 늘리고 손실에서 크게 줄인다.

학습 기준

TCP 혼잡 제어의 기본 상태 변화를 설명하기 좋다.

고BDP 한계

긴 RTT와 큰 대역폭에서는 회복이 느릴 수 있다.

CUBIC

Linux 계열에서 흔히 만나는 기본 알고리즘

loss based

손실 직전 Wmax 주변을 다시 탐색한다.

3차 함수 cwnd

Wmax에서 멀 때 빠르고 가까울 때 조심스럽게 증가한다.

고BDP 경로

큰 BDP에서 Reno보다 빠르게 용량을 찾는다.

큐 지연 관찰 필요

손실 전까지 큐가 길어질 수 있어 지연도 함께 본다.

BBR

Google 계열 서비스에서 널리 알려진 모델 기반 제어

bandwidth + RTT

병목 대역폭과 최소 RTT를 추정해 경로 모델을 만든다.

pacing rate

cwnd만이 아니라 송신 속도 자체를 조절한다.

손실이 잦은 경로

무선·장거리처럼 손실이 항상 혼잡을 뜻하지 않는 곳에서 유리할 수 있다.

공정성 측정 필요

기존 loss based 흐름과 섞일 때 전후 비교가 필요하다.

Vegas

지연 기반 알고리즘의 대표 학습 예시

RTT increase

RTT 증가를 큐가 쌓이는 초기 신호로 읽는다.

queue target

예상 처리량과 실제 처리량의 차이로 cwnd를 조정한다.

낮은 지연 목표

손실 전 큐 형성을 피하려는 설계에 가깝다.

loss based와 경쟁

더 공격적인 흐름과 함께 있으면 대역폭을 양보하기 쉽다.

DCTCP

ECN이 잘 구성된 데이터센터용 혼잡 제어

ECN marking ratio

손실 전에 라우터가 표시한 CE 마킹 비율을 읽는다.

proportional cwnd

마킹 비율에 비례해 윈도우를 섬세하게 줄인다.

낮은 큐 지연

데이터센터 내부처럼 ECN 정책을 제어할 수 있는 곳에 맞다.

ECN 경로 의존

스위치와 엔드포인트 설정이 맞지 않으면 장점이 사라진다.

loss

손실만 보면 큐 지연을 놓친다

CUBIC이나 Reno를 볼 때도 RTT, retransmit, timeout, queue delay를 함께 확인한다.

model

BBR은 pacing과 측정 품질이 핵심

병목 대역폭 추정이 흔들리면 전송률과 공정성도 함께 흔들린다.

ECN

DCTCP는 네트워크 장비까지 포함한 설정

엔드포인트 알고리즘만 바꿔서는 ECN 기반 제어가 제대로 동작하지 않는다.

혼잡 제어 변경은 커널 옵션보다 실측 비교가 먼저다

`tcp_congestion_control` 값을 바꾸기 전에 같은 트래픽 조건에서 처리량, RTT, 재전송, 큐 지연, 공정성을 함께 측정해야 한다. BBR이 모든 경로의 정답은 아니며, CUBIC이 더 안정적인 환경도 많다.