Опции QoS
Опции QoS
Предположим, что компьютер под управлением Linux действует как маршрутизатор в сети с напряженным трафиком или выполняет роль сервера и обрабатывает при этом большой объем данных. При этом может возникнуть ситуация, когда система будет в течение некоторого времени получать большее число пакетов, чем она может обработать. Очевидно, что в этом случае необходимы специальные средства планировки, которые устанавливали бы очередность передачи пакетов. Как правило, в системе Linux используется стратегия FIFO (first in/first out — "первый пришел — первый вышел"), согласно которой пакет, предназначенный для передачи, находится в очереди до тех пор, пока не будут переданы все пакеты, поставленные в очередь раньше него. Но в некоторых случаях необходимо предоставить пакетам определенного типа некоторые преимущества. Это могут быть пакеты, адресованные в конкретную сеть, или пакеты, которые содержат информацию, соответствующую определенному протоколу. Так, например, пакеты, содержащие информацию реального времени, например данные Internet-телефонии, целесообразно передавать вне очереди. Назначать приоритеты пакетам позволяют опции QoS (quality of service — качество сервиса). Эти опции доступны посредством подменю QoS and/or Fair Queuing меню Networking Options.
Для того чтобы реализовать систему QoS, необходимо выбрать опцию QoS and/or Fair Queuing в одноименном меню. В результате автоматически устанавливается ряд опций этого меню. Другие опции задаются отдельно. Основными из них являются опции планирования передачи пакетов и организации очереди, такие как CBQ Packet Scheduler и SFQ Queue. Эти опции позволяют ядру выполнять более сложную обработку пакетов по сравнению с традиционно используемым принципом FIFO. Опции QoS Support и Packet Classifier API, а также их подопции позволяют использовать Differentiated Services и Resource Reservation Protocol. При этом появляется возможность обмена QoS-приоритетами с другими маршрутизаторами. Если все маршрутизаторы на пути от одного узла к другому поддерживают совместимые между собой протоколы QoS, скорость передачи важных данных может быть увеличена за счет задержки информации, время доставки которой некритично.
Если система не выполняет функции маршрутизатора, опции QoS в ней, как правило, не используются. Если же вы создаете маршрутизатор, а в особенности, если он планируется для использования в сети с интенсивным обменом данными, желательно установить эти опции. Активизировав одну опцию, целесообразно активизировать и все остальные, в противном случае система не будет обладать должной гибкостью. Так, например, если вы не установите опцию U32 Classifier, то не сможете задавать приоритеты исходя из адресов назначения пакетов.
На практике использование средств QoS предполагает применение расширенных средств маршрутизации, таких как ip и tc. Об этих инструментах речь пойдет в главе 24, однако они слишком сложны, чтобы привести их исчерпывающее описание в рамках одной главы. Дополнительную информацию об ip и о tc можно найти в документах iproute2 + tc Notes (http://snafu.freedom.org/linux2.2/iproute-notes.html) и Differentiated Services on Linux (http://diffserv.sourceforge.net).