Введение

Алгоритм планирования для сетевого планировщика Deficit Round Robin (DRR), также Deficit Weighted Round Robin (DWRR), — это алгоритм планирования для сетевого планировщика. DRR, как и взвешенная справедливая очередь (WFQ), представляет собой реализацию на основе пакетов идеальной политики обобщенного разделения процессорного времени (GPS). Он был предложен М. Шредхаром и Г. Варгезом в 1995 году как эффективный (со сложностью O(1)) и справедливый алгоритм.

Подробности

В DRR планировщик, обрабатывающий N потоков, конфигурируется с одним квантом для каждого потока. Основная идея заключается в том, что в каждом раунде поток может отправить не более байт, а остаток, если он есть, переносится на следующий раунд. Таким образом, минимальная скорость, которую поток достигнет в долгосрочной перспективе, составляет ; где – скорость канала.

Производительность: справедливость, сложность и задержка

Как и другие алгоритмы планирования, подобные GPS, выбор весов остается за администратором сети. Как и WFQ, DRR обеспечивает минимальную скорость для каждого потока, независимо от размера пакетов. В взвешенном циклическом планировании доля используемой полосы пропускания зависит от размера пакетов. По сравнению с планировщиком WFQ, имеющим сложность O(log(n)) (где n – количество активных потоков/очередей), сложность DRR составляет O(1), если квант больше максимального размера пакета для данного потока. Однако эта эффективность достигается ценой: задержка, то есть отклонение от идеального GPS, в DRR больше, чем в WFQ. Более подробную информацию о максимальных задержках можно найти здесь.

Реализация

Реализация алгоритма дефицитного круглого робина была написана Патриком МакХарди для ядра Linux и опубликована под лицензией GNU General Public License. В маршрутизаторах Cisco и Juniper реализованы модифицированные версии DRR: поскольку задержка алгоритма DRR может быть выше для определенных классов трафика, эти модифицированные версии предоставляют более высокий приоритет некоторым очередям, а остальные обслуживаются стандартным алгоритмом DRR.