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

редактировать
Очередь пакетов в структуре данных FIFO (первый пришел, первый ушел).

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

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

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

Содержание
  • 1 Терминология и обязанности
  • 2 Алгоритмы
  • 3 Bufferbloat
  • 4 Реализации
    • 4.1 Ядро Linux
    • 4.2 BSD и OpenBSD
  • 5 См. Также
  • 6 Примечания
  • 7 Ссылки
Терминология и обязанности

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

Алгоритмы

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

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

  • AVQ ()
  • CBQ (организация очередей на основе классов ) дисциплина
  • CHOKe (CHOose и Keep для реагирующих потоков, CHOose и Kill для неотвечающих потоков) - это вариант RED
  • CoDel (контролируемая задержка) и справедливой / потоковой очереди CoDel
  • (Common Applications Kept Enhanced), реализованный в ядре linux

Некоторые из вышеперечисленных имеют b Они реализованы как модули ядра Linux и свободно доступны.

Bufferbloat

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

Реализации

ядро ​​Linux

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

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

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

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

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

BSD и OpenBSD

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

См. Также
Примечания
Ссылки
Последняя правка сделана 2021-05-31 04:57:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте