WFQ로 네트워크 트래픽 공정성과 QoS를 관리하는 방법

WFQ의 플로우별 큐, 가중치 기반 패킷 스케줄링, QoS 적용 방식과 CBWFQ·LLQ와의 차이를 정리한다.

2026-08-14 · 최초 발행 2025-08-10

대용량 전송이 트래픽을 독점하지 않게 하는 큐잉 방식

WFQ(Weighted Fair Queuing)는 네트워크 혼잡 상황에서 서로 다른 트래픽 흐름을 관리하는 큐잉 메커니즘이다. 대용량 트래픽이 소량 트래픽을 압도하는 상황을 막고, 흐름별 중요도에 맞는 가중치를 적용해 네트워크 자원을 나눈다. QoS를 보장해야 하는 환경에서 공정한 자원 배분과 서비스 차별화를 함께 다루는 방식이다.

플로우별 큐와 가중치가 만드는 서비스 차이

WFQ는 트래픽 플로우마다 독립적인 큐를 할당한다. 따라서 소량 트래픽이 대량 트래픽 때문에 지연되거나 손실되는 일을 줄이고, 모든 플로우에 네트워크 자원에 접근할 기회를 제공한다.

여기에 플로우의 우선순위나 중요도에 따라 서로 다른 가중치를 부여한다. 같은 양의 트래픽을 전송하는 플로우도 서비스 수준을 달리할 수 있으며, 비즈니스 요구사항이나 서비스 계약에 맞춰 자원 배분을 조정할 수 있다.

WFQ 처리 과정네트워크 트래픽플로우 분류플로우별 할당가중치 계산패킷 스케줄링 전송

패킷을 분류한 뒤 전송 순서를 정하는 과정

유입 패킷은 소스·목적지 IP, 포트, 프로토콜 등의 특성으로 분류된다. 각 플로우에는 독립적인 FIFO(First In First Out) 큐가 배정되며, 새로운 플로우가 나타나면 새 큐가 자동으로 생성된다.

각 큐에는 IP Precedence, DSCP 값 등을 활용해 가중치를 할당한다. WFQ는 패킷 크기와 가중치를 고려해 완료 시간(Finish Time)을 계산하고, 완료 시간이 가장 빠른 패킷부터 순차적으로 전송한다.

소량 트래픽을 보호하는 자동 플로우 관리

작은 패킷이나 적은 양의 트래픽은 대량 전송에 밀리지 않도록 우선 처리된다. 이 특성은 SSH, Telnet 같은 대화형 애플리케이션의 응답성을 높이고, FTP나 파일 다운로드처럼 대역폭을 많이 사용하는 전송이 네트워크를 독점하는 현상을 막는 데 쓰인다.

가중치 산정에는 IP 헤더 TOS(Type of Service) 필드의 IP Precedence 비트가 사용될 수 있으며, 이 값은 0~7 범위를 갖는다. 최신 구현에서는 DSCP(Differentiated Services Code Point) 값도 활용한다. 높은 Precedence 값을 가진 트래픽에는 더 많은 대역폭이 할당된다.

IP 패킷IP 헤더 분석TOS/DSCP 필드 추출가중치 계산 우선순위 결정

관리자가 플로우를 수동으로 정의하지 않아도 WFQ는 플로우를 감지하고 관리한다. 네트워크 조건 변화에 따라 큐를 동적으로 생성·제거하므로 설정 부담을 줄일 수 있다.

라우터와 네트워크 정책에서의 활용

Cisco IOS에서는 인터페이스별로 WFQ를 설정할 수 있다.

Router(config)# interface Serial0/0
Router(config-if)# fair-queue [congestive-discard-threshold [dynamic-queues [reservable-queues]]]

기업 WAN에서는 업무용 애플리케이션과 일반 인터넷 트래픽의 우선순위를 조정하는 데 적용할 수 있다. ISP 네트워크에서는 프리미엄 고객과 일반 고객의 서비스 차별화에 활용되며, VoIP·화상회의 같은 멀티미디어 트래픽과 데이터 트래픽이 함께 흐르는 환경에도 사용된다.

운용 시 얻는 이점과 제약

WFQ는 소량 트래픽을 보호하면서 대량 트래픽을 공정하게 제한할 수 있다. 트래픽 유형별 서비스 차별화가 가능하고, 관리자 개입 없이 플로우를 감지·관리하며, 혼잡 시 중요 트래픽의 처리를 보장한다.

반면 플로우 수가 증가하면 계산 복잡도가 커진다. 10Gbps 이상의 고속 링크에서는 성능 저하 가능성이 있으며, 플로우 기반 분류만으로는 세부 애플리케이션별 정책을 적용하기 어렵다. 동일 플로우 안의 서로 다른 애플리케이션을 구분하는 데도 한계가 있다. 플로우마다 별도 큐를 유지하므로 메모리 사용량이 늘고, 패킷별 완료 시간 계산은 CPU 부하로 이어진다.

FIFO·PQ·CBQ와 비교해 보는 선택 기준

FIFO는 패킷 도착 순서만으로 처리하므로 트래픽 차별화가 없다. WFQ는 플로우별 공정성과 가중치 기반 차별화를 제공한다.

PQ(Priority Queuing)는 높은 우선순위의 트래픽이 낮은 우선순위 트래픽을 완전히 차단하는 starvation이 발생할 수 있다. WFQ에서는 낮은 우선순위 트래픽도 최소한의 대역폭을 보장받는다.

CBQ(Class-Based Queuing)는 관리자가 정의한 트래픽 클래스별로 대역폭을 할당한다. 이에 비해 WFQ는 플로우를 자동으로 감지하고 가중치로 대역폭을 분배한다. CBWFQ(Class-Based Weighted Fair Queuing)는 관리자가 정의한 클래스에 WFQ 원리를 적용해 더 세밀한 트래픽 제어를 제공하며, WFQ의 granularity 한계를 보완한다.

WFQ 원리를 확장한 큐잉 방식

CBWFQ(Class-Based WFQ)는 관리자 정의 트래픽 클래스에 WFQ를 적용하고, 각 클래스에 최소 보장 대역폭을 할당할 수 있다. WFQ에서 부족했던 세밀한 제어를 보완하는 방식이다.

LLQ(Low Latency Queuing)는 CBWFQ에 우선순위 큐를 추가한다. VoIP처럼 지연에 민감한 트래픽을 특별히 처리해 실시간 애플리케이션 지원을 강화한다.

SDN과 결합하면 중앙집중식 컨트롤러를 통해 WFQ 파라미터를 동적으로 조정할 수 있다. 네트워크 상태에 맞춰 가중치를 실시간으로 바꾸고, 애플리케이션 인식 트래픽 엔지니어링에 활용하는 방식이다.

WFQ네트워크 QoS트래픽 관리큐잉패킷 스케줄링