Priority Queuing
Priority Queuing (우선순위 큐잉)
1. 개요
Priority Queuing(PQ, 우선순위 큐잉)은 네트워크 장비의 출력 인터페이스에서 패킷을 전송할 때, 트래픽의 중요도에 따라 우선순위를 부여하고 높은 순위의 패킷을 먼저 처리하는 QoS(Quality of Service, 서비스 품질) 스케줄링 메커니즘이다.
일반적인 FIFO(First-In, First-Out) 방식은 도착한 순서대로 패킷을 처리하므로, 대용량 데이터 전송(FTP 등)이 발생할 경우 실시간성이 중요한 음성이나 영상 패킷이 뒤로 밀려 지연(Latency) 및 지터(Jitter)가 발생하는 문제가 있다. PQ는 이를 해결하기 위해 트래픽을 여러 개의 논리적 큐로 분리하여 관리한다.
2. 동작 원리
2.1 패킷 분류 (Classification)
패킷이 큐에 진입하기 전, 장비는 패킷 헤더의 특정 필드를 확인하여 어떤 우선순위 큐에 배치할지 결정한다. 주요 분류 기준은 다음과 같다.
- CoS (Class of Service): OSI 2계층(데이터 링크 계층)의 802.1p 표준에서 정의하며, VLAN 태그 내의 3비트 필드를 사용하여 0~7단계의 우선순위를 부여한다. 주로 스위치 환경에서 사용된다.
- DSCP (Differentiated Services Code Point): OSI 3계층(네트워크 계층) IP 헤더의 ToS(Type of Service) 필드 중 6비트를 사용하여 총 64단계의 세분화된 우선순위를 부여한다. 라우터 간 홉-바이-홉(Hop-by-Hop) 전송 시 유지되므로 더 정밀한 제어가 가능하다.
2.2 스케줄링 메커니즘
PQ는 엄격한 우선순위(Strict Priority) 방식을 따른다. 스케줄러는 항상 가장 높은 우선순위의 큐부터 확인하며, 해당 큐에 패킷이 하나라도 남아 있다면 하위 큐의 패킷은 절대 처리되지 않는다.
이때 PQ는 비선점형(Non-preemptive) 특성을 가진다. 즉, 현재 인터페이스를 통해 전송 중인 패킷을 중간에 강제로 중단시키고 새 패킷을 보내는 것이 아니라, 현재 전송 중인 패킷의 전송이 완전히 끝난 후 다음으로 전송할 패킷을 선택하는 시점에 최상위 큐를 확인하여 결정한다.
[우선순위 등급별 처리 예시]
| 큐 등급 | 트래픽 유형 | 매칭 기준 (예시) | 처리 우선순위 | 비고 |
|---|---|---|---|---|
| High | VoIP, 제어 신호 | DSCP EF (Expedited Forwarding) | 1순위 | 최우선 처리 |
| Medium | 화상 회의, 스트리밍 | DSCP AF (Assured Forwarding) | 2순위 | High 큐가 비었을 때 처리 |
| Normal | 일반 웹 트래픽 (HTTP) | DSCP Default | 3순위 | Medium 큐가 비었을 때 처리 |
| Low | 백업, FTP, 이메일 | DSCP CS1 (Bulk) | 4순위 | 모든 상위 큐가 비었을 때 처리 |
2.3 큐잉 동작 과정 (Sequence)
sequenceDiagram
participant P as Incoming Packet
participant C as Classifier (분류기)
participant Q as Priority Queues (High/Med/Low)
participant S as Scheduler (스케줄러)
participant I as Output Interface
P->>C: 패킷 도착 (DSCP/CoS 확인)
C->>Q: 우선순위에 맞는 큐에 할당
loop Scheduling Cycle
S->>Q: High 큐에 패킷이 있는가?
alt Yes
Q->>S: High 패킷 전달
S->>I: 패킷 전송
else No
S->>Q: Medium 큐에 패킷이 있는가?
alt Yes
Q->>S: Medium 패킷 전달
S->>I: 패킷 전송
else No
S->>Q: Low 큐 확인 및 전송
end
end
end
3. 주요 특징 및 장단점
3.1 장점
- 지연 시간 최소화: 실시간 트래픽(Voice, Video)에 대해 최단 경로의 처리 시간을 보장하여 끊김 없는 통신을 가능하게 한다.
- 설정의 단순성: 우선순위 계층만 정의하면 되므로 구현 및 관리가 직관적이다.
3.2 단점 및 위험성
- 기아 현상 (Starvation): 상위 우선순위 큐에 트래픽이 지속적으로 유입될 경우, 하위 큐의 패킷은 전송 기회를 얻지 못하고 큐에 쌓이다가 결국 버려지는(Drop) 현상이 발생한다.
- 대역폭 불균형: 특정 서비스가 전체 대역폭을 독점할 수 있어 네트워크 자원의 효율적 분배가 어렵다.
[기아 현상(Starvation) 묘사]
graph TD
subgraph Traffic_Input [Traffic Inflow]
H_In[High Priority Traffic: Continuous] --> H_Queue
M_In[Medium Priority Traffic] --> M_Queue
L_In[Low Priority Traffic] --> L_Queue
end
subgraph Scheduler [Strict Priority Scheduler]
H_Queue -->|Always Checked First| Out[Output Interface]
M_Queue -.->|Wait until High is Empty| Out
L_Queue -.->|Wait until High & Med are Empty| Out
end
H_Queue -->|Processed| Out
M_Queue -->|Accumulated/Dropped| Drop[Packet Drop]
L_Queue -->|Accumulated/Dropped| Drop
style H_Queue fill:#f96,stroke:#333
style M_Queue fill:#fff,stroke:#333
style L_Queue fill:#fff,stroke:#333
style Drop fill:#ffcccc,stroke:#f00
4. 기아 현상 해결을 위한 보완책
PQ의 치명적인 단점인 기아 현상을 방지하기 위해 실제 환경에서는 다음과 같은 보완 기법을 함께 사용한다.
- 폴리싱 (Policing): 고우선순위 큐에 진입하는 트래픽의 양을 제한(Rate Limit)한다. 예를 들어, VoIP 트래픽이 전체 대역폭의 30%를 초과하면 강제로 드롭하거나 우선순위를 낮추어 하위 큐의 전송 기회를 보장한다.
- 쉐이핑 (Shaping): 트래픽의 전송 속도를 일정하게 유지하여 일시적인 버스트(Burst) 트래픽이 하위 큐를 완전히 차단하는 것을 방지한다.
- LLQ (Low Latency Queuing) 도입: $\text{LLQ} = \text{PQ} + \text{CBWFQ}$ 형태로 정의된다. 특정 큐(Priority Queue)에만 PQ를 적용하고 나머지는 가중치 기반(CBWFQ)으로 처리한다. 특히 LLQ의 Priority Queue에는 'Implicit Policing(암묵적 폴리싱)'이 포함되어 있어, 우선순위 트래픽이 설정된 대역폭 상한선을 초과할 경우 이를 제한함으로써 하위 큐의 기아 현상을 원천적으로 방지한다.
5. 설정 및 구현 예시 (Cisco IOS 기준)
네트워크 장비에서 PQ를 구현하기 위해서는 Class-Map으로 트래픽을 분류하고, Policy-Map에서 우선순위를 지정하는 논리적 단계를 거친다.
[설정 단계]
1. 트래픽 분류: Class-Map 생성
2. 정책 정의: Policy-Map 생성 및 priority 지정
3. 인터페이스 적용: Service-policy 적용
[CLI 설정 스크립트 예시]
# 1. 트래픽 분류: DSCP EF(음성)와 AF41(비디오) 분류
class-map match-all VOICE-TRAFFIC
match dscp ef
class-map match-all VIDEO-TRAFFIC
match dscp af41
# 2. 정책 정의: 우선순위 및 대역폭 할당
policy-map QOS-POLICY
class VOICE-TRAFFIC
priority 256 # PQ 적용, 최대 256kbps까지 우선 처리 및 폴리싱
class VIDEO-TRAFFIC
bandwidth 512 # 최소 대역폭 보장 (CBWFQ 방식)
class class-default
fair-queue # 나머지 트래픽은 공평하게 분배
# 3. 인터페이스 적용
interface GigabitEthernet0/1
service-policy output QOS-POLICY
6. 다른 큐잉 알고리즘과의 비교
6.1 일반 큐잉 알고리즘 비교
| 비교 항목 | Priority Queuing (PQ) | Weighted Fair Queuing (WFQ) | Class-Based WFQ (CBWFQ) |
|---|---|---|---|
| 처리 방식 | 엄격한 우선순위 기반 | 흐름(Flow)별 가중치 기반 | 클래스별 대역폭 할당 기반 |
| 지연 시간 | 최상위 큐에 대해 매우 낮음 | 평균적으로 낮음 | 클래스 설정에 따라 다름 |
| 기아 현상 | 발생 가능성 매우 높음 | 거의 발생하지 않음 | 발생하지 않음 |
| 주요 목적 | 실시간 트래픽 절대 보장 | 일반 트래픽의 공평한 분배 | 서비스별 대역폭 차등 보장 |
| 복잡도 | 낮음 | 낮음 (자동 설정) | 중간 (클래스 정의 필요) |
6.2 LLQ vs CBWFQ 비교
| 비교 항목 | CBWFQ | LLQ (Low Latency Queuing) |
|---|---|---|
| 핵심 메커니즘 | 가중치 기반 대역폭 보장 | PQ(Strict Priority) + CBWFQ |
| 실시간성 보장 | 보장하지 않음 (지연 발생 가능) | 최우선 큐를 통해 지연 최소화 보장 |
| 트래픽 제어 | 설정된 대역폭 내에서 처리 | Priority 큐에 대해 암묵적 폴리싱 수행 |
| 적합한 트래픽 | HTTP, FTP, 일반 데이터 | VoIP, 화상회의 등 실시간 트래픽 |
7. 활용 사례
- VoIP (Internet Protocol Telephony): 음성 패킷은 매우 작은 크기지만 지연에 극도로 민감하다. PQ를 통해 음성 패킷을 최우선 처리함으로써 통화 품질 저하(끊김, 밀림)를 방지한다.
- 화상 회의 (Video Conferencing): 실시간 영상 스트리밍은 대역폭 요구량이 많으면서도 지연 시간이 짧아야 한다. PQ 또는 LLQ를 통해 고우선순위를 부여하여 끊김 없는 화면을 제공한다.
- 기업 핵심 업무 시스템 (Mission-Critical Apps): ERP, 금융 거래 시스템 등 비즈니스에 치명적인 영향을 주는 트래픽을 일반 인터넷 서핑 트래픽보다 우선 처리하여 업무 연속성을 보장한다.
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.