토픽 135 / 147·네트워크 응용 및 고급 프로토콜
AQM (Active Queue Management)
AQM (Active Queue Management)
라우터나 스위치에서 큐가 가득 차기 전에 선제적으로 패킷을 폐기하여 혼잡을 조기에 감지하고 TCP의 혼잡 제어를 유도하는 네트워크 기법
목적: 버퍼블로트 방지, 지연 감소, 혼잡 조기 감지, 전역 동기화 방지
배경 문제
- •Tail Drop: 큐 가득 찰 때만 폐기, 전역 동기화 유발
- •버퍼블로트: 과도한 버퍼링으로 지연 급증 (수백ms~수초)
RED (Random Early Detection)
- •평균 큐 길이에 따라 확률적 패킷 폐기
- •min_th < avg < max_th: 선형 증가 확률로 폐기
- •avg > max_th: 모든 패킷 폐기
- •장점: 전역 동기화 방지, 평균 큐 길이 유지
- •단점: 파라미터 튜닝 어려움, 성능 불안정
CoDel (Controlled Delay)
- •패킷 체류 시간(Sojourn Time) 기반 폐기
- •목표 지연(5ms) 초과 시 폐기 시작
- •자가 튜닝, 파라미터 설정 불필요
- •장점: 버퍼블로트 효과적 해결, 설정 간단
FQ-CoDel (Fair Queuing + CoDel)
- •플로우별 공정 큐잉 + CoDel 적용
- •Linux 기본 qdisc (2012~)
- •장점: 플로우 간 공정성, 지연 감소, 버퍼블로트 해결
기타: PIE(제어이론 기반/목표 지연 유지/하드웨어 구현 용이), CAKE(FQ-CoDel 확장/대역폭 관리/트래픽 쉐이핑 통합/OpenWrt 기본)
적용사례: 라우터/스위치 QoS, 데이터센터, 홈 네트워크
비교: Tail Drop(단순/동기화) vs RED(확률적/튜닝필요) vs CoDel(지연기반/자가튜닝) vs FQ-CoDel(공정+지연)
연관: 혼잡 제어, QoS, 버퍼블로트, TCP, 라우터