Короткий итог про механизмы диспетчеризации

Десятилетиями человечество пыталось решить сложнейшую проблему обеспечения нужного уровня сервиса и честного распределения полосы. Основным инструментом являлись очереди, вопрос был только в том, как из очередей забирать пакеты, пытаясь их запихнуть в один интерфейс.

Начиная с FIFO, оно изобрело PQ — голос смог сосуществовать с сёрфингом, но не было речи про гарантию полосы. Появились несколько монструозные FQ, WFQ, работавшие если не per-flow, то почти так. CB-WFQ пришёл к классовому обществу, но не стал от этого проще. Как альтернатива ему развивался RR. Он превратился в WRR, а затем и в DWRR. И в глубине каждого из диспетчеров живёт FIFO.

Однако, как видите, нет некоего универсального диспетчера, который все классы обрабатывал так, как они того требуют. Это всегда комбинация диспетчеров, один из которых решает задачу обеспечения задержек, джиттера и отсутствия потерь, а другой распределения полосы.

CBWFQ+LLQ или PB-WDRR или WDRR+PQ. На реальном оборудовании можно указать какие именно очереди каким диспетчером обрабатывать. CBWFQ, WDRR и их производные — это сегодняшние фавориты. PQ, FQ, WFQ, RR, WRR — не скорбим и не помним (если, конечно, не готовимся к CCIE © Клиппер).

Итак, гарантировать скорость диспетчеры умеют, но как же ограничить её сверху?