트래픽 컨디셔닝으로 QoS 정책을 설계하는 방법

DiffServ 환경의 트래픽 컨디셔닝을 분류·측정·마킹·성형 관점에서 정리하고 Policing과 Shaping의 적용 기준을 설명한다.

2026-08-14 · 최초 발행 2025-07-16

QoS 정책은 패킷을 구분한 뒤 처리 방식을 결정한다

트래픽 컨디셔닝(Traffic Conditioning)은 네트워크 품질 보장(QoS)을 위해 트래픽을 관리하고 제어하는 과정이다. DiffServ 아키텍처에서는 흐름을 분류하고, 정해진 프로파일에 맞는지 확인한 뒤, 네트워크 자원을 어떤 우선순위로 사용할지 결정하는 기반이 된다.

이 과정은 Classifier, Meter, Marker, Shaper 또는 Dropper로 구성된다. 각 기능은 독립적으로 보이지만, 실제 정책에서는 순서대로 연결되어 트래픽 계약과 서비스 품질 요구를 반영한다.

분류기는 정책을 적용할 트래픽을 가려낸다

Classifier는 유입 패킷이 어떤 트래픽 플로우에 속하는지 판별한다. IP 주소, 포트 번호, 프로토콜 유형 같은 패킷 헤더 정보를 분석해 이후 QoS 정책의 적용 대상을 정한다.

분류 방식은 DSCP 값만 이용하는 BA(Behavior Aggregate) 분류와, 소스·목적지 주소, 포트, 프로토콜 ID 등 여러 필드를 함께 보는 MF(Multi-Field) 분류로 나뉜다.

네트워크 트래픽Classifier음성 트래픽비디오 트래픽데이터 트래픽기타 트래픽

Meter와 Marker가 프로파일 준수 여부와 처리 표식을 맡는다

Meter는 특정 플로우가 미리 정한 트래픽 프로파일을 지키는지 확인한다. 트래픽 속도와 버스트 크기를 관찰하고, SLA(Service Level Agreement) 준수 여부를 판단한다. 측정에는 토큰 버킷(Token Bucket), 리키 버킷(Leaky Bucket), 슬라이딩 윈도우(Sliding Window) 방식이 사용된다.

YesNo분류된 트래픽Meter프로파일 준수?적합 트래픽부적합 트래픽

Marker는 측정과 분류 결과를 바탕으로 패킷에 QoS 처리 정보를 표시한다. DS(Differentiated Services) 필드의 DSCP 값을 마킹하거나, 802.1p CoS(Class of Service) 값과 MPLS EXP 비트를 설정할 수 있다. 마킹 대상은 IP 헤더의 ToS(Type of Service) 필드와 이더넷 프레임의 802.1Q 태그다.

측정된 트래픽MarkerDS 필드 마킹DSCP: EF - 음성DSCP: AF41 - 비디오DSCP: AF21 - 주요 데이터DSCP: BE - 일반 데이터

초과 트래픽을 폐기할지, 버퍼링할지

Shaper와 Dropper는 트래픽 흐름을 제어해 혼잡을 줄이고 중요한 트래픽의 처리를 지원한다. Policing과 Shaping은 모두 대역폭을 제한하지만, 대역폭을 넘는 패킷을 다루는 방식이 다르다.

Policing은 지정 대역폭을 넘은 패킷을 즉시 폐기한다. 버스트 트래픽에도 엄격하게 적용할 수 있고 CPU 부하가 적다. 서비스 제공자가 고객별 대역폭을 제한하거나 중요하지 않은 트래픽을 제한할 때 사용할 수 있다.

Shaping은 초과 패킷을 버퍼에 임시 저장한 뒤, 대역폭 이하 상태가 되면 전송한다. 패킷 손실을 줄이고 네트워크 효율성을 높일 수 있지만 추가 메모리와 CPU 리소스가 필요하다. VoIP, 비디오 스트리밍 같은 실시간 애플리케이션과 TCP 기반 애플리케이션의 성능 최적화에 적용할 수 있다.

