0930_Queuing

주영민·2024년 9월 30일
post-thumbnail

Congestion Management

  • Congestion : H/W Queue가 Full 되었을때
  • queue Full -> loss -> 재전송

Queuing Algorithm

  • FIFO : First In First Out
  • PQ : Prioiry Queuing
  • WRR : Wiegt Round Robin (L2 Switch)
  • DRR : (L2 Switch)
  • CQ : Custom Queuing 예전 방식, 현재는 사용하지 않음
  • WFQ : 저속(전용회선E1) 통신시 자동으로 사용하는 기술
  • CMWFQ
  • LLQ : PQ+CMWFQ

H/W Queue는 항상 FIFO 방식으로 동작한다.

하나의 Queue도 항상 FIFO 방식으로 동작한다.

필수조건 및 중요

  • H/W Queue 가 Full -> S/W Queue(QoS) -> H/W Queue(TxQ)
  • H/W Queue 가 Full이 되지 않으면 H/W Queue(TxQ)
BGP의 경우 Packet의 손실을 방지하기 위해 H/W Queue를 두배정도 늘려 사용한다.

WFQ (Weighted Fair Queuing)

  • Finish Time 을 지속적으로 계산한다.
  • High-volume Conversations(큰 트레픽)을 대비하기 위해 만들어진
  • 하나의 플로우에 하나의 큐를 할당하고 해당 큐에 가중치를 조정하여 IP Precedence가 높은 값을 우선시하여 보낸다.
  • 저속(E1)에서만 적용이 가능하다.
  • 할당되는 Queue는 속도에 따라서 최대 Queue의 갯수가 정해져 있다.
  • Modified tail drop
  • 하나의 session이 하나의 Queue에 들어간다.
  • WFQ 는 Drop에 관한 부분이 중요하다.
  • CDT (Congestion dscard thresholod )
Serialization Delay : 시리얼라이즈 딜레이(Serialization Delay)는 데이터를 전송할 때 패킷을 순차적으로 처리하는 데 걸리는 시간

Weighted Fair Queuing (WFQ)는 네트워크에서 다양한 트래픽 흐름을 공평하게 처리하기 위한 패킷 스케줄링 알고리즘입니다. 여기서 Finish Time은 패킷 전송 순서를 결정하는 중요한 요소입니다.

WFQ에서 Finish Time이란?

WFQ는 각 패킷에 Finish Time (종료 시간)을 할당하여, 네트워크 링크에서 패킷이 언제 전송될지 결정합니다. 이 시간은 패킷의 도착 시간, 길이, 그리고 그 패킷이 속한 흐름의 가중치에 따라 계산됩니다. 가중치가 높을수록 우선순위가 높으며, Finish Time이 작아져 패킷이 먼저 전송됩니다.

Finish Time 계산 방법:

  1. Start Time (시작 시간): 새로 들어온 패킷의 시작 시간은 다음 중 하나입니다:
    • 패킷이 도착했을 때의 가상 시간 (virtual time), 또는
    • 이전에 도착한 같은 흐름의 마지막 패킷의 Finish Time.
  2. Finish Time 계산 공식:
    • 패킷 길이는 전송할 패킷의 크기를 의미합니다.
    • 가중치는 해당 흐름이 얼마나 높은 우선순위를 가지는지를 나타냅니다. 높은 가중치는 작은 Finish Time을 만들어 먼저 전송되게 합니다.

예시:

만약 두 개의 흐름이 있다고 가정하면, 각각의 패킷이 도착할 때 Start TimeFinish Time이 계산되고, Finish Time이 더 작은 패킷이 먼저 전송됩니다. 이로써, 네트워크 대역폭이 각 흐름에 할당된 가중치에 따라 공정하게 분배됩니다.

요약:

WFQ의 Finish Time은 패킷의 스케줄링을 정의하는 핵심 개념으로, 각 패킷이 언제 전송될지를 결정합니다. WFQ는 이를 통해 여러 트래픽 흐름에 공정하게 대역폭을 배분하면서도 우선순위가 높은 트래픽을 먼저 처리할 수 있게 합니다.

  • HQO : 전체 Queue에 들어갈수 있는 Packet의 갯수
  • Finish time을 계산을하여
  • IP Precedence 가 높아질수록 Finish Time이 줄어든다.
  • Worst Finish Time (WFT)
Drop을 적게 시키기위해 RSVP Queue도 따로 존재할수 있다.

CBWFQ & LLQ

  • LLQ : PQ + CBWFQ
    -> PQ가 처리되지 전까지 CBWFQ가 적용되지 않는다.

CBWFQ(Class base Weight Fair Queue)

  • 하나의 Class당 하나의 Queue를 만든다.
    -> 같은 Class는 같은 Queue에 구분한다.
    -> Class Queue안에서 WFQ를 적용할수 있다.

  • Class에 할당하는 속도 = 최저보장 속도 (모든 Bandwidth에 따른 Traffic이 흐를때)
    -> Class에서의 Bandwidth는 속도 개념이라기 보다는 Weights(가중치)로 생각해야한다.
    -> bandwidth 수치가 아닌 Bandwidth에 따른 비율로 가중치가 구분된다.

  • CBWFQ의 계산식은 공개되어 있지 않음
    -> 만일 전체 Bandwidth에 따른 최저보장 속도로 구분하려면 Percentage of bandwidth를 설정해야한다.

  • remaining available bandwidth
    -> 사용할수 있는 Size에 따라 가중치 %를 구분

다만 Weight(가중치 기준값)는 혼합해서 사용할순 없다.

가중치 기준값
1. bandwidth
2. percentage of bandwidth
3. remaining available bandwidth

75 Percent Rule

QoS가 적용되지 않은 interface에 25%를 기본적으로 할당

LLQ

  • 가장 큰 장점은 직접 Prioity값을 높은 Class는 최소한의 Bandwidth를 보장 할 수 있다.
  • 지연율, jiter , packet loss를 최소화 하기 위해 사용한다.

Congestion Avoidance

  • 우선순위가 낮은 Traffic의 전송속도를 조정하기 위해서

  • TCP

  • 모든 TCP 가 Synchronization 하면서 Bandwidth가 WindowSize 감소에 따라 하락하고 SlowStart로 천천히 오르게 된다. 이 과정을 반복하면서 Loss가 발생한다.

RED(Random Early Detection)

  • Queue에 들어가는 Packet의 숫자가 커질수록 Drop율이 올라간다.
  • no drop : Minimum Threshold
  • random drop : Maximum threshold
  • tail drop : Maximum Drop Probability

우선순위가 낮은것의 Minimum or Maximu Threshold의 Average Queue Size 낮추거나 Maximum drop Probability를 높여 줄인다.

WRED(Weighted Random Early Detection)

  • 동작원리 다시 한번 확인 할것

ECN(Explicit Congestion Notification)

  • UDP에서는 사용할수 없다.

traffic policing & Shaping

  • Single Token Bucket
  • Policing
  • Shaping
  • Policing 과 Shaping // BC , BE 개념
  • Policong 은 BE에서 추가분을 임대해온다.
  • Shaping BE(buffer)
  • Shaping 은 보장 값의 이상으로 초과 할수 없다.
  • inbound 에서는 Policing , outbound 는 Shaping
    -> 내부정보 exceed Permmit 외부정보 exceed deny
profile
시스코아카데미_주영민

0개의 댓글