Учебник для вузов в. Олифер Н. Олифер Компьютерные Принципы, технологии, протоколы
Скачать 22.28 Mb.
|
Глава 7. Методы обеспечения качества обслуживания Взвешенное обслуживание обеспечивает требуемые соотношения между интенсивностями трафика различных очередей только в периоды перегрузок, когда каждая очередь посто янно заполнена. Если же какая-нибудь из очередей пуста (то есть для трафика данного класса текущий период не является периодом перегрузки), то при просмотре очередей она игнорируется, и ее время обслуживания распределяется между остальными очередями в соответствии с их весом. Поэтому в отдельные периоды трафик определенного класса может обладать большей интенсивностью, чем соответствующий процент от пропускной способности выходного интерфейса. Комбинированные алгоритмы обслуживания очередей Каждый из описанных подходов имеет свои достоинства и недостатки. Приоритетное обслуживание, обеспечивая минимальный уровень задержек для очереди наивысшего приоритета, не дает никаких гарантий в отношении средней пропускной способности для трафика очередей более низких приоритетов. Взвешенное обслуживание обеспечивает заданное распределение средней пропускной способности, но не учитывает требований к задержкам. Существуют комбинированные алгоритмы обслуживания очередей. В наиболее популяр ном алгоритме подобного рода поддерживается одна приоритетная очередь, а остальные очереди обслуживаются в соответствии со взвешенным алгоритмом. Обычно приоритет ная очередь используется для чувствительного к задержкам трафика, а остальные — для эластичного трафика нескольких классов. Каждый класс эластичного трафика получает некоторый минимум пропускной способности при перегрузках. Этот минимум вычис ляется как процент от пропускной способности, оставшейся от приоритетного трафика. Очевидно, что нужно как-то ограничить приоритетный трафик, чтобы он не поглощал всю пропускную способность ресурса. Обычно для этого применяются механизмы кондицио нирования трафика, которые рассматриваются далее. Механизмы кондиционирования трафика Механизмы кондиционирования трафика контролируют текущие параметры потоков трафика, такие как его средняя скорость и пульсация. Как мы помним, основной идеей ме тодов QoS является выделение определенной доли пропускной способности определенным потокам трафика, при этом величина этой доли должна быть достаточной для того, чтобы коэффициент использования ресурса для потока был достаточно низким, и соответственно качество обслуживания потока было удовлетворительным. Очереди с различными алгорит мами обслуживания позволяют реализовать только одну часть этой идеи — они выделяют определенную долю пропускной способности некоторому потоку пакетов. Однако оста ется вторая часть зі&дачи — удержание скорости потока в определенных пределах с целью обеспечить желаемый коэффициент использования пропускной способности, которая выделена потоку с помощью некоторой очереди. Если же скорость потока не будет соот ветствовать ожидаемой, то вся работа по выделению потоку пропускной способности не приведет к желаемому результату, так как коэффициент использования этой пропускной способности будет отличаться от ожидаемого, и нужное качество обслуживания достигнуто не будет. Механизмы кондиционирования трафика 203 Механизмы кондиционирования трафика являются своего рода контрольно-пропускными пунктами, которые проверяют трафик на входе в коммутатор (или формируют трафик на выходе из него — для чего это нужно, мы рассмотрим немного далее). Существует не сколько механизмов кондиционирования трафика. Классификация трафика Классификация трафика представляет собой элемент QoS, позволяющий определить, какие пакеты нужно отправить в ту или иную очередь. Классификация обычно выполня ется средствами фильтрации трафика, имеющимися в коммутаторах и маршрутизаторах пакетных сетей; для этих средств используется также такое название, как списки контроля доступа (Access Control List, ACL)1. Для классификации используются различные при знаки пакетов, например адреса назначения и источника, тип протокола транспортного или прикладного уровня. Мы уже упоминали классификацию трафика при описании приоритетных и взвешенных очередей, так как без этого механизма кондиционирования трафика невозможно задействовать различные очереди к одному и тому же выходному интерфейсу. Профилирование Профилирование представляет собой меру принудительного воздействия на трафик, ко торая служит для ограничения скорости потока пакетов. Профилирование обеспечивает соответствие потока пакетов заданному скоростному профилю; в качестве параметров профиля обычно выбирается средняя скорость потока пакета, измеренная на определен ном интервале времени2. Пакеты, которые не укладываются в заданный профиль, либо отбрасываются, либо деквалифицируются, то есть помещаются в класс обслуживания с более низкими привилегиями, например переводятся из приоритетного класса в стан дартный класс, обслуживаемый «по возможности». Англоязычное название операции профилирования — policing3 — кажется более жестким и, возможно, дает более адекватное представление о характере действий. Профилирование обычно применяют для ограничения трафика, поступающего в приори тетную очередь, так как этот механизм является единственно возможным средством предотвращения ситуации вытеснения всего остального трафика приоритетным трафиком. Рисунок 7.12 иллюстрирует действие механизма профилирования, показывая значения скорости трафика, измеренные на достаточно малых интервалах времени до и после про филирования. Как видно из рисунка, отбрасывание пакетов при профилировании при водит к удержанию скорости потока на заданном уровне в те интервалы времени, когда скорость входящего потока превосходит этот предел, и к сохранению исходной скорости в остальные периоды. 1 Их не нужно путать со средствами контроля допуска (admission control) трафика, к оторые также используются в системах обеспече н ия качества о б с л у ж и в а н и я , но и м е ю т другое назначе н и е (см. далее). * Применяются и более с л о ж н ы е ва р и а н т ы п р о ф и л и р о в а н и я , например, у ч и т ы в а ю щ и е с р е д н ю ю и пиковые скорости. 5 Дословно - поддерживать порядок п о л и ц е й с к и м и средствами. 204 Глава 7. Методы обеспечения качества обслуживания I 1 — ірафик перед профилированием Ш — трафик после профилирования Рис. 7.12. Эффект профилирования — отбрасывание избыточного трафика Формирование трафика Формирование трафика — это процесс намеренной задержки некоторых пакетов из обще го потока в целях удержания средней скорости трафика в некоторых заданных пределах. Формирование трафика напоминает профилирование, так как имеет схожую цель - ограничение скорости трафика, но достигается эта цель другим способом. Вместо того чтобы отбрасывать избыточные пакеты (то есть те, передача которых могла бы привести к превышению лимита скорости), механизм формирования трафика задерживает пакеты- нарушители так, что результирующая скорость оказывается в заданных пределах. Эффект формирования трафика1 иллюстрирует рис. 7.13. Из рисунка видно, что скорость трафика сглаживается, так как избыточные пакеты не отбрасываются, а передаются с задержкой в другие интервалы времени. Тем самым скорость исходного потока снижается в течение периодов времени с избыточным трафиком и растет в тех последующих интервалах, в которых она оказывается меньше установленного предела. Обычно путем формирования обрабатывают трафик, исходящий из коммутатора или маршрутизатора. Это делается в тех случаях, когда известно, что некоторое коммуникационное устройство далее по маршруту следования потока пакетов применяет профилирование. Профиль формирования трафика выбирается равным профилю профилируемого трафика, это гарантирует отсутствие потерь трафика из-за отбрасывания избыточных пакетов. 1 На заднем плане рисунка показана скорость результирующего пакета, а на переднем — скорость исходного потока (полупрозрачным заполнением). Обратная связь 205 Время 1 | — трафик перед формированием Е Ш — трафик после профилирования Рис. 7.13. Эффект формирования трафика — сглаживание Механизмы кондиционирования трафика могут поддерживаться каждым узлом сети или реализовываться только в пограничных устройствах. Последний вариант часто используют поставщики услуг, кондиционируя трафик своих клиентов. Обратная связь Назначение Алгоритмы управления очередями и кондиционирования трафика не предотвращают пере грузок, а лишь некоторым «справедливым» образом в условиях дефицита перераспределя ют ресурсы между различными потоками или классами трафика. Алгоритмы управления очередями относятся к механизмам управления перегрузкой (congestion management), которые начинают работать, когда сеть уже перегружена. Существует другой класс средств, которые носят название механизмов предотвращения перегрузки (congestion avoidance). Этот механизм основан на использовании обратной связи, с помощью которого перегруженный узел сети, реагируя на перегрузку, просит предыдущие узлы, расположенные вдоль маршрута следования потока (или потоков, принадлежащих к одному классу), временно снизить скорость трафика. После того как перегрузка в данном узле исчезнет, он посылает другое сообщение, разрешающее повысить скорость передачи данных. Таким образом, при возникновении перегрузки механизм предотвращения перегрузок за счет обратной связи временно снижает нагрузку. Существует и другое название этого механизма - активное управление очередями. 206 Глава 7. Методы обеспечения качества обслуживания Участники обратной связи Существует несколько механизмов обратной связи. Они отличаются информацией, кото рая передается по обратной связи, а также тем, какой тип узла генерирует эту информацию и кто реагирует на эту информацию — конечный узел (компьютер) или промежуточный (коммутатор или маршрутизатор). На рис. 7.14 показаны различные варианты организации обратной связи. Рис. 7.14. Участники обратной связи Обратная связь 1 организована между двумя конечными узлами сети. Этот вариант обе спечивает наиболее радикальное снижение нагрузки на сеть, так как только конечный узел может снизить скорость поступления информации в сеть. Однако этот вид обратной связи не относят к методам управления перегрузкой, так как его назначение — борьба с пере грузками узла назначения, а не с перегрузками сетевых устройств. Принципиально эта та же самая проблема, так как она является следствием временного превышения скорости поступления пакетов в ресурс над скоростью обработки этих пакетов. Только ресурсом в данном случае выступает не коммутатор сети, а конечный узел. Но традиционно за этим видом обратной связи закрепилось собственное название — контроль потока. Устройства сети не принимают участие в работе этого вида механизма обратной связи, они только передают соответствующие сообщения между конечными узлами. Несмотря на разные названия, в методах управления перегрузкой и контроля потока используются общие механизмы. При организации обратной связи важно учитывать время передачи информации по сети. В высокоскоростных глобальных сетях за время передачи сообщения о перегрузке узла назначения узел-ист 9 чник может успеть передать через сеть тысячи пакетов, так что перегрузка не будет^ликвидирована вовремя. Из теории автоматического управления из вестно, что задержки в контуре обратной связи могут приводить ко многим нежелатель ным эффектам, прямо противоположным первоначальным целям. Например, в системе могут начаться колебательные процессы, и она никогда не сможет прийти в равновесное состояние. Подобные явления наблюдались на ранней стадии развития Интернета, когда Обратная связь 207 из-за несовершенства алгоритмов обратной связи и маршрутизации в нем возникали участки перегрузок, которые периодически перемещались по сети. Причина такой про блемы интуитивно понятна — задержка в контуре обратной связи приводит к тому, что регулирующий элемент получает устаревшую информацию о состоянии регулируемого элемента. В данном случае узел-источник получает информацию о состоянии очереди узла-получателя с задержкой. Поэтому возможны ситуации, когда узел-источник начи нает снижать скорость передачи информации, хотя в действительности очереди в узле- получателе уже нет, и, наоборот, повышать скорость передачи информации в тот момент, когда узел-получатель начал испытывать перегрузку. Для борьбы с такими явлениями в контур обратной связи обычно вводится интегрирующий элемент, который на каждом шаге обрабатывает не только текущее сообщение обратной связи, но и несколько преды дущих сообщений, что позволяет учесть динамику изменения ситуации и реагировать адекватно. Обратная связь 2 организована между двумя соседними коммутаторами. Коммутатор со общает соседу, находящемуся выше по течению потока, что он испытывает перегрузку и его буфер заполнился до критической величины. Получив такое сообщение, сосед, располо женный выше по течению, должен снизить на некоторое время скорость передачи данных в направлении перегруженного коммутатора и тем самым решить проблему перегрузки. Это менее эффективное для сети в целом решение, так как поток будет продолжать течь от узла-источника с той же скоростью, что и раньше. Однако для коммутатора, который ис пытывает перегрузку, это является хорошим выходом, так как он получает время для того, чтобы разгрузить переполнившуюся очередь. Правда, проблема переносится в коммутатор, расположенный выше по течению, в котором теперь может возникнуть перегрузка, так как он начинает передавать данные из своего буфера с меньшей скоростью. Достоинством описанного метода является низкая задержка обратной связи, так как узлы являются со седями (если они, конечно, не соединены спутниковым каналом). Обратная связь 3 организована между промежуточным коммутатором и узлом-источником. Сообщения обратной связи хотя и передаются несколькими коммутаторами сети в направ лении узла-источника, но они на него не реагируют. Ъобратной связи 4, как и в обратной связи 1, сообщение о перегрузке порождается узлом- получателем и передается узлу-источнику. Однако имеется и важное отличие: в данном случае каждый промежуточный коммутатор реагирует на это сообщение. Во-первых, он снижает скорость передачи данных в направлении узла назначения, во-вторых, он мо жет изменить содержание сообщения. Например, если узел назначения просит снизить скорость до 30 Мбит/с, то промежуточный коммутатор может снизить эту величину до 20 Мбит/с, оценив состояние своего буфера. Кроме того, породить сообщение обратной связи может любой коммутатор сети, а не только узел назначения. При описании различных вариантов организации обратной связи мы подразумевали, что сообщение о перегрузке идет в направлении, обратном направлению передачи пользова тельской информации (собственно, поэтому этот механизм так и называется). Однако некоторые коммуникационные протоколы не предусматривают возможности генерации подобных сообщений промежуточными узлами. В таких условиях часто применяют ис- ‘кусственный прием — передача сообщения о перегрузке узлу назначения, который пре образует его в сообщение обратной связи и отправляет в нужном направлении, то есть внаправлении источника. Этот вариант показан на рисунке как обратная связь 5. 208 Глава 7. Методы обеспечения качества обслуживания Информация обратной связи В применяемых сегодня методах обратной связи используются следующие основные типы сообщений: □ признак перегрузки; □ максимальная скорость передачи; □ максимальный объем данных (кредит); □ косвенные признаки. Признак перегрузки не говорит о степени перегруженности сети или узла, он только фик сирует факт наличия перегрузки. Реакция узла, получившего такое сообщение, может быть разной. В некоторых протоколах узел обязан прекратить передачу информации в опреде ленном направлении до тех пор, пока не будет получено другое сообщение обратной связи, разрешающее продолжение передачи. В других протоколах узел ведет себя адаптивно, он снижает скорость на некоторую величину и ожидает реакции сети. Если сообщения с при знаком перегрузки продолжают поступать, то он продолжает снижение скорости. Во втором типе сообщений указывается максимальная скорость передачи, то есть порог скорости, который должен соблюдать источник или промежуточный узел, расположенный выше по течению потока. В этом случае обязательно нужно учитывать время передачи со общения по сети, чтобы исключить колебательные процессы в сети и обеспечить нужную скорость реакции на перегрузку. Поэтому в территориальных сетях такой способ обычно реализуется силами всех коммутаторов сети (обратная связь 4 в нашем примере). Сообщение о максимальном объеме данных используется в широко применяемом в па кетных сетях алгоритме скользящего окна (подробнее о нем рассказывается в главе 17). Этот алгоритм позволяет не только обеспечивать надежную передачу данных, но и реали зовать обратную связь для контроля потока между конечными узлами. Параметром, не сущим информацию обратной связи, является «окно» — число, тесно связанное с текущим размером свободного пространства в буфере принимающего узла. Окно также называют кредитом, который принимающий дает передающему узлу. Передающий узел может с любой скоростью передать объем информации (или определенное количество пакетов, если окно измеряется в пакетах), соответствующий кредиту. Но если кредит исчерпан, то передающий узел не имеет права передавать информацию, пока не получит следующий кредит. При перегрузках принимающий узел уменьшает размер окна, тем самым снижая нагрузку. Если эффект перегрузки исчезает, то принимающий узел увеличивает размер окна. Недостатком этого алгоритма является то, что он работает только в протоколах с установлением соединения. И, наконец, в некоторых случаях передающий узел определяет, что принимающий узел (или узлы) испытывает перегрузку, по некоторым косвенным признакам, без получения сообщения обратной связи. Такими косвенными признаками могут быть факты потери па кетов. Для того чтобы протокол мог обнаруживать факты потерь пакетов, это должен быть протокол с установлением соединения. Тогда истечение тайм-аута или приход дубликата положительной квитанции косвенно свидетельствует о том, что пакет потерян. Однако потеря пакета не всегда свидетельствует о перегрузке сети. Перегрузка сети — это только одна из возможных причин потери пакета, другой причиной может быть ненадежная работа коммуникационных устройств (отказы оборудования, искажения данных из-за помех). Тем не менее так как реакция на перегрузки и ненадежную работу сети должна быть одинаковой Резервирование ресурсов 209 и состоять в снижении скорости передачи, то неоднозначность причины потери пакета не является проблемой. Примером протокола, использующего неявную информацию о перегрузках, является протокол TCP. Этот протокол с помощью явной информации обратной связи (о размере окна) осуществляет контроль потока, а с помощью неявной (потери пакетов, дубликаты квитанций) — управляет перегрузкой. Резервирование ресурсов Резервирование ресурсов и контроль допуска Рассмотренные методы поддержания качества обслуживания ориентированы в основном на борьбу с перегрузками или предотвращение их в пределах отдельного узла сети. Вме сте с тем понятно, что для обеспечения гарантированного уровня качества обслуживания некоторого потока пакетов необходимо скоординированное применение этих методов на всем пути следования потока через сеть. Такой координирующей процедурой является процедура резервирования ресурсов сети для определенного потока. Эта процедура по зволяет настроить все механизмы поддержания качества обслуживания вдоль следования потока таким образом, чтобы поток с некоторыми заданными характеристиками скорости был обслужен с заданными характеристиками QoS. Основная идея процедуры состоит в том, что каждому узлу сети вдоль маршрута следова ния потока задается вопрос, может ли этот узел обслужить некоторый новый поток с задан ными характеристиками QoS, если известны предельные характеристики скорости потока, такие как средняя и пиковая скорости? Каждый узел при ответе на этот вопрос должен оцеиить свои возможности, то есть проверить, достаточно ли у него свободных ресурсов, чтобы принять на обслуживание новый поток и обслуживать его качественно. При поло жительном ответе узел должен некоторым образом зарезервировать часть своих ресурсов для данного потока, чтобы при поступлении пакетов потока на входные интерфейсы ис пользовать эти ресурсы для их обслуживания с гарантированным уровнем качества. В общем случае каждый узел самостоятельно решает, какие ресурсы он должен резер вировать для обслуживания некоторого потока с заданным качеством. Как показывает практика, основным ресурсом, требуемым для качественного обслуживания пакетов, является пропускная способность интерфейса, через который пакеты потока покидают узел. Поэтому в дальнейшем мы будем, несколько упрощая действительное положение дел, употреблять формулировку «резервирование пропускной способности» вместо «ре зервирование ресурсов». Смысл резервирования состоит в том, чтобы ограничить уровень перегрузок определенного потока или нескольких потоков некоторой приемлемой величиной. Эта величина должна быть такой, чтобы механизмы QoS (управления очередями, кондиционирования трафика и обратной связи), применяемые в узлах сети, справлялись с кратковременными неболь шими перегрузками и обеспечивали требуемые значения характеристик QoS. Однако что же означает резервирование пропускной способности в сетях с коммутацией пакетов? Ранее мы не встречались с таким механизмом, все предыдущие объяснения ра боты сетевых устройств обходились без него. Дело в том, что этот механизм не является 210 Глава 7. Методы обеспечения качества обслуживания обязательным, а используется только в тех случаях, когда требуется гарантированное вы полнение требований качества обслуживания пакетов. Резервирование пропускной способности в сетях с коммутацией пакетов похоже на анало гичную процедуру в сетях с коммутацией каналов тем, что определенному потоку данных назначается определенная часть пропускной способности линии связи. Однако это назна чение здесь гораздо более гибкое — если отведенная пропускная способность в какой-то период времени недоиспользуется потоком, то она может быть передана другим потокам. Это обстоятельство позволяет более эффективно расходовать пропускную способность линий связи, но приводит к эффекту постепенной деградации качества транспортного сервиса из-за перегрузок и очередей вместо простого отказа в обслуживании, который имеет место в сети с коммутацией каналов, когда пропускной способности оказывается недостаточно для обслуживания некоторого потока. Цель гибкого резервирования — обе спечить поток зарезервированной пропускной способностью в те периоды, когда она ему нужна вся, то есть в периоды перегрузок. Другим отличием резервирования в пакетных сетях является то обстоятельство, что оно может выполняться не только «из конца в ко нец», но и для каких-то отдельных узлов по маршруту потока, однако этот случай не может гарантировать необходимый уровень характеристик QoS, так как перегрузка даже в одном узле может привести к задержкам и потерям пакетов. Резервирование пропускной способности в пакетной сети «из конца в конец» начинается с операции, называемой контролем допуска в сеть потока, который просит зарезервиро вать для своего обслуживания некоторую пропускную способность сети между ее двумя конечными узлами. Эта операция состоит в проверке наличия доступной (то есть незаре зервированной для других потоков) пропускной способности в каждом из узлов сети на протяжении всего маршрута следования потока (здесь мы не останавливаемся на проблеме поиска маршрута потока, она подробно рассматривается далее в разделе «Инжиниринг трафика»). Очевидно, что максимальная средняя скорость потока должна быть меньше, чем запрашиваемая пропускная способность, иначе поток будет обслужен с очень плохим качеством даже несмотря на то, что ему была зарезервирована некоторая пропускная способность. Если результат контроля допуска положителен в каждом узле (случай, показанный на рис. 7.15), то сетевые устройства запоминают факт резервирования, чтобы при появлении пакетов данного потока распознать их и выделить им зарезервированную пропускную способность. Кроме того, при успешном резервировании доступная для резервирования (в будущем) пропускная способность уменьшается на величину, зарезервированную за данным потоком. Как видно из описания процедуры, для ее реализации необходимо знать маршрут следования потока, для которого выполняется резервирование. В сетях с распре деленным принципом построения таблиц маршрутизации, когда каждое сетевое устройство самостоятельно определяет следующий по маршруту узел, выяснение маршрута может представлять достаточно сложную задачу, но мы оставим исследование этой проблемы до рассмотрения конкретных технологий в последующих главах, а пока будем считать, что маршрут каким-то образом нам известен. Нужно подчеркнуть, чтб резервирование — это процедура, которая выполняется перед тем, как реальный трафик будет направлен в сеть. Давайте теперь посмотрим, каким же образом выполняется собственно выделение пропускной способности потоку в моменты времени, когда его пакеты поступают на вход коммуникационного устройства 52, которое запомнило факт резервирования пропускной способности для потока F1 на выходном интерфейсе Р2 (рис 7.16). Резервирование ресурсов 211 Контроль допуска = Да способность интерфейса Рис. 7.15. Контроль допуска потока Устройство S2 Очередь «по умолчанию»: 7S % " ; . ' у Очередь для резервирования: 25 % Устройство S3 Д О Я ш в Все потоки Потоки F1 Рис. 7.16. Выделение зарезервированной пропускной способности Такое выделение можно обеспечить разными способами, в нашем примере это будет сделано с использованием взвешенных очередей. Пусть потоку F1 при резервировании было выделено 25 % пропускной способности интерфейса Р2 (обычно резервирование можно выполнять как в абсолютных величинах, например в мегабитах в секунду, так и в процентах; это, собственно, детали реализации механизмов QoS в конкретных устройствах). Также для простоты будем считать, что резервирование было выполнено только для потока F1, в то же время для всех других потоков, которые проходят через выходной интерфейс Р2, резервирования не производилось. 212 Глава 7. Методы обеспечения качества обслуживания Для того чтобы добиться желаемого результата, достаточно организовать для выходного интерфейса две взвешенные очереди — очередь для потока F1 с весом 25 % и очередь «по умолчанию» для всех остальных потоков. Кроме того, необходимо активизировать клас сификатор, который будет проверять пакеты на всех входных интерфейсах устройства 52 (на рис. 7.16 показан только один входной интерфейс Р1), отбирать пакеты потока F1 по заданным при резервировании признакам и направлять их в очередь для потока F1. В те периоды времени, когда скорость потока F1 окажется меньше зарезервированной пропускной способности в 25 %, неиспользованная ее часть будет потребляться потоками из очереди «по умолчанию» — в силу алгоритма работы взвешенных очередей. Зато в периоды, когда скорость потока F1 достигнет заявленного максимума средней скорости в 25 %, вся зарезервированная пропускная способность выходного интерфейса будет выделяться потоку F1, а все остальные потоки будут довольствоваться оставшимися 75 %. Значения в 75 % может оказаться недостаточно для качественного обслуживания этих потоков, и тогда их пакеты будут задерживаться или даже теряться при переполнении очереди «по умолчанию». Может оказаться и так, что значения в 75 % окажется слишком много для остальных потоков, и они будут обслуживаться с высоким качеством; какая из двух ситуаций будет наблюдаться чаще, мы не знаем, так как у нас нет никакой предварительной информации о «других» потоках. Этот пример хорошо иллюстрирует особенность методов обеспечения параметров QoS — они требуют контроля над потоками, то есть знания их маршрутов и средних скоростей. В противном случае гарантий параметров QoS достичь трудно, можно говорить только об обслуживании «по возможности». В описанном примере не использован механизм профилирования трафика. При наличии отдельной взвешенной очереди для потока, зарезервировавшего пропускную способность, этот механизм не является обязательным, так как сам механизм взвешенных очередей ограничит пропускную способность потока в нужных пределах в периоды перегрузок, когда все взвешенные очереди заполняются полностью. Однако количество взвешенных очередей в сетевых устройствах обычно ограничено не слишком большой величиной, например, их может быть не более 16 или 32. В то же время количество потоков, для которых желательно зарезервировать пропускную способность, может быть значительно больше. В такой ситуации можно организовать одну взвешенную очередь для всех резервируемых потоков с пропускной способностью, равной или большей сумме резервируемых пропускных способностей потоков. А для того чтобы требуемые доли пропускной способности выделялись каждому потоку, необходимо после классификации выполнить профилирование каждого потока на уровне запрошенной им скорости. Правда, мы лишаемся в этом случае в периоды неактивности других потоков возможности предоставлять отдельным потокам больше пропускной способности, чем они запросили, но это плата за масштабируемое решение, основанное на одной взвешенной резервируемой очереди. Использование взвешенных очередей — не единственный вариант резервирования пропускной способности в пакетных сетях. Для той же цели можно задействовать приоритетные очереди.' Применение приоритетной очереди может быть не только возможным, но и необходимым, если потоку помимо определенного уровня пропускной способности требуется обеспечить минимально возможный уровень задержек пакетов. При использовании приоритетной очереди профилирование необходимо всегда, так как приоритетный механизм не обеспечивает ограничения скорости потока, как это делает механизм взвешенного обслуживания. Резервирование ресурсов 213 Нужно подчеркнуть, что резервирование приводит к ожидаемым результатам только в тех случаях, когда реальная скорость потоков, для которых было выполнено резервирование, оказывается не выше, чем пропускная способность, запрошенная при резервировании и реализованная при конфигурировании сетевых устройств. В противном случае результаты могут оказаться даже хуже, чем при наличии единственной очереди «по умолчанию» и обслуживании «по возможности». Так, если скорость потока окажется выше, чем предел, учитываемый механизмом профилирования, то часть пакетов будет отброшена даже в том случае, если устройство не перегружено и могло бы отлично справиться с предложенным трафиком без применения механизмов QoS. Что же меняется в сети после резервирования? При поступлении на входной интерфейс коммутатора пакетов потока, для которых было выполнено резервирование, механизм классификации распознает пакеты, относящиеся к этому потоку, и направляет их в нужную очередь. При этом пакеты могут проходить через механизм профилирования, призванный предотвратить ситуацию обслуживания потока, скорость которого превышает оговоренную при резервировании. В результате резервирования сеть оказывается загруженной рационально. В ней нет ресур сов, которые работают со значительной перегрузкой. Механизмы организации очередей по-прежнему обеспечивают временную буферизацию пакетов в периоды пульсаций. Так как мы планировали загрузку ресурсов из расчета средних скоростей передачи данных, то на периодах пульсаций в течение некоторого ограниченного времени скорости потоков мо гут превышать средние скорости, так что механизмы борьбы с перегрузками по-прежнему нужны. Для обеспечения требуемых средних скоростей потоков на периодах перегрузок соответствующие потоки могут обслуживаться с помощью взвешенных очередей. Сохраняется также главное преимущество метода коммутации пакетов: если некоторый поток не расходует отведенной ему пропускной способности, то она может выделяться для обслуживания другого потока. Нормальной практикой является резервирование пропуск ной способности только для части потоков, в то время как другие потоки обслуживаются без резервирования, получая обслуживание по возможности (с максимальными усилия ми). Временно свободная пропускная способность может для таких потоков выделяться динамически, без нарушения взятых обязательств по обслуживанию потоков, для которых ресурсы зарезервированы. ПРИМЕР-АНАЛОГИЯ --------------------------------------------------------------------------------------- Проиллюстрируем п рин ципиальное отличие резервирования ресурсов в сетях с к о м му т а ц ие й пакетов и каналов на приме ре автомобильного трафика. Пу с т ь в некотором городе р е ш и л и обеспечить неко торые привилегии д ля д в и ж е н и я м а ш и н скорой п о м о щ и . В ходе о б с у ж д е н и я этого проекта возникли две к о н к у р и р у ю щ и е идеи его реализации. П е р в ы й вариант предусматривал на всех дорогах города выделение для автомобилей скорой п о м о щ и отдельной полосы, недоступной д ля другого транспорта ни при каких условиях, д а ж е если в какой-то период врем е н и м а ш и н скорой п о м о щ и на дороге нет. Во втором случае для м а ш и н скорой п о м о щ и т а кж е выделялась отдельная полоса, но в отсутствии привилегированных м а ш и н по ней разрешалось двигаться и др у г о м у транспорту В случае ж е п о явление м а ш и н ы скорой п о м о щ и автомобили, з а н и м а ю щ и е в ы д е л е н н у ю полосу, об яз а ны б ы л и ее освободить. Нетру д н о заметить, что п е р в ы й вариант соответствует п р и н ц и п у резервирования в сетях с коммутацией каналов — пропускная способность в ы д е л е н н о й п о л о с ы м о н о п о л ь н о используется автомобилями скорой п о м о щ и и не м о ж е т б ы т ь перераспределена д а ж е тогда, когда она и м не нужна. Второй вариант является аналогией резервирования в сетях с к о м м у т а ц и е й пакетов. П р о п у с к н а я способность дороги здесь расходуется более эффективно, но для потока автомобилей скорой п о м о щ и такой вариант менее благоприятен, так как п р и необходимости освобо ж д е н и я п о л о с ы в озникают п о мехи, создаваемые н е п р и в и л е г и р о в а н н ы м и м а ш и н а м и . 214 Глава 7. Методы обеспечения качества обслуживания Сеть с коммутацией каналов подобного перераспределения ресурсов выполнить не может, так как у нее в распоряжении нет независимо адресуемых единиц информации — па кетов! Обеспечение заданного уровня задержек При описании процедуры резервирования пропускной способности мы сфокусировались на механизмах выделения пропускной способности некоторому потоку и оставили без внимания одну важную деталь: какую пропускную способность должен запрашивать поток для того, чтобы задержки его пакетов не превышали некоторой величины? Единственное соображение, которое было высказано по этому поводу, заключалось в том, что запрашивае мая пропускная способность должна быть выше, чем максимальная скорость потока, иначе некоторая часть пакетов просто может постоянно отбрасываться сетью, так что качество обслуживания окажется гарантированно низким. Однако эта «деталь» на самом деле оборачивается сложной проблемой, так как мы не мо жем, например, сконфигурировать очередь приоритетного или взвешенного обслуживания так, чтобы она строго обеспечила какой-либо заранее заданный порог задержек и их вариа ции. Направление пакетов в приоритетную очередь только позволяет гарантировать, что задержки будут достаточно низкими — существенно ниже, чем у пакетов, которые обраба тываются в очереди по умолчанию. Мы также знаем, что при наличии взвешенных очередей задержки будут снижаться со снижением относительного коэффициента использования пропускной способности, отведенной очереди. Но это все качественные рассуждения, а вот количественно оценить значения задержек очень сложно. Каким же образом поставщик услуг может выполнить свои обязательства перед клиента ми? Очень «просто» — он должен постоянно измерять фактические значения характе ристик трафика в сети и гарантировать пользователям сети величины задержек в соот ветствии с наблюдаемыми результатами. ПРИМЕР Пусть сеть предоставляет три уровня качества обслуживания трафика: золотой для очень чувствительного к задержкам трафика, серебряный для трафика, чувствительного к задержкам и требующего гарантированной пропускной способности, и бронзовый для трафика, обслужи ваемого по возможности. Оператор сети может различными способами добиться того, чтобы на золотом уровне обслуживания действительно гарантировались очень низкие величины за держек, вариаций задержек и потерь пакетов для трафика, на серебряном — достаточно низкие значения этих характеристик, но выше, чем у золотого, а на бронзовом гарантировались только определенные величины потерь пакетов и вовсе не гарантировались значения задержек. Для реализации такой стратегии обслуживания оператор может, например, организовать на всех коммутаторах сети приоритетную очередь для обслуживание золотого трафика и отвести ей 25 % пропускной способности на каждом выходном интерфейсе; взвешенную очередь с 50 % пропускной способности для серебряного трафика и взвешенную очередь с оставшимися 25 % для бронзового трафрка. А далее он должен принимать на обслуживание потоки пользовате лей в каждый класс и выполнять постоянный мониторинг характеристик трафика каждого класса. И если, например, мониторинг показывает, что задержки у 95 % пакетов золотого трафика не превышают 15 мс, то оператор может гарантировать эту величину пользователям золотого уровня обслуживания. Но так как оператору нужно быть готовым к приему на об служивание новых пользователей, то естественно было бы оставлять некоторый запас и га Инжиниринг трафика 215 рантировать, скажем, задержку в 20 мс вместо фактического значения в 15 мс. Аналогичным образом нужно поступать с серебряным трафиком, а для бронзового достаточно измерять только долю потерь пакетов. В том случае, когда мониторинг показывает приближение фак тических параметров трафика определенного уровня обслуживания к гарантируемым, можно либо добавить пропускную способность для очередей этого класса, либо прекратить прием новых пользователей в этот класс. Как видно даже из этого краткого описания, гарантирование уровня задержек в сети является весьма сложным делом; этим объясняется тот факт, что часто операторы пред почитают давать качественное описание различных классов услуг, говоря, например, о минимальных задержках наивысшего класса обслуживания, но не давая количественных гарантий. Инжиниринг трафика При рассмотрении системы обеспечения качества обслуживания, основанной на резервиро вании, мы не стали затрагивать вопрос маршрутов следования потоков через сеть. Точнее, мы считали, что маршруты каким-то образом выбраны, причем этот выбор делается без учета требований QoS. И в условиях заданности маршрутов мы старались обеспечить про хождение по этим маршрутам такого набора потоков, для которого можно гарантировать соблюдение требований QoS. Очевидно, что задачу обеспечения требований QoS можно решить более эффективно, если считать, что маршруты следования трафика не фиксированы, а также подлежат выбору. Это позволило бы сети обслуживать больше потоков с гарантиями QoS при тех же харак теристиках самой сети, то есть пропускной способности каналов и производительности коммутаторов и маршрутизаторов. Задачу выбора маршрутов для потоков (или классов) трафика с учетом соблюдения требований QoS решают методы инжиниринга трафика (Traffic Engineering, ТЕ). С по мощью этих методов стремятся добиться еще одной цели — по возможности максимально и сбалансировано загрузить все ресурсы сети, чтобы сеть при заданном уровне качества обслуживания обладала как можно более высокой суммарной производительностью. Методы ТЕ, как и другие рассмотренные ранее методы, основаны на резервировании ресурсов. То есть они не только позволяют найти рациональный маршрут для потока, но и резервируют для него пропускную способность ресурсов сети, находящихся вдоль этого маршрута. Методы инжиниринга трафика являются сравнительно новыми для сетей с коммутацией пакетов. Это объясняется во многом тем, что передача эластичного трафика не предъявляла строгих требований к параметрам QoS. Кроме того, Интернет долгое время не являлся коммерческой сетью, поэтому задача максимального использования ресурсов не считалась первоочередной для ІР-технологий, лежащих в основе Интернета. Сегодня ситуация изменилась. Сети с коммутацией пакетов должны передавать различные виды трафика с заданным качеством обслуживания, максимально используя возможности своих ресурсов. Однако для этого им нужно изменить некоторые, ставшие уже традици онными; подходы к выбору маршрутов. 216 Глава 7. Методы обеспечения качества обслуживания Недостатки традиционных методов маршрутизации Основным принципом работы протоколов маршрутизации в сетях с коммутацией паке тов вот уже долгое время является выбор маршрута на основе топологии сети без учета информации о ее текущей загрузке. Для каждой пары «адрес источника — адрес назначения» такие протоколы выбирают единственный маршрут, не принимая во внимание информационные потоки, протекающие через сеть. В результате все потоки между парами конечных узлов сети идут по кратчай шему (в соответствии с некоторой метрикой) маршруту. Выбранный маршрут может быть более рациональным, например, если в расчет принимается номинальная пропускная способность каналов связи или вносимые ими задержки, или менее рациональным, если учитывается только количество промежуточных маршрутизаторов между исходным и ко нечным узлами. ВНИМАНИЕ------------------------------------------------------------------------------------------------------ В традиционных методах маршрутизации наилучший выбранный маршрут рассматривается в каче стве единственно возможного, даже если существуют другие, хотя и несколько худшие маршруты. Классическим примером неэффективности такого подхода является так называемая «рыба» — сеть с топологией, приведенной на рис. 7.17. Несмотря на то что между комму таторами А и Е существует два пути (верхний — через коммутатор Я, и нижний — через коммутаторы С и D), весь трафик от коммутатора А к коммутатору Е в соответствии с тра диционными принципами маршрутизации направляется по верхнему пути. Только потому, что нижний путь немного (на один ретрансляционный участок) длиннее, чем верхний, он игнорируется, хотя мог бы работать «параллельно» с верхним путем. Такой подход приводит к тому, что даже если кратчайший путь перегружен, пакеты все равно посылаются по этому пути. Так, в сети, представленной на рис. 7.17, верхний путь будет продолжать использоваться даже тогда, когда его ресурсов перестанет хватать для обслуживания трафика рт коммутатора Л к коммутатору £, а нижний путь будет простаи вать, хотя, возможно, ресурсов коммутаторов В и С хватило бы для качественной передачи этого трафика. Налицо явная ущербность методов распределения ресурсов сети — одни ресурсы работают с перегрузкой, а другие не используются вовсе. Традиционные методы борьбы с перегруз ками эту проблему решить не могут, нужны качественно иные механизмы. Инжиниринг трафика 217 Методы инжиниринга трафика Исходными данными для методов инжиниринга трафика являются: □ характеристики передающей сети — ее топология, а также производительность состав ляющих ее коммутаторов и линий связи (рис. 7.18); □ сведения о предложенной нагрузке сети, то есть о потоках трафика, которые сеть долж на передать между своими пограничными коммутаторами (рис. 7.19). Рис. 7.18. Топология сети и производительность ее ресурсов Рис. 7.19. Предложенная нагрузка Пусть производительность процессора каждого коммутатора достаточна для обслуживания трафика всех его входных интерфейсов, даже если трафик поступает на интерфейс с мак симально возможной скоростью, равной пропускной способности интерфейса. Поэтому при резервировании ресурсов будем считать ресурсами пропускную способность линий связи между коммутаторами, которая определяет также пропускную способность двух интерфейсов, связанных этой линией. Каждый поток характеризуется точкой входа в сеть, точкой выхода из сети и профилем трафика. Для получения оптимальных решений можно использовать детальное описа ние каждого потока, например, учитывать величину возможной пульсации трафика или 218 Глава 7. Методы обеспечения качества обслуживания требования QoS. Однако поскольку количественно оценить их влияние на работу сети достаточно сложно, а влияние этих параметров на характеристики QoS менее значимо, то для нахождения субоптимального распределения путей прохождения потоков через сеть, как правило, учитываются только их средние скорости передачи данных, что и показано на рис. 7.19. Методы инжиниринга трафика чаще применяют не к отдельным, а к агрегированным по токам, которые являются объединением нескольких потоков. Так как мы ищем общий маршрут для нескольких потоков, то агрегировать можно только потоки, имеющих общие точки входа в сеть и выхода из сети. Агрегированное задание потоков позволяет упростить задачу выбора путей, так как при индивидуальном рассмотрении каждого пользователь ского потока промежуточные коммутаторы должны хранить слишком большие объемы информации, поскольку индивидуальных потоков может быть очень много. Необходимо, однако, подчеркнуть, что агрегирЬвание отдельных потоков в один возможно только в том случае, когда все потоки, составляющие агрегированный поток, предъявляют одни и те же требования к качеству обслуживания. Далее в этом разделе мы будем для краткости поль зоваться термином «поток» как для индивидуального потока, так и для агрегированного, поскольку принципы ТЕ от этого не меняются. Задача ТЕ состоит в определении маршрутов прохождения потоков трафика через сеть, то есть для каждого потока требуется найти точную последовательность промежуточных коммутаторов и их интерфейсов. При этом маршруты должны быть такими, чтобы все ре сурсы сети были нагружены до максимально возможного уровня, а каждый поток получал требуемое качество обслуживания. Максимальный уровень использования ресурсов выбирается таким образом, чтобы ме ханизмы управления перегрузкой могли обеспечить требуемое качество обслуживания. Это означает, что для эластичного трафика максимальное значение выбирается не больше, чем 0,9, а для чувствительного к задержкам трафика — не больше, чем 0,5. Так как обычно резервирование производится не для всех потоков, то нужно оставить часть пропускной способности для свободного использования. Поэтому приведенные максимальные зна чения обычно уменьшают до 0,75 и 0,25 соответственно. Для упрощения рассуждений мы будем считать далее, что в сети передается один вид трафика, а потом покажем, как обобщить методы ТЕ для случая трафика нескольких типов. Существуют различные формальные математические определения задачи ТЕ. Мы здесь ограничимся наиболее простым определением, тем более что сегодня оно чаще всего ис пользуется на практике. Будем считать, что решением задачи ТЕ является такой набор маршрутов для заданного множества потоков трафика, для которого все значения коэффициентов использования ресурсов вдоль маршрута следования каждбго потока не превышают некоторого заданного ПОрОГа -/Сщах* На рис. 7.20 показано одно из возможных решений задачи, иллюстрируют которую рис. 7.18 и 7.19. Найденные маршруты гарантируют, что максимальный коэффициент использова ния любого ресурса для любого потока не превышает 0,6. Решение задачи ТЕ можно искать по-разному. Во-первых, можно искать его заблаговре менно, в фоновом режиме. Для этого нужно знать исходные данные: топологию и произво дительность сети, входные и выходные точки потоков трафика, среднюю скорость передачи данных в них. После этого задачу рационального распределения путей следования трафика при фиксированных точках входа и выхода, а также заданном уровне максимального Инжиниринг трафика 219 значения коэффициента использования ресурса можно передать некоторой программе, которая, например, с помощью направленного перебора вариантов найдет решение. Ре зультатом работы программы будут точные маршруты для каждого потока с указанием всех промежуточных коммутаторов. Рис. 7.20. Распределение нагрузки по сети — выбор путей передачи трафика Во-вторых, задачу ТЕ можно решать в оперативном режиме, поручив ее самим коммутато рам сети. Для этого используются модификации стандартных протоколов маршрутизации. Модификация протоколов маршрутизации состоит в том, что они сообщают друг другу не только топологическую информацию, но и текущее значение свободной пропускной способности для каждого ресурса. После того как решение найдено, нужно его реализовать, то есть воплотить в таблицах маршрутизации. На этом этапе может возникнуть проблема — в том случае, если мы хотим проложить эти маршруты в дейтаграммной сети. Дело в том, что таблицы маршрутизации в них учитывают только адреса назначения пакетов. Коммутаторы и маршрутизаторы таких сетей (например, IP-сетей) не работают с потоками, для них поток в явном виде не существует, каждый пакет при его продвижении является независимой единицей комму тации. Можно сказать, что таблицы продвижения этих сетей отражают только топологию сети (направления продвижения к определенным адресам назначения). Поэтому привнесение методов резервирования в дейтаграммные сети происходит с боль шими трудностями. В протоколах резервирования, чтобы определить поток для дей таграммного маршрутизатора помимо адреса назначения используется некоторый до полнительный набор признаков. При этом понятие потока требуется только на этапе резервирования, а при продвижении пакетов по-нрежнему работает традиционная для этого типа сетей схема, учитывающая только адрес назначения. Теперь представим ситуацию, когда у нас имеется несколько потоков между двумя конеч ными узлами, и мы хотим направить их по разным маршрутам. Мы приняли такое решение, исходя из баланса загруЗки сети, когда решали задачу инжиниринга трафика. Дейтаграмм ный коммутатор или маршрутизатор не имеет возможности реализовать наше решение, потому что для всех этих потоков у него в таблице продвижения есть только одна запись, соответствующая общему адресу назначения пакетов этих потоков. Изменять логику рабо ты коммутаторов и маршрутизаторов дейтаграммных сетей достаточно нецелесообразно, поскольку это слишком принципиальная модернизация. |