ShapingYesYesNoNo입력 트래픽대역폭 초과?버퍼에 저장버퍼 여유?대기패킷 Drop대역폭 가용 전송패킷 전송PolicingYesNo입력 트래픽대역폭 초과?패킷 Drop패킷 전송

기업과 ISP 환경에서의 정책 적용

기업 네트워크에서는 애플리케이션별 요구가 다르므로 분류와 마킹, 제어 방식을 함께 설계한다. 음성 트래픽은 RTP 패킷과 특정 포트 범위로 분류하고 DSCP EF(Expedited Forwarding)로 표시해 우선 대역폭과 낮은 지연을 보장한다. 비디오 컨퍼런싱은 특정 IP 대역과 포트를 기준으로 분류해 DSCP AF41(Assured Forwarding)로 마킹하고, 쉐이핑으로 버스트 트래픽을 관리한다.

업무 중요 애플리케이션은 특정 서버 IP와 애플리케이션 포트를 기준으로 분류하고 DSCP AF21/AF31을 적용해 보장 대역폭을 할당한다. 그 밖의 일반 인터넷 트래픽은 DSCP BE(Best Effort)로 마킹하고 폴리싱으로 대역폭을 제한할 수 있다.

ISP 환경에서는 SLA 기반 서비스를 제공하기 위해 비즈니스 고객의 계약된 CIR(Committed Information Rate)을 기준으로 쉐이핑을 적용하고, 초과 트래픽에는 폴리싱을 적용한다. DSCP 리마킹으로 네트워크 코어를 지나는 트래픽의 우선순위도 설정한다. 일반 가정용 인터넷에는 상·하향 속도 제한 폴리싱, P2P 트래픽 제한, 피크 시간대의 공정한 대역폭 분배가 활용된다.

장비 정책과 Linux tc로 구현하기

라우터와 스위치에서는 클래스와 정책 맵을 연결해 음성, 비디오, 데이터 트래픽별 처리 방식을 지정할 수 있다.

! Cisco 라우터 트래픽 컨디셔닝 구성 예시
class-map match-all VOICE
  match dscp ef
class-map match-all VIDEO
  match dscp af41
class-map match-all DATA
  match dscp af21

policy-map QOS-POLICY
  class VOICE
    priority 10000
  class VIDEO
    bandwidth 20000
    shape average 30000 3000 0
  class DATA
    bandwidth 10000
    police 15000 1500 exceed-action drop

interface GigabitEthernet0/0
  service-policy output QOS-POLICY

Linux에서는 tc(Traffic Control)로 HTB 큐잉 규칙과 포트 기반 분류 규칙을 구성할 수 있다.

# TC(Traffic Control)을 이용한 Linux 트래픽 쉐이핑 구성
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 20mbit ceil 30mbit
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 5mbit ceil 100mbit

# 분류 규칙 추가
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport 5060 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport 8000 0xffff flowid 1:20

정책은 관찰 결과에 맞춰 조정한다

트래픽 컨디셔닝을 적용한 뒤에는 대역폭 사용률, 패킷 손실률, 지연과 지터, 큐 길이 및 드롭 카운터를 지속적으로 확인해야 한다. 관찰한 트래픽 패턴을 바탕으로 정책을 조정하고, 버퍼 크기와 버스트 허용치, 분류 규칙을 다듬는다.

분류기·측정기·표시기·성형기와 폐기기의 조합은 네트워크 자원을 관리하면서 중요한 애플리케이션의 성능을 보장하는 수단이다. Policing의 엄격한 제한과 Shaping의 버퍼링 특성을 네트워크 요구사항에 맞춰 조합하면 혼잡을 줄이고 SLA 준수와 예측 가능한 네트워크 성능을 지원할 수 있다.

트래픽 컨디셔닝QoSDiffServ폴리싱쉐이핑