Jump to content

Сетевой планировщик

(Перенаправлено из дисциплины «Очередь» )
Пакеты располагаются в очереди в структуре данных FIFO (первым пришел — первым обслужен).

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

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

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

Терминология и обязанности

[ редактировать ]

Сетевой планировщик может нести ответственность за реализацию конкретных инициатив по управлению сетевым трафиком . Контроль сетевого трафика — это общий термин для всех мер, направленных на снижение перегрузки сети , задержек и потерь пакетов. В частности, активное управление очередью (AQM) — это выборочное удаление сетевых пакетов, находящихся в очереди, для достижения более широкой цели — предотвращения чрезмерной перегрузки сети. Планировщик должен выбрать, какие пакеты отбрасывать. Формирование трафика сглаживает требования к полосе пропускания потоков трафика за счет задержки пакетов передачи, когда они ставятся в очередь пакетами. Планировщик определяет время для передаваемых пакетов. Качество обслуживания (QoS) — это приоритезация трафика на основе класса обслуживания ( Дифференцированные услуги ) или зарезервированного соединения ( Интегрированные услуги ).

Алгоритмы

[ редактировать ]

С течением времени было разработано множество дисциплин сетевых очередей. Каждый из них обеспечивает определенное переупорядочение или удаление сетевых пакетов внутри различных буферов передачи или приема . [1] Дисциплины организации очередей обычно используются как попытки компенсировать различные сетевые условия, например, уменьшить задержку для определенных классов сетевых пакетов, и обычно используются как часть мер QoS. [2] [3] [4]

Классовые дисциплины очередей позволяют создавать классы, которые работают как ветви дерева. Затем можно установить правила для фильтрации пакетов по каждому классу. Каждому классу может быть назначена другая классовая или бесклассовая дисциплина массового обслуживания. Бесклассовые дисциплины массового обслуживания не позволяют добавлять к ним дополнительные дисциплины массового обслуживания. [5]

Примеры алгоритмов, подходящих для управления сетевым трафиком, включают:

Алгоритмы организации очередей
Алгоритм Акроним Тип Аппаратная поддержка
Общий алгоритм скорости передачи данных ГКРА
ВЫБЕРИТЕ и убейте для не отвечающих потоков Душить Бесклассовый
Контролируемая задержка КоДел Бесклассовый
Распространенные приложения продолжают улучшаться [6] ТОРТ
Сначала самое раннее время передачи ETF Бесклассовый Да
Первым пришел, первым вышел ФИФО Бесклассовый
Честная очередь часто задаваемые вопросы Бесклассовый
Задержка, контролируемая справедливой организацией очереди FQ-CoDel Бесклассовый
Улучшение организации очереди потоков с помощью пропорционального интегрального контроллера FQ-ПИРОГ Бесклассовый
Обобщенное случайное раннее обнаружение ОЦЕНКА Бесклассовый
Фильтр тяжелых нападающих [7] ХХФ Бесклассовый
Приоритет нескольких очередей MQ-PRIO Бесклассовый Да
Много раз МУЛЬТИК Бесклассовый Да
Сетевой эмулятор [8] Я НЕ Бесклассовый
Пропорциональный интегральный контроллер с расширенными возможностями [9] В Бесклассовый
Случайное раннее обнаружение КРАСНЫЙ Бесклассовый
Стохастическая ярмарка Синий СФБ Бесклассовый
Стохастическая справедливость в очередях СФК Бесклассовый
Фильтр сегмента токенов ТБФ Бесклассовый
Очередь на основе классов CBQ Классный
Кредитный формирователь CBS Классный Да
Круговой цикл дефицита [10] СРБ Классный
Расширенный выбор коробки передач ETS Классный
Иерархическая кривая справедливого обслуживания ВФСК Классный
Иерархический сегмент токенов [11] ХТБ Классный
Приоритет ПРИО Классный
Быстрая справедливая очередь [12] QFQ Классный
Формирователь приоритетов с учетом времени ТАПРИО Классный Да

Некоторые из вышеперечисленных были реализованы в виде модулей ядра Linux. [13] [14] и находятся в свободном доступе .

Раздувание буфера

[ редактировать ]

Раздувание буфера — это явление в сетях с коммутацией пакетов, в котором избыточная буферизация пакетов приводит к высокой задержке и колебаниям задержки пакетов . Раздувание буфера можно решить с помощью сетевого планировщика, который стратегически отбрасывает пакеты, чтобы избежать ненужной задержки буферизации. Примеры включают CoDel , FQ-CoDel и случайное раннее обнаружение .

Реализации

