
필수조건 및 중요
- H/W Queue 가 Full -> S/W Queue(QoS) -> H/W Queue(TxQ)
- H/W Queue 가 Full이 되지 않으면 H/W Queue(TxQ)
Weighted Fair Queuing (WFQ)는 네트워크에서 다양한 트래픽 흐름을 공평하게 처리하기 위한 패킷 스케줄링 알고리즘입니다. 여기서 Finish Time은 패킷 전송 순서를 결정하는 중요한 요소입니다.
WFQ에서 Finish Time이란?
WFQ는 각 패킷에 Finish Time (종료 시간)을 할당하여, 네트워크 링크에서 패킷이 언제 전송될지 결정합니다. 이 시간은 패킷의 도착 시간, 길이, 그리고 그 패킷이 속한 흐름의 가중치에 따라 계산됩니다. 가중치가 높을수록 우선순위가 높으며, Finish Time이 작아져 패킷이 먼저 전송됩니다.
Finish Time 계산 방법:
- Start Time (시작 시간): 새로 들어온 패킷의 시작 시간은 다음 중 하나입니다:
- 패킷이 도착했을 때의 가상 시간 (virtual time), 또는
- 이전에 도착한 같은 흐름의 마지막 패킷의 Finish Time.
- Finish Time 계산 공식:
- 패킷 길이는 전송할 패킷의 크기를 의미합니다.
- 가중치는 해당 흐름이 얼마나 높은 우선순위를 가지는지를 나타냅니다. 높은 가중치는 작은 Finish Time을 만들어 먼저 전송되게 합니다.
예시:
만약 두 개의 흐름이 있다고 가정하면, 각각의 패킷이 도착할 때 Start Time과 Finish Time이 계산되고, Finish Time이 더 작은 패킷이 먼저 전송됩니다. 이로써, 네트워크 대역폭이 각 흐름에 할당된 가중치에 따라 공정하게 분배됩니다.
요약:
WFQ의 Finish Time은 패킷의 스케줄링을 정의하는 핵심 개념으로, 각 패킷이 언제 전송될지를 결정합니다. WFQ는 이를 통해 여러 트래픽 흐름에 공정하게 대역폭을 배분하면서도 우선순위가 높은 트래픽을 먼저 처리할 수 있게 합니다.
- HQO : 전체 Queue에 들어갈수 있는 Packet의 갯수
- Finish time을 계산을하여
- IP Precedence 가 높아질수록 Finish Time이 줄어든다.
- LLQ : PQ + CBWFQ
-> PQ가 처리되지 전까지 CBWFQ가 적용되지 않는다.
하나의 Class당 하나의 Queue를 만든다.
-> 같은 Class는 같은 Queue에 구분한다.
-> Class Queue안에서 WFQ를 적용할수 있다.
Class에 할당하는 속도 = 최저보장 속도 (모든 Bandwidth에 따른 Traffic이 흐를때)
-> Class에서의 Bandwidth는 속도 개념이라기 보다는 Weights(가중치)로 생각해야한다.
-> bandwidth 수치가 아닌 Bandwidth에 따른 비율로 가중치가 구분된다.
CBWFQ의 계산식은 공개되어 있지 않음
-> 만일 전체 Bandwidth에 따른 최저보장 속도로 구분하려면 Percentage of bandwidth를 설정해야한다.
remaining available bandwidth
-> 사용할수 있는 Size에 따라 가중치 %를 구분
가중치 기준값
1. bandwidth
2. percentage of bandwidth
3. remaining available bandwidth
QoS가 적용되지 않은 interface에 25%를 기본적으로 할당
우선순위가 낮은 Traffic의 전송속도를 조정하기 위해서
TCP
모든 TCP 가 Synchronization 하면서 Bandwidth가 WindowSize 감소에 따라 하락하고 SlowStart로 천천히 오르게 된다. 이 과정을 반복하면서 Loss가 발생한다.
우선순위가 낮은것의 Minimum or Maximu Threshold의 Average Queue Size 낮추거나 Maximum drop Probability를 높여 줄인다.