Очереди.
Поставить что-то в очередь - это значит сохранить в определенном порядке, пока оно дожидатся обработки. В компьютерной сети, когда пакеты данных отсылаются хостом, они попадают в очередь и ожидают обработки операционной системой. Затем операционная система решает какие пакеты и из какой очереди будет обработаны. Порядок, в котором операционная система выбирает пакеты для обработки, могут влиять на производительность сети. Например, представьте, что пользователь запустил два сетевых приложения: SSH и FTP. В идеале, пакеты SSH должны быть обработаны первыми, до пакетов FTP, исходя из времязависимой природы протокола SSH; когда клиент SSH нажимает кнопку, то он рассчитывает на немедленный ответ, а передача данных FTP может быть отложена на несколько секунд и вряд ли эта задержка будет иметь большое значение. Но что произойдет, если роутер начнет обрабатывать большую последовательность пакетов FTP соединения перед обработкой данных SSH соединения? Пакеты SSH соединения будут оставаться в очереди (или возможно будут уничтожены роутором, если очередь не будет достаточно большой, для хранения всех пакетов) и сессия SSH может прерваться или сильно замедлиться. При помощи изменения стратегии очередности можно добиться, чтобы ширина сетевого канала распределялась в достаточной степени между различными приложениями, пользователями и компьютерами.
Учтите, что управление очередями возможно только для исходящих пакетов. Когда пакет поступает на интерфейс во входящем направлении, то уже поздно ставить его в очередь, так как он уже занял свою часть сетевого канала чтобы попасть в интерфейс, который его получил. Единственным решением может стать управление очередью на соседнем роутере, или если хост, получивший пакет, выступает в качестве роутера, разрешить управление очередью на его внутреннем интерфейсе для исходящих пакетов.
Управление очередями, основанное на классах
Управление очередями, основанное на классах (CBQ) - это алгоритм, который делит ширину сетевого канала межде несколькими очередями или классами. Каждая очередь, которая привязана к трафику, основывается на адресах источника, получателя, номере порта, протоколе и т.д. Очередь может быть дополнительно сконфигурирована так, чтобы отбирать у родительской очереди ширину канала, если родительская очередь не использует свою часть канала. Для очереди также может быть назначен приоритет, например, интерактивному трафику, такому как SSH. И ее пакеты будут обработаны первыми, в отличии от очереди, содержащей объемный трафик, например, такой как FTP.
Управление очередями, основанное на приоритетах
Управление очередями, основанное на приоритетах (PRIQ) назначает очередям сетевого интерфейса определенный уровень приоритета. Очереди с бОльшим приоритетом всегда обслуживаются раньше очередей с меньшим приоритетом. Если двум и более очередям назначен одинаковый приоритет, то они будет обслужены циклически (round-robin).