Для того чтобы реализовать систему 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
).
Поддержка протоколов высокого уровня
В ядре Linux предусмотрена поддержка нескольких протоколов высокого уровня. Благодаря этому коды, отвечающие за работу с этими протоколами, выполняются намного быстрее, чем соответствующие коды обычных пользовательских программ. Кроме того, поддержка высокоуровневых протоколов в ядре обеспечивает более тесную интеграцию этих протоколов с остальными компонентами операционной системы. Например, включение в состав ядра средств поддержки NFS позволяет монтировать удаленные ресурсы и использовать их так же, как и компоненты локальной файловой системы. В версиях 2.4.x ядра реализована поддержка трех важных высокоуровневых протоколов: HTTP, NFS и SBM/CIFS.
На заметку
В приведенном перечне содержатся не все протоколы, поддерживаемые ядром. Кроме указанных выше, ядро Linux позволяет работать и с другими протоколами, в частности, с различными протоколами, обеспечивающими разделение сетевых ресурсов.
Работа World Wide Web в основном базируется на использовании протокола HTTP (Hypertext Transfer Protocol — протокол передачи гипертекстовой информации). По сути, в ядре Linux реализован простой сервер HTTP, который включается при установке опции Kernel HTTPd Acceleration. Для настройки и активизации этого сервера в псевдофайлы, находящиеся в каталоге /proc/sys/net/khttpd
, записываются специальные значения. Вопросы работы со встроенным сервером HTTP подробно рассматриваются в главе 20.
Реализовать сервер HTTP в составе ядра оказалось сравнительно не сложно, так как передача клиенту статических Web-страниц (документов, содержимое которых не изменяется при различных обращениях клиентов) мало отличается от копирования файлов с диска на удаленные компьютеры. Ядро может выполнять эту операцию гораздо эффективнее, чем пользовательские программы. Для обслуживания запросов, связанных с предоставлением динамических Web-страниц, а также запросов, предполагающих сложную обработку статических документов, ядро обращается к обычному Web-серверу, например Apache. При этом нет необходимости в специальных настройках Apache; этот сервер попросту "не видит" запросов на получение статических Web-страниц.
Опции для работы с NFS
NFS (Network Filesystem — сетевая файловая система), разработанная Sun, предназначена для организации совместного использования файлов несколькими компьютерами. Благодаря NFS обращение к удаленным файлам осуществляется так же, как и обращение к файлам на локальной машине. Поддержка NFS реализована в ядре Linux. Подробно вопросы работы с NFS рассматриваются в главе 8. Для того чтобы иметь возможность монтировать каталоги, экспортируемые другими компьютерами, надо установить опции, отвечающие за поддержку NFS. Опции, включающие средства клиента и сервера NFS, содержатся в подменю Network File Systemsменю File Systems(а не в меню Networking Options, как это можно было бы ожидать). Опции для работы с NFS перечислены ниже.
Читать дальше