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 세션이 동시에 패킷을 잃으면 동기화 될 수 있으며 다음과 같은 그래프를 제공합니다.
WRED가 구성되어 있지 않으면 그래프가 전체 폭발로 이동 한 다음 무음, 전체 폭발로 이동합니다. WRED는보다 평균적인 전송 속도를 제공합니다. UDP는 승인 메커니즘과 TCP처럼 구현 된 슬라이딩 윈도우가 없기 때문에 패킷을 삭제해도 영향을받지 않습니다. 따라서 WRED는 SNMP, DNS 또는 기타 UDP 기반 프로토콜을 처리하는 클래스와 같은 UDP 기반 클래스에서 구현되어서는 안됩니다.
WFQ와 WRED는 모두 함께 배포 할 수 있으며 배포해야합니다.