Взвешенная справедливая организация очереди ( WFQ ) — это сетевой алгоритм планирования . WFQ — это как пакетная реализация политики общего разделения процессора (GPS), так и естественное расширение справедливой организации очереди (FQ). В то время как FQ разделяет емкость канала на равные части, WFQ позволяет планировщикам указывать для каждого потока, какая часть емкости будет предоставлена.
Взвешенная справедливая организация очередей также известна как пакетно-пакетная GPS (PGPS или P-GPS), поскольку она приближает обобщенное разделение процессора «с точностью до времени передачи одного пакета, независимо от шаблонов прибытия». [1]
Как и в других алгоритмах планирования, подобных GPS, выбор весов остается за администратором сети. Не существует однозначного определения того, что является «справедливым» (см. Справедливое распределение по очередям § Справедливость для дальнейшего обсуждения).
Динамически регулируя веса WFQ, WFQ можно использовать для управления качеством обслуживания , например, для достижения гарантированной скорости передачи данных. [ необходима цитата ]
Пропорционально справедливое поведение может быть достигнуто путем установки весов на , где — стоимость за бит данных потока данных . Например, в сотовых сетях с расширенным спектром CDMA стоимость может быть требуемой энергией (уровнем помех), а в системах динамического распределения каналов стоимость может быть количеством близлежащих базовых станций, которые не могут использовать тот же частотный канал, чтобы избежать помех в соседнем канале.
В WFQ планировщик, обрабатывающий N потоков, настроен с одним весом для каждого потока. Затем поток числа достигнет средней скорости передачи данных , где — скорость соединения. Планировщик WFQ, где все веса равны, — это планировщик FQ.
Как и все планировщики с честной очередностью, каждый поток защищен от других, и можно доказать, что если поток данных ограничен дырявым ведром , то можно гарантировать ограничение сквозной задержки. [2]
Алгоритм WFQ очень похож на алгоритм FQ . Для каждого пакета будет вычислена виртуальная теоретическая дата отправления, определяемая как дата отправления, если бы планировщик был идеальным планировщиком GPS. Затем, каждый раз, когда выходной канал простаивает, для отправки выбирается пакет с наименьшей датой.
Псевдокод можно получить просто из кода FQ , заменив вычисление виртуального времени отправления на
packet.virFinish = virStart + packet.size / Ri
с .
WFQ, под названием PGPS, был разработан как «превосходное приближение к GPS», и было доказано, что он приближает GPS «с точностью до времени передачи одного пакета, независимо от схем прибытия». [1]
Поскольку реализация WFQ похожа на справедливую очередь , она имеет ту же сложность O(log(n)) где n — число потоков. Эта сложность возникает из-за необходимости выбирать очередь с наименьшим виртуальным временем завершения каждый раз, когда отправляется пакет.
После WFQ было определено несколько других реализаций GPS.
Введение параметров для разделения полосы пропускания произвольным образом упоминается в конце [4] как возможное расширение FQ. Термин «взвешенный» впервые появляется в [1] .