[ редактировать ]
Планировщик пакетов ядра Linux является частью сетевого стека вместе с netfilter , nftables и Berkeley Packet Filter .

Планировщик пакетов ядра Linux является неотъемлемой частью сетевого стека ядра Linux и управляет кольцевыми буферами передачи и приема всех сетевых карт, например, работая на уровне 2 модели OSI и обрабатывая кадры Ethernet .

Планировщик пакетов настраивается с помощью утилиты под названием tc (сокращение от «регулирование дорожного движения»). В качестве дисциплины организации очередей по умолчанию планировщик пакетов использует реализацию FIFO, называемую pfifo_fast . [15] хотя systemd, начиная с версии 217, меняет дисциплину очередей по умолчанию на fq_codel. [16]

The ifconfig и ip утилиты позволяют системным администраторам настраивать размеры буфера txqueuelen и rxqueuelen для каждого устройства отдельно по количеству кадров Ethernet независимо от их размера. Сетевой стек ядра Linux содержит несколько других буферов, которые не управляются сетевым планировщиком. [а]

Фильтры Berkeley Packet Filter можно прикрепить к классификаторам планировщика пакетов. Функциональность eBPF, представленная в версии 4.1 ядра Linux в 2015 году, расширяет классические программируемые классификаторы BPF до eBPF. [17] Их можно скомпилировать с помощью LLVM eBPF и загрузить в работающее ядро ​​с помощью команды tc полезность. [18]

БСД и OpenBSD

[ редактировать ]

ALTQ — реализация сетевого планировщика для BSD . Начиная с версии OpenBSD 5.5, ALTQ был заменен планировщиком HFSC.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Общий размер всех буферов стал предметом критики со стороны проекта Bufferbloat , который предоставил частичное решение с помощью CoDel, которое в первую очередь тестировалось в OpenWrt .
  1. ^ «HOWTO по управлению трафиком: бесклассовые дисциплины массового обслуживания (qdiscs)» . tldp.org . Проверено 24 ноября 2013 г.
  2. ^ «HOWTO по управлению трафиком: компоненты управления трафиком в Linux» . tldp.org . Проверено 24 ноября 2013 г.
  3. ^ «HOWTO по управлению дорожным движением: традиционные элементы управления дорожным движением» . tldp.org . Проверено 24 ноября 2013 г.
  4. ^ «Дисциплины организации очередей: порядок передачи и отбрасывания пакетов» (PDF) . тау.ac.il . 25 октября 2006 года . Проверено 18 марта 2014 г.
  5. ^ «Расширенное управление трафиком — ArchWiki» . wiki.archlinux.org . Проверено 11 сентября 2023 г.
  6. ^ «Пусть управляют ТОРТОМ» . LWN.net .
  7. ^ «Qdisc фильтра тяжелых нападающих» . ядро.орг .
  8. ^ «Модуль сетевого планировщика ядра Linux-эмулятора» . ядро.орг . Проверено 7 сентября 2013 г.
  9. ^ «Усовершенствованный пропорциональный интегральный контроллер (PIE)» . ядро.орг .
  10. ^ «Модуль сетевого планировщика ядра DRR Linux» . ядро.орг . Проверено 7 сентября 2013 г.
  11. ^ «Модуль сетевого планировщика ядра HTB Linux» . ядро.орг . Проверено 7 сентября 2013 г.
  12. ^ «Модуль сетевого планировщика ядра QFQ Linux» . ядро.орг . Проверено 7 сентября 2013 г.
  13. ^ «Сетевой планировщик ядра Linux» . ядро.орг . 26 декабря 2012 г. Проверено 7 сентября 2013 г.
  14. ^ «tc(8) — страница руководства Linux» . man7.org . Проверено 11 сентября 2023 г.
  15. ^ «Практическое руководство по расширенной маршрутизации и управлению трафиком в Linux, раздел 9.2.1. pfifo_fast» . lartc.org . 19 мая 2012 г. Проверено 19 сентября 2014 г.
  16. ^ «Диспетчер систем и служб systemd: файл новостей» . сайт freedesktop.org . 22 мая 2015 г. Проверено 9 июня 2015 г.
  17. ^ «Ядро Linux 4.1, Раздел 11. Работа в сети» . kernelnewbies.org . 21 июня 2015 г.
  18. ^ «Справочное руководство по BPF и XDP» . Веб-сайт документации по Cilium .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: eb7e67003609d8d07d1f93732ca94117__1720443300
URL1:https://arc.ask3.ru/arc/aa/eb/17/eb7e67003609d8d07d1f93732ca94117.html
Заголовок, (Title) документа по адресу, URL1:
Network scheduler - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)