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

Алгоритмы работы очередей

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

Алгоритмы очередей на основе FIFO

Самый простой алгоритм прохождения очереди называется FIFO (first in, first out / первый пришёл, первый вышел). Первый пакет пришедший в очередь будет обработан первым. В MikroTik используются несколько алгоритмов, которые основаны на FIFO.

  • bfifo и pfifo – эти алгоритмы обслуживания очередей основаны на fifo. Они различаются только тем, что максимальный размер очереди bfifo измеряется в байтах, а pfifo в пакетах. Если очередь переполнится, то пакеты не смогут попасть в очередь и будут отброшены.
 bfifo и pfifo
bfifo и pfifo
  • mq pfifo – основан на алгоритме pfifo, но здесь несколько под-очередей для каждого потока. Такой тип алгоритма полезен в системах SMP с интерфейсами Ethernet, которые поддерживают несколько очередей. Системы SMP это многопроцессорные системы в которых все процессоры имеют прямой и равнозначный доступ к общей памяти. Так как процессоров много, то они могут разделить очередь на потоки и обслуживать каждый поток параллельно.
mq pfifo
mq pfifo
  • red (Random Early Drop) — основан на pfifo но со специальным алгоритмом отброса пакетов. Напомню что в pfifo отбрасываются лишь те пакеты, которые не поместились в очередь. Алгоритм отброса пакетов в reb следующий:
    • вначале вы задаете минимальный (red-min-threshold) и максимальный (red-max-threshold) пороги;
    • если средний размер очереди меньше минимального порога, то входящие пакеты не отбрасываются;
    • если средний размер очереди выше минимального порога, но меньше максимального, то пакеты отбрасываются в случайном порядке. При этом чем ближе средний размер очереди к максимальному порогу, тем больше пакетов будет отброшено;
    • и если средний размер очереди превысит максимальный порог, то все пакеты начнут отбрасываться.

Алгоритмы равномерного распределения трафика

  • pcq – алгоритм для динамического равномерного распределения трафика. Трафик разделяется основываясь на:
    • подсеть или адрес источника. Мы можем указать подсеть в качестве источника, тогда скорость будет поделена поровну между всеми клиентами подсети для исходящего трафика.
    • подсеть или адрес назначения. Мы можем указать адрес сайта в интернете и все клиенты идущие на этот сайт будут делить трафик поровну.
    • порт источника или порт назначения.
pcq
pcq

После того как очередь будет разделена на множество под-очередей, пакеты поочередно начнут обрабатываться. Вначале из первой очереди, затем из второй и так далее.

  • sfq – организация очередей стохастической справедливости. Обеспечивается с помощью алгоритмов хеширования и циклического перебора. Похож на pcq, но задать подсеть или порт в качестве основания для разделения трафика нельзя. Весь трафик делится на максимум 1024 под-очереди. Делится он основываясь сразу на все 4 параметра: адрес источникапорт источникаадрес назначения и порт назначения. Пакеты уходят из каждой под-очереди по порядку, несколько байт из первой очереди, затем из второй и так далее (также как и в pcq).

Работа без использования специальных алгоритмов

На маршрутизаторе MikroTik при выборе алгоритма можно указать «none«. Это означает что будет использована аппаратная очередь сетевого интерфейса, через который данные будут отправляться. Этот тип алгоритма не позволит вам использовать разные приоритеты трафика.

Настройка алгоритмов на MikroTik

Итак, мы познакомились с известными алгоритмами по обслуживанию очередей. На маршрутизаторах MikroTik мы можем использовать их все, и даже немного настраивать каждый алгоритм. Например мы можем указать максимальную длину очереди для pfifo и bfifo.

Из таких настроенных алгоритмом мы можем создавать разные типы очередей. Чтобы это сделать в меню WinBox выберите пункт Queues. И в открывшемся окне перейдите на вкладку «Queue Types«:

Здесь уже есть и пред-настроенные типы очередей, давайте пробежимся по ним:

  • Default. Основан на алгоритме pfifo и имеет размер очереди равный 50 пакетам.
  • Default-small. Отличается от Default только размером очереди, который равен 10 пакетам.
  • Ethernet-default. Этот тип очереди ничем не отличается от Default.
  • Hotspot-default. Основан на алгоритме sfq. Хеш-функция, а значит и под-очереди обновляются каждые 5 секунд. И за 1 цикл все под-очереди обрабатывают 1514 байт.
  • Multi-queue-ethernet-default. Этот тип очереди основан на mq pfifo и максимальный размер очереди равен 50 пакетам.
  • Only-hardware-queue. Используется только аппаратная очередь интерфейса.
  • Pcq-download-default. Основан на алгоритме pcq. Ограничений по скорости для каждой из под-очередей нет. Размер каждой под-очереди равен 50 КБ. Размер всей очереди равен 2000 КБ. Для разделения трафика используется адрес назначения (Dst. Adress).
  • Pcq-upload-default. Этот тип очереди такой-же как и pcq-download-default, но для разделения трафика используется адрес отправителя (Src. Adress).
  • Synchronous-default — основан на алгоритме red. Размер очереди равен 60 пакетам. Минимальный порог 10 пакетов, максимальный порог 50 пакетов. То-есть если средний размер очереди меньше 10 пакетов, то пакеты не отбрасываются. А если больше 10 но меньше 50 то отбрасываются в случайном порядке. А если больше 50 то отбрасываются все пакеты.
  • Wireless-default — этот алгоритм точно такой-же как и Hotspot-default.

Я вам рекомендую не изменять пред-настроенные типы очередей, а при необходимости создавать новые.


Другие статьи из этого цикла доступны по ссылкам:

Сводка
MikroTik. Алгоритмы обслуживания очередей
Имя статьи
MikroTik. Алгоритмы обслуживания очередей
Описание
Это вторая часть из цикла статей по очередям на MikroTik. Здесь мы рассмотрим алгоритмы, которые были придуманы для обслуживания очередей

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *