Дисциплины управления трафиком могут быть классовыми и безклассовыми.
Безклассовые дисциплины управляют потоком трафика на интерфейсе в целом. Большинство из них не предусматривает сортировки пакетов на какие-либо категории; отдельные дисциплины (pfifo_fast) имеют внутренние категории (полосы, bands), но они никак не настраиваются пользователем.
Классовые дисциплины предусматривают разделение трафика на несколько категорий (классов), каждая из которых обслуживается по определённым правилам. Каждый класс может содержать либо дисциплину для обслуживания пакетов, попадающих в этот класс, либо дочерние классы. Таким образом, система классов имеет древовидную структуру, имеющую одну корневую очередь (root) и неограниченное число ветвей и уровней. Число классов, их подчинённость, правила для отбора пакетов в каждый класс и дисциплина обслуживания каждого класса полностью настраиваются пользователем.
Для настройки механизмов QoS каждая дисциплина, или очередь, имеет идентификатор (handle), уникальный в пределах данного интерфейса. Если handle
не назначен пользователем явно, система генерирует некоторое значение самостоятельно. Идентификатором класса является его номер, который должен быть уникальным в пределах данной очереди. Для того, чтобы поместить пакет в определённый класс (например, в результате действия CLASSIFY
в IP-фильтрах), необходимо указать этот класс в формате очередь:класс
(иногда называемых также major:minor
). В этом случае пакет будет обработан согласно дисциплине, назначенной данному классу.
Вполне очевидно, что в классовой дисциплине следует определять не менее двух классов. Дисциплина, содержащая только один класс, не имеет смысла (по сравнению с аналогичной безклассовой), а не содержащая классов вообще — только создаёт напрасную нагрузку на процессор.
Номер очереди и номер класса в этой очереди задаются 16-битными числами (т.е. могут иметь значения от 1 до 65535). Теоретически они могут указываться совместно в виде одного 32-битного числа, но такой формат не рекомендуется и допустим не во всех полях интерфейса. Для безклассовых дисциплин идентификатор класса всегда указывается равным нулю, например, 12:0
.
Обратно в узел qdisc
...
© Network Systems Group 2015–2024 | Отдел документации |