Сетевой планировщик , называемый также планировщик пакетов , очередей дисциплины , Qdisc или алгоритм организации очереди , является арбитром на узле в пакетной коммутации сети связи. Он управляет последовательностью сетевых пакетов в передающем и приемную очереди на контроллере сетевого интерфейса . Для разных операционных систем доступно несколько сетевых планировщиков , которые реализуют многие из существующих алгоритмов сетевого планирования .
Логика сетевого планировщика решает, какой сетевой пакет пересылать следующим. Сетевой планировщик связан с системой очередей, временно сохраняя сетевые пакеты, пока они не будут переданы. Системы могут иметь одну или несколько очередей, и в этом случае каждая может содержать пакеты одного потока , классификации или приоритета.
В некоторых случаях невозможно запланировать все передачи в рамках ограничений системы. В этих случаях сетевой планировщик отвечает за решение, какой трафик пересылать, а что отбрасывать .
Сетевой планировщик может нести ответственность за реализацию конкретных инициатив по управлению сетевым трафиком . Контроль сетевого трафика - это общий термин для всех мер, направленных на снижение перегрузки, задержки и потери пакетов. В частности, активное управление очередью (AQM) - это выборочное отбрасывание сетевых пакетов в очереди для достижения более широкой цели предотвращения чрезмерной перегрузки сети. Планировщик должен выбрать, какие пакеты отбрасывать. Формирование трафика сглаживает требования к пропускной способности потоков трафика, задерживая пакеты передачи, когда они помещаются в очередь пакетами. Планировщик определяет время для передаваемых пакетов. качество обслуживания (QoS) - это приоритезация трафика на основе класса обслуживания (Дифференцированные услуги ) или зарезервированное соединение ( Интегрированные услуги ).
С течением времени было разработано множество дисциплин сетевого очередей. Каждый из них обеспечивает конкретное переупорядочивание или отбрасывание сетевых пакетов внутри различных буферов передачи или приема . [1] [2] Дисциплины организации очередей обычно используются как попытки компенсировать различные сетевые условия, такие как уменьшение задержки для определенных классов сетевых пакетов, и обычно используются как часть мер QoS. [3] [4] [5]
Примеры алгоритмов, подходящих для управления сетевым трафиком, включают:
Некоторые из вышеперечисленных реализованы в виде модулей ядра Linux [18] и находятся в свободном доступе .
Bufferbloat - это явление в сетях с коммутацией пакетов, в котором избыточная буферизация пакетов вызывает большие задержки и вариации задержки пакетов . Bufferbloat может быть адресован сетевому планировщику, который стратегически отбрасывает пакеты, чтобы избежать излишне большого объема невыполненной буферизации. Примеры включают CoDel и раннее обнаружение Random .
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( Октябрь 2018 г. ) |
Linux пакет ядра планировщик является составной частью сетевого стека в Linux ядра и управляет приема и передачи кольцевых буферов всех сетевых адаптеров, работая на уровне 2 в модели OSI и обработки кадров Ethernet , например.
Планировщик пакетов настраивается с помощью вызываемой утилиты tc
(сокращение от «контроль трафика»). В дисциплине очередей по умолчанию планировщик пакетов использует реализацию FIFO под названием pfifo_fast , [19] , хотя Systemd с момента его версия 217 изменяет очередей по умолчанию дисциплины в fq_codel . [20]
ifconfig
И ip
утилиты позволяют системным администраторам конфигурировать размеры буферов txqueuelen
и rxqueuelen
для каждого устройства в отдельности с точки зрения количества кадров Ethernet , независимо от их размера. Сетевой стек ядра Linux содержит несколько других буферов, которые не управляются сетевым планировщиком. [а]
Фильтры Berkeley Packet Filter могут быть присоединены к классификаторам планировщика пакетов. Функциональность eBPF, представленная в версии 4.1 ядра Linux в 2015 году, расширяет классические программируемые классификаторы BPF на eBPF. [21] Их можно скомпилировать с помощью бэкэнда LLVM eBPF и загрузить в работающее ядро с помощью tc
утилиты. [22]
ALTQ - это реализация сетевого планировщика для BSD . В OpenBSD версии 5.5 ALTQ был заменен планировщиком HFSC.
|journal=
( помощь )