Резервирование ресурсов и контроль допуска

Рассмотренные методы поддержания качества обслуживания ориентированы в основном на борьбу с перегрузками или предотвращение их в пределах отдельного узла сети. Вместе с тем понятно, что для обеспечения гарантированного уровня качества обслуживания некоторого потока пакетов необходимо скоординированное применение этих методов на всем пути следования потока через сеть. Такой координирующей процедурой является процедура резервирования ресурсов сети для определенного потока. Эта процедура позволяет настроить все механизмы поддержания качества обслуживания вдоль следования потока таким образом, чтобы поток с некоторыми заданными характеристиками скорости был обслужен с заданными характеристиками QoS.

Основная идея процедуры состоит в том, что каждому узлу сети вдоль маршрута следования потока задается вопрос, может ли этот узел обслужить некоторый новый поток с заданными характеристиками QoS, если известны предельные характеристики скорости потока, такие как средняя и пиковая скорости? Каждый узел при ответе на этот вопрос должен оценить свои возможности, то есть проверить, достаточно ли у него свободных ресурсов, чтобы принять на обслуживание новый поток и обслуживать его качественно. При положительном ответе узел должен некоторым образом зарезервировать часть своих ресурсов для данного потока, чтобы при поступлении пакетов потока на входные интерфейсы использовать эти ресурсы для их обслуживания с гарантированным уровнем качества.

В общем случае каждый узел самостоятельно решает, какие ресурсы он должен резервировать для обслуживания некоторого потока с заданным качеством. Как показывает практика, основным ресурсом, требуемым для качественного обслуживания пакетов, является пропускная способность интерфейса, через который пакеты потока покидают узел. Поэтому в дальнейшем мы будем, несколько упрощая действительное положение дел, употреблять формулировку «резервирование пропускной способности» вместо «резервирование ресурсов».

Смысл резервирования состоит в том, чтобы ограничить уровень перегрузок определенного потока или нескольких потоков некоторой приемлемой величиной. Эта величина должна быть такой, чтобы механизмы QoS (управления очередями, кондиционирования трафика и обратной связи), применяемые в узлах сети, справлялись с кратковременными небольшими перегрузками и обеспечивали требуемые значения характеристик QoS.

Однако что же означает резервирование пропускной способности в сетях с коммутацией пакетов? Ранее мы не встречались с таким механизмом, все предыдущие объяснения работы сетевых устройств обходились без него. Дело в том, что этот механизм не является обязательным, а используется только в тех случаях, когда требуется гарантированное выполнение требований качества обслуживания пакетов.

Резервирование пропускной способности в сетях с коммутацией пакетов похоже на аналогичную процедуру в сетях с коммутацией каналов тем, что определенному потоку данных назначается определенная часть пропускной способности линии связи. Однако это назначение здесь гораздо более гибкое — если отведенная пропускная способность в какой-то период времени недоиспользуется потоком, то она может быть передана другим потокам.

Это обстоятельство позволяет более эффективно расходовать пропускную способность линий связи, но приводит к эффекту постепенной деградации качества транспортного сервиса из-за перегрузок и очередей вместо простого отказа в обслуживании, который имеет место в сети с коммутацией каналов, когда пропускной способности оказывается недостаточно для обслуживания некоторого потока. Цель гибкого резервирования — обеспечить поток зарезервированной пропускной способностью в те периоды, когда она ему нужна вся, то есть в периоды перегрузок. Другим отличием резервирования в пакетных сетях является то обстоятельство, что оно может выполняться не только «из конца в конец», но и для каких-то отдельных узлов по маршруту потока, однако этот случай не может гарантировать необходимый уровень характеристик QoS, так как перегрузка даже в одном узле может привести к задержкам и потерям пакетов.

Резервирование пропускной способности в пакетной сети «из конца в конец» начинается с операции, называемой контролем допуска в сеть потока, который просит зарезервировать для своего обслуживания некоторую пропускную способность сети между ее двумя конечными узлами. Эта операция состоит в проверке наличия доступной (то есть незарезервированной для других потоков) пропускной способности в каждом из узлов сети на протяжении всего маршрута следования потока (здесь мы не останавливаемся на проблеме поиска маршрута потока, она подробно рассматривается далее в разделе «Инжиниринг трафика»). Очевидно, что максимальная средняя скорость потока должна быть меньше, чем запрашиваемая пропускная способность, иначе поток будет обслужен с очень плохим качеством даже несмотря на то, что ему была зарезервирована некоторая пропускная способность.

Если результат контроля допуска положителен в каждом узле (случай, показанный на рис. .1), то сетевые устройства запоминают факт резервирования, чтобы при появлении пакетов данного потока распознать их и выделить им зарезервированную пропускную способность. Кроме того, при успешном резервировании доступная для резервирования (в будущем) пропускная способность уменьшается на величину, зарезервированную за данным потоком. Как видно из описания процедуры, для ее реализации необходимо знать маршрут следования потока, для которого выполняется резервирование. В сетях с распределенным принципом построения таблиц маршрутизации, когда каждое сетевое устройство самостоятельно определяет следующий по маршруту узел, выяснение маршрута может представлять достаточно сложную задачу, но мы оставим исследование этой проблемы до рассмотрения конкретных технологий в последующих главах, а пока будем считать, что маршрут каким-то образом нам известен.

Нужно подчеркнуть, что резервирование — это процедура, которая выполняется перед тем, как реальный трафик будет направлен в сеть.

Давайте теперь посмотрим, каким же образом выполняется собственно выделение пропускной способности потоку в моменты времени, когда его пакеты поступают на вход коммуникационного устройства S2, которое запомнило факт резервирования пропускной способности для потока F1 на выходном интерфейсе Р2 (рис 2).

Такое выделение можно обеспечить разными способами, в нашем примере это будет сделано с использованием взвешенных очередей.

Пусть потоку F1 при резервировании было выделено 25 % пропускной способности интерфейса Р2 (обычно резервирование можно выполнять как в абсолютных величинах, например в мегабитах в секунду, так и в процентах; это, собственно, детали реализации механизмов QoS в конкретных устройствах). Также для простоты будем считать, что резервирование было выполнено только для потока F1, в то же время для всех других потоков, которые проходят через выходной интерфейс Р2, резервирования не производилось.

Для того чтобы добиться желаемого результата, достаточно организовать для выходного интерфейса две взвешенные очереди — очередь для потока F1 с весом 25 % и очередь «по умолчанию» для всех остальных потоков. Кроме того, необходимо активизировать классификатор, который будет проверять пакеты на всех входных интерфейсах устройства 52 (на рис. 2 показан только один входной интерфейс Р1), отбирать пакеты потока F1 по заданным при резервировании признакам и направлять их в очередь для потока F1. В те периоды времени, когда скорость потока F1 окажется меньше зарезервированной пропускной способности в 25 %, неиспользованная ее часть будет потребляться потоками из очереди «по умолчанию» — в силу алгоритма работы взвешенных очередей. Зато в периоды, когда скорость потока F1 достигнет заявленного максимума средней скорости в 25 %, вся зарезервированная пропускная способность выходного интерфейса будет выделяться потоку F1, а все остальные потоки будут довольствоваться оставшимися 75 %. Значения в 75 % может оказаться недостаточно для качественного обслуживания этих потоков, и тогда их пакеты будут задерживаться или даже теряться при переполнении очереди «по умолчанию». Может оказаться и так, что значения в 75 % окажется слишком много для остальных потоков, и они будут обслуживаться с высоким качеством; какая из двух ситуаций будет наблюдаться чаще, мы не знаем, так как у нас нет никакой предварительной информации о «других» потоках. Этот пример хорошо иллюстрирует особенность методов обеспечения параметров QoS — они требуют контроля над потоками, то есть знания их маршрутов и средних скоростей. В противном случае гарантий параметров QoS достичь трудно, можно говорить только об обслуживании «по возможности».

В описанном примере не использован механизм профилирования трафика. При наличии отдельной взвешенной очереди для потока, зарезервировавшего пропускную способность, этот механизм не является обязательным, так как сам механизм взвешенных очередей ограничит пропускную способность потока в нужных пределах в периоды перегрузок, когда все взвешенные очереди заполняются полностью.

Однако количество взвешенных очередей в сетевых устройствах обычно ограничено не слишком большой величиной, например, их может быть не более 16 или 32. В то же время количество потоков, для которых желательно зарезервировать пропускную способность, может быть значительно больше. В такой ситуации можно организовать одну взвешенную очередь для всех резервируемых потоков с пропускной способностью, равной или большей сумме резервируемых пропускных способностей потоков. А для того чтобы требуемые доли пропускной способности выделялись каждому потоку, необходимо после классификации выполнить профилирование каждого потока на уровне запрошенной им скорости. Правда, мы лишаемся в этом случае в периоды неактивности других потоков возможности предоставлять отдельным потокам больше пропускной способности, чем они запросили, но это плата за масштабируемое решение, основанное на одной взвешенной резервируемой очереди.

Использование взвешенных очередей — не единственный вариант резервирования пропускной способности в пакетных сетях. Для той же цели можно задействовать приоритетные очереди. Применение приоритетной очереди может быть не только возможным, но и необходимым, если потоку помимо определенного уровня пропускной способности требуется обеспечить минимально возможный уровень задержек пакетов.

При использовании приоритетной очереди профилирование необходимо всегда, так как приоритетный механизм не обеспечивает ограничения скорости потока, как это делает механизм взвешенного обслуживания.

Нужно подчеркнуть, что резервирование приводит к ожидаемым результатам только в тех случаях, когда реальная скорость потоков, для которых было выполнено резервирование, оказывается не выше, чем пропускная способность, запрошенная при резервировании и реализованная при конфигурировании сетевых устройств. В противном случае результаты могут оказаться даже хуже, чем при наличии единственной очереди «по умолчанию» и обслуживании «по возможности». Так, если скорость потока окажется выше, чем предел, учитываемый механизмом профилирования, то часть пакетов будет отброшена даже в том случае, если устройство не перегружено и могло бы отлично справиться с предложенным трафиком без применения механизмов QoS.

Что же меняется в сети после резервирования? При поступлении на входной интерфейс коммутатора пакетов потока, для которых было выполнено резервирование, механизм классификации распознает пакеты, относящиеся к этому потоку, и направляет их в нужную очередь. При этом пакеты могут проходить через механизм профилирования, призванный предотвратить ситуацию обслуживания потока, скорость которого превышает оговоренную при резервировании.

В результате резервирования сеть оказывается загруженной рационально. В ней нет ресурсов, которые работают со значительной перегрузкой. Механизмы организации очередей по-прежнему обеспечивают временную буферизацию пакетов в периоды пульсаций. Так как мы планировали загрузку ресурсов из расчета средних скоростей передачи данных, то на периодах пульсаций в течение некоторого ограниченного времени скорости потоков могут превышать средние скорости, так что механизмы борьбы с перегрузками по-прежнему нужны. Для обеспечения требуемых средних скоростей потоков на периодах перегрузок соответствующие потоки могут обслуживаться с помощью взвешенных очередей.

Сохраняется также главное преимущество метода коммутации пакетов: если некоторый поток не расходует отведенной ему пропускной способности, то она может выделяться для обслуживания другого потока. Нормальной практикой является резервирование пропускной способности только для части потоков, в то время как другие потоки обслуживаются без резервирования, получая обслуживание по возможности (с максимальными усилиями). Временно свободная пропускная способность может для таких потоков выделяться динамически, без нарушения взятых обязательств по обслуживанию потоков, для которых ресурсы зарезервированы.

ПРИМЕР-АНАЛОГИЯ
Проиллюстрируем принципиальное отличие резервирования ресурсов в сетях с коммутацией пакетов и каналов на примере автомобильного трафика. Пусть в некотором городе решили обеспечить некоторые привилегии для движения машин скорой помощи. В ходе обсуждения этого проекта возникли две конкурирующие идеи его реализации. Первый вариант предусматривал на всех дорогах города выделение для автомобилей скорой помощи отдельной полосы, недоступной для другого транспорта ни при каких условиях, даже если в какой-то период времени машин скорой помощи на дороге нет.

Во втором случае для машин скорой помощи также выделялась отдельная полоса, но в отсутствии привилегированных машин по ней разрешалось двигаться и другому транспорту. В случае же появление машины скорой помощи автомобили, занимающие выделенную полосу, обязаны были ее освободить. Нетрудно заметить, что первый вариант соответствует принципу резервирования в сетях с коммутацией каналов — пропускная способность выделенной полосы монопольно используется автомобилями скорой помощи и не может быть перераспределена даже тогда, когда она им не нужна.

Второй вариант является аналогией резервирования в сетях с коммутацией пакетов. Пропускная способность дороги здесь расходуется более эффективно, но для потока автомобилей скорой помощи такой вариант менее благоприятен, так как при необходимости освобождения полосы возникают помехи, создаваемые непривилегированными машинами.

Сеть с коммутацией каналов подобного перераспределения ресурсов выполнить не может, так как у нее в распоряжении нет независимо адресуемых единиц информации — пакетов!