Learning
토픽 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, 라우터