가중 공정 대기열 및 가중 무작위 조기 탐지는 어떤 관련이 있습니까?


10

QoS 시스템의 작동 방식을 이해하려고하는데 WFQ와 WRED가 정확히 어떻게 상호 작용하는지 잘 모르겠습니다.

처음에는 WFQ가 큐잉 메커니즘이고 WRED가 혼잡 방지 메커니즘이라고 생각했습니다. WFQ는 대기열에서 패킷을 예약해야하며 대기열이 가득 차면 WRED에서 삭제합니다. 예를 들어 L3 스위치에서 QoS를 설정하는 경우 대기열 메커니즘과 정체 방지 메커니즘을 설정하여 이론적으로 WFQ와 WRD를 함께 사용할 수 있습니다. 예를 들어,이 문서는 내가 그런 식으로 설정 될 것을 암시하는 것 같습니다. 다른 시스코 문서에 따르면 독자적으로 사용할 수 있다고합니다.

그런 다음 그들이 어떻게 인터넷을 검색하고 시작했는지에 대해 더 배우고 싶었습니다. 결과적으로, 나는 그들이 무엇이고 어떻게 작동하는지 전혀 모른다.

일부 사이트 (적어도 내용에 대한 나의 이해)는 패킷 스케줄링 알고리즘과 혼잡 방지 알고리즘이 기본적으로 동일하다고 주장합니다. 예를 들어 Wikipedia 기사, 그들은 모두 같은 그룹에 배치됩니다. 일부 임의 기사에서는 WFQ XOR WRED를 사용할 수 있다고 언급했습니다.

WFQ와 WRED의 관계는 무엇입니까? 가능하면 둘 중 하나를 언제 사용합니까?


1
wfq와 wred는 같은 영어 단어를 사용하는 것 외에는 서로 관계가 없습니다.
Mike Pennington

1
"그런 다음 그들이 어떻게 인터넷을 검색하고 시작했는지에 대해 더 많이 배우고 싶었습니다. 결과적으로, 그들이 무엇인지, 어떻게 작동하는지 전혀 모릅니다." 이것은 QoS를 이해하려는 경험의 99.98 %를 설명합니다.
Nanban Jim

답변:


10

WFQ (Weighted Fair Queuing)는 이름에 큐잉 알고리즘이 암시되어 있습니다. 인터페이스에 정체가있을 때 큐가 사용됩니다. 이것은 일반적으로 전송 링 (TX-Ring)이 가득 찼음을 통해 감지됩니다. 이는 인터페이스가 패킷을 전송하는 중입니다. 인터페이스에 정체가 없으면 큐가 발생하지 않습니다. 어떤 경우에는 TX 링의 크기를 조작 할 수 있습니다. 작은 TX 링은 소프트웨어 대기열에 어떤 패킷이 먼저 전송되는지에 대한 더 많은 전력을 제공하지만 그다지 효과적이지 않습니다. TX 링이 너무 크면 소프트웨어 대기열이 거의 쓸모없고 중요한 패킷에 대한 대기 시간과 지터가 높아집니다.

기본 대기열 알고리즘은 일반적으로 선입 선출 (FIFO)입니다. 이는 패킷이 인터페이스의 입력에 도착하는 순서대로 패킷이 전달됨을 의미합니다. 일부 패킷의 우선 순위를 지정해야하므로 일반적으로 바람직하지 않습니다.

고객이 인터넷 서비스 제공 업체 (ISP)로부터 서비스를 서브 레이트로 구매하는 것이 일반적입니다. 즉, 고객은 50Mbit / s 서비스를 구매하지만 물리적 인터페이스는 100Mbit / s로 실행됩니다. 이 경우 정체는 없지만 ISP는 고객의 트래픽 양을 제한합니다. 이러한 경우 인공 혼잡을 도입하기 위해 셰이퍼를 적용 할 수 있습니다.

따라서 정체가 있으므로 큐잉 알고리즘을 적용 할 수 있습니다. 큐잉 알고리즘은 추가 대역폭을 제공하지 않으며 어떤 패킷이 우리에게 더 중요한지를 결정할 수 있습니다. WFQ는 여러 매개 변수를 사용하고이를 기반으로 결정하는 알고리즘입니다. 이 알고리즘은 매우 복잡하며 가중치 (IP Precedence), 패킷 크기 및 스케줄링 시간을 매개 변수로 사용합니다. INE의 매우 자세한 설명이 여기에 있습니다. WFQ는 SSH, Telnet, 음성과 같은 작은 크기의 흐름에 적절한 대역폭을 제공하므로 파일 전송이 모든 대역폭을 훔치지 않기 때문에 대기열을 너무 많이 사용하지 않으려는 경우 좋은 선택입니다.

WRED (Weighted Random Early Detection)는 혼잡 방지 메커니즘입니다. WRED는 우선 순위 값에 따라 큐의 크기를 측정하고 큐가 최소 임계 값과 최대 임계 값 사이에 있으면 패킷 삭제를 시작합니다. 구성은 모든 N 패킷 중 1 개가 삭제되도록 결정합니다. WRED는 TCP 동기화 및 TCP 기아를 방지합니다. TCP가 패킷을 잃으면 느리게 시작하고 모든 TCP 세션이 동시에 패킷을 잃으면 동기화 될 수 있으며 다음과 같은 그래프를 제공합니다.

TCP 동기화

WRED가 구성되어 있지 않으면 그래프가 전체 폭발로 이동 한 다음 무음, 전체 폭발로 이동합니다. WRED는보다 평균적인 전송 속도를 제공합니다. UDP는 승인 메커니즘과 TCP처럼 구현 된 슬라이딩 윈도우가 없기 때문에 패킷을 삭제해도 영향을받지 않습니다. 따라서 WRED는 SNMP, DNS 또는 기타 UDP 기반 프로토콜을 처리하는 클래스와 같은 UDP 기반 클래스에서 구현되어서는 안됩니다.

WFQ와 WRED는 모두 함께 배포 할 수 있으며 배포해야합니다.


2
안녕 다니엘, 좋은 대답입니다. WQQ (WQF 아님)가 아니어야합니까? 또한 WRED는 UDP에 효과적이지 않으며 UDP 음성과 같은 UDP 기반 클래스에서는 사용하지 않아야합니다.
Mike Pennington

고마워 마이크. 왜 WFQ를 잘못 입력했는지 확실하지 않은 경우 편집했습니다. UDP에 대해서도 간략히 기록했습니다. 당신은 항상 좋은 게시물을 제공합니다.
Daniel Dib

8

우선, 인터넷에서 읽는 모든 것을 믿지 마십시오. ;-)

때로는 알고리즘 (또는 물리적으로 구현되는 방식)이 이론적 범주에 깔끔하게 맞지 않습니다. 당신이 부르는 것은 그것이하는 것을 이해하는 것보다 덜 중요합니다.

WFQ (또는 다른 스케줄링 알고리즘)의 요점은 다양한 흐름간에 제한된 링크 대역폭을 공유하는 것입니다. WFQ는 각 흐름에 비례하여 대역폭을 할당하려고합니다. CBWFQ는 각 "클래스"와 동일합니다. 무제한 대기열과 무제한 메모리로 완벽한 세상에서 필요한 모든 것-대역폭을 공유하고 모든 사람이 행복합니다.

그러나 장치에는 무제한 대기열과 메모리가 없기 때문에 일부 "단축키"를 만들어야합니다. 대기열 크기가 제한되어 있기 때문에 대기열이 가득 차서 테일 드롭 및 트래픽 동기화가 발생할 위험이 있습니다. 본질적으로 대기열이 넘치면 더 이상 대역폭을 제어하지 않습니다.

대기열이 넘치지 않도록 임의 조기 감지를 사용합니다. 이 알고리즘은 대기열이 얼마나 꽉 찼는 지 (깊이)에 따라 대기열에서 임의로 패킷을 삭제합니다. 대기열이 많을수록 더 많은 패킷이 삭제됩니다. 예약 알고리즘이 작동 할 수 있도록 큐가 오버플로되지 않도록하는 것이 목표입니다.

그런 다음 일부 밝은 Cisco 엔지니어는 더 적은 수의 대기열 (더 간단한 하드웨어)을 사용하고 서로 다른 대기열 깊이에서 서로 다른 종류의 트래픽을 무작위로 떨어 뜨릴 수 있음을 알아 냈습니다. WRED는 트래픽 유형에 따라 다른 깊이에서 큐에서 트래픽을 삭제합니다. 트래픽은 트래픽의 종류에 따라 다릅니다을 삭제 깊이 이후 혼잡 회피 메커니즘을 WRED 호출 할 수 있지만, 효과는 다른 종류의 따라서 더 적은 대역폭의 큐에 공간을 적게받을 수 있도록합니다. 따라서 스케줄링 알고리즘의 역할도합니다. 당신은 po-tay-to라고하고 po-tah-toe라고 말합니다.

또 다른 차이점 : FQ와 WFQ는 기본적으로 바이트 수를 계산하므로 모든 유형의 트래픽에서 작동합니다. RED 및 WRED는 TCP의 경우에만 작동합니다. TCP의 흐름 제어 메커니즘에 의존하기 때문에 트래픽 속도가 느려지고 대기열이 오버플로되지 않도록합니다.

(참고 : 설명을 위해 우선 순위 대기열과 LLQ를 무시하고 있습니다. 또 다른 대답입니다).

마이크가 말한 모든 것에 동의합니다.


1
훌륭한 답변과 해설.
generalnetworkerror

-1

다음은 CBWFQ 및 WRED의 예입니다.

정책 맵 OUT

음성
우선 순위 퍼센트 20

비디오
대역폭 백분율 30

클래스 P1
대역폭 퍼센트 10
랜덤 검출 dscp 기반
랜덤 검출 dscp af31 26 40 10

클래스 P2
대역폭 퍼센트 15
랜덤 검출 dscp 기반
랜덤 검출 dscp af21 24 40 10

class-default
페어 큐
랜덤 탐지 dscp 기반


슬프게도이 예는 그의 질문에 대답하지 않습니다. 방법과 동일하지 않을 경우
마이크 페닝 턴

관점에서, 이것은 자동차 경주 운전자에게 터보 차저와 기어비가 어떻게 연관되어 있는지 묻고, 한마디도하지 않고 경주 트랙을 운전하게하는 것과 같습니다. 상호 작용 (및 / 또는 그 부족)을 이미 이해했다면 괜찮지 만 ... 질문을하지 않았을 것입니다.
Nanban Jim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.