• Миф о службе QoS

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

    Определение

    Quality of Service (QoS) - это технология предоставления определенным классам трафика заданных приоритетов при обслуживании. Такой подход имеет смысл лишь при возникновении очереди. Последняя образуется в особо «узких» местах. И часто называют ее «бутылочным горлышком». Типичным примером очереди можно считать Интернет в офисе, где компьютеры подключены к сети со скоростью около 100 Мбит/сек. При этом все они используют единый канал. Однако технологию QoS нельзя считать панацеей. Если «горлышко» слишком узкое, часто переполняется буфер интерфейса. Именно в него помещаются пакеты данных.

    Параметры

    Далее будет подробно рассмотрена настройка QoS. Внесение изменений в очереди заключается в корректировке классов. Далее для них следует определить параметры для Теперь следует применить на интерфейс созданную конструкцию. Дальнейшая настройка QoS заключается в сортировке пакетов на классы. Для этого можно использовать различные атрибуты. Например, основываясь на поле DSCP, выделяя соответствующий конкретный протокол либо указывая как шаблон ACL. Давайте разберемся, откуда маршрутизатору известна вся полоса. Данные поступают из атрибута bandwidth в интерфейсе. Даже когда он явно не сконфигурирован, какое-то его значение возникает обязательно. Его можно увидеть при помощи команды sh int.

    Принцип работы

    Когда осуществляется настройка QoS, важно учесть, что по умолчанию в нашем распоряжении не вся полоса, а лишь 75 %. Пакеты, не попавшие в состав других классов, поступают в class-default. Маршрутизаторы следят, чтобы администратор не выдал больше полосы, чем имеет в распоряжении. Подобные попытки пресекаются. Создаётся впечатление, будто политика намерена выдавать классам не более заданного показателя. Однако подобная ситуация создается лишь в том случае, если наполнены все очереди. В случае опустения какой-либо, предназначенную ей полосу пропорционально делят наполненные «соседи». Если данные идут из класса, имеющего статус priority, маршрутизатор сосредотачивается именно на передаче подобных пакетов. Причем приоритетных очередей бывает несколько. В таком случае полоса между ними делится пропорционально заданным процентам. Когда приоритетные пакеты заканчиваются, наступает очередь для CBWFQ.

    За каждый временной отсчёт из всех очередей «зачерпывается» доля данных. Ее необходимо указать в настройке соответствующего класса. Если часть очередей по определенным причинам пустует, их полоса пропорционально делится. Теперь разберем, что делать, когда необходимо строго рубить данные из класса, которые выходят за указанную скорость. Важно помнить, что указание bandwidth только распределяет полосу, когда очереди полностью загружены. Вы можете указать необходимую среднюю скорость и максимальный «выброс». Чем больше последний показатель, тем быстрее передача может отклоняться в сторону. Мы коротко описали, на каких принципах основывается настройка QoS.

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

    Механизмы QoS

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

    Рассмотрим следующие модели:

    • Best Effort –негарантированная доставка используется во всех сетях по умолчанию. Положительная сторона заключается в том, что эта модель не требует абсолютно никаких усилий для реализации. Не используются никакие механизмы QoS, весь трафик обслуживается по принципу “пришел первым – обслужили первым”. Такая модель не подходит для современных сетевых сред;
    • Integrated Services (IntServ) – эта модель интегрированного обслуживания использует метод резервирования. Например, если пользователь хотел сделать VoIP вызов 80 Кбит/с по сети передачи данных, то сеть, разработанная исключительно для модели IntServ , зарезервировала бы 80 Кбит/с на каждом сетевом устройстве между двумя конечными точками VoIP, используя протокол резервирования ресурсов RSVP (Resource Reservation Protocol) . На протяжении звонка эти 80 Кбит/с будут недоступны для другого использования, кроме как для VoIP звонка. Хотя модель IntServ является единственной моделью, обеспечивающей гарантированную пропускную способность, она также имеет проблемы с масштабируемостью. Если сделано достаточное количество резервирований, то сеть просто исчерпает полосу пропускания;
    • Differentiated Services (DiffServ) – модель дифференцированного обслуживания является самой популярной и гибкой моделью для использования QoS. В этой модели можно настроить каждое устройство так, чтобы оно могло использовать различные методы QoS, в зависимости от типа трафика. Можно указать какой трафик входит в определенный класс и как этот класс должен обрабатываться. В отличие от модели IntServ , трафик не является абсолютно гарантированным, поскольку сетевые устройства не полностью резервируют полосу пропускания. Однако DiffServ получает полосу, близкую к гарантированной полосе пропускания, в то же время решая проблемы масштабируемости IntServ . Это позволило этой модели стать стандартной моделью QoS;

    Инструменты QoS

    Сами механизмы QoS представляют собой ряд инструментов, которые объединяются для обеспечения уровня обслуживания, который необходим трафику. Каждый из этих инструментов вписывается в одну из следующих категорий:

    • Классификация и разметка (Classification and Marking) - Эти инструменты позволяют идентифицировать и маркировать пакет, чтобы сетевые устройства могли легко идентифицировать его по мере пересечения сети. Обычно первое устройство, которое принимает пакет, идентифицирует его с помощью таких инструментов, как списки доступа (access-list), входящие интерфейсы или deep packet inspection (DPI), который рассматривает сами данные приложения. Эти инструменты могут быть требовательны к ресурсам процессора и добавлять задержку в пакет, поэтому после того как пакет изначально идентифицирован, он сразу помечается. Маркировка может быть в заголовке уровня 2 (data link ), позволяя коммутаторам читать его и/или заголовке уровня 3 (network ), чтобы маршрутизаторы могли его прочитать. Для второго уровня используется протокол 802.1P , а для третьего уровня используется поле Type of Service . Затем, когда пакет пересекает остальную сеть, сетевые устройства просто смотрят на маркировку, чтобы классифицировать ее, а не искать глубоко в пакете;
    • Управление перегрузками (Congestion Management) – Перегрузки возникают, когда входной буфер устройства переполняется и из-за этого увеличивается время обработки пакета. Стратегии очередей определяют правила, которые маршрутизатор должен применять при возникновении перегрузки. Например, если интерфейс E1 WAN был полностью насыщен трафиком, маршрутизатор начнет удерживать пакеты в памяти (очереди), чтобы отправить их, когда станет доступна полоса пропускания. Все стратегии очередей направлены на то, чтобы ответить на один вопрос: “когда есть доступная пропускная способность, какой пакет идет первым?“;
    • Избегание заторов (Congestion Avoidance) – Большинство QoS механизмов применяются только тогда, когда в сети происходит перегрузка. Целью инструментов избегания заторов является удаление достаточного количества пакетов несущественного (или не очень важного) трафика, чтобы избежать серьезных перегрузок, возникающих в первую очередь;
    • Контроль и шейпинг (Policing and Shaping) – Этот механизм ограничивает пропускную способность определенного сетевого трафика. Это полезно для многих типичных «пожирателей полосы» в сети: p2p приложения, веб-серфинг, FTP и прочие. Шейпинг также можно использовать, чтобы ограничить пропускную способность определенного сетевого трафика. Это нужно для сетей, где допустимая фактическая скорость медленнее физической скорости интерфейса. Разница между этими двумя механизмами заключается в том, что shaping формирует очередь из избыточного трафика, чтобы выслать его позже, тогда как policing обычно сбрасывает избыточный трафик;
    • Эффективность линков (Link Efficiency) – Эта группа инструментов сосредоточена на доставке трафика наиболее эффективным способом. Например, некоторые низкоскоростные линки могут работать лучше, если потратить время на сжатие сетевого трафика до его отправки (сжатие является одним из инструментов Link Efficiency);
    Механизмы Link Efficiency

    При использовании медленных интерфейсов возникают две основных проблемы:

    • Недостаток полосы пропускания затрудняет своевременную отправку необходимого объема данных;
    • Медленные скорости могут существенно повлиять на сквозную задержку из-за процесса сериализации (количество времени, которое маршрутизатору требуется на перенос пакета из буфера памяти в сеть). На этих медленных линках, чем больше пакет, тем дольше задержка сериализации;

    Чтобы побороть эти проблемы были разработаны следующие Link Efficiency механизмы:

    • Сжатие полезной нагрузки (Payload Compression) – сжимает данные приложения, оправляемые по сети, поэтому маршрутизатор отправляет меньше данных, по медленной линии;
    • Сжатие заголовка (Header Compression) – Некоторый трафик (например, такой как VoIP) может иметь небольшой объем данных приложения (RTP-аудио) в каждом пакете, но в целом отправлять много пакетов. В этом случае количество информации заголовка становится значимым фактором и часто потребляет больше полосы пропускания, чем данные. Сжатие заголовка решает эту проблему напрямую, устраняя многие избыточные поля в заголовке пакета. Удивительно, что сжатие заголовка RTP, также называемое сжатым транспортным протоколом реального времени (Compressed Real-time Transport Protocol - cRTP ) уменьшает 40-байтовый заголовок до 2-4 байт!;
    • Фрагментация и чередование (Link Fragmentation and Interleaving) - LFI решает проблему задержки сериализации путем измельчения больших пакетов на более мелкие части до их отправки. Это позволяет маршрутизатору перемещать критический VoIP-трафик между фрагментированными частями данных (которые называются «чередованием» голоса);
    Алгоритмы очередей

      Постановка в очереди (queuing ) определяет правила, которые маршрутизатор должен применять при возникновении перегруженности. Большинство сетевых интерфейсов по умолчанию используют базовую инициализацию First-in, First-out (FIFO) . В этом методе сначала отправляется любой пакет, который приходит первым. Хотя это кажется справедливым, не весь сетевой трафик создается равным. Основная задача очереди - обеспечить, чтобы сетевой трафик, обслуживающий критически важные или зависящие от времени бизнес-приложения, отправлялся перед несущественным сетевым трафиком. Помимо очередности FIFO используются три первичных алгоритма очередности:

    • Weighted Fair Queuing (WFQ) – WFQ пытается сбалансировать доступную полосу пропускания между всеми отправителями равномерно. Используя этот метод, отправитель с высокой пропускной способностью получает меньше приоритета, чем отправитель с низкой пропускной способностью;
    • Class-Based Weighted Fair Queuing (CBWFQ) – этот метод массового обслуживания позволяет указать гарантированные уровни пропускной способности для различных классов трафика. Например, вы можете указать, что веб-трафик получает 20 процентов полосы пропускания, тогда как трафик Citrix получает 50 процентов пропускной способности (вы можете указать значения как процент или конкретную величину полосы пропускания). Затем WFQ используется для всего неуказанного трафика (остальные 30 процентов в примере);
    • Low Latency Queuing (LLQ) - LLQ часто упоминается как PQ-CBWFQ, потому работает точно так же, как CBWFQ, но добавляется компонент приоритета очередей (Priority Queuing - PQ ). Если вы указываете, что определенный сетевой трафик должен идти в приоритетную очередь, то маршрутизатор не только обеспечивает пропускную способность трафика, но и гарантирует ему первую полосу пропускания. Например, используя чистый CBWFQ, трафику Citrix может быть гарантированно 50% пропускной способности, но он может получить эту полосу пропускания после того, как маршрутизатор обеспечит некоторые другие гарантии трафика. При использовании LLQ приоритетный трафик всегда отправляется перед выполнением любых других гарантий. Это очень хорошо работает для VoIP, делая LLQ предпочтительным алгоритмом очередей для голоса;

    Существует много других алгоритмов для очередей, эти три охватывают методы, используемые большинством современных сетей

    Полезна ли Вам эта статья?

    Пожалуйста, расскажите почему?

    Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!


    В настоящее время вместе с планомерным увеличением скоростей передачи данных в телекоммуникациях увеличивается доля интерактивного трафика, крайне чувствительного к параметрам среды транспортировки. Поэтому задача обеспечения качества обслуживания (Quality of Service - QoS) становится все более актуальной.

    Рассмотрение вопроса подобной сложности лучше всего начинать с простых и понятных примеров настройки оборудования, например, фирмы Cisco. Представленный здесь материал, безусловно, не может конкурировать с www.cisco.com. Наша задача – начальная классификация огромного объема сведений в компактном виде с целью облегчения понимания и дальнейшего изучения.

    1. Определения и термины.

    Определений термина QoS настолько много, что мы выберем единственно верное - правильно, от Cisco: "QoS – QoS refers to the ability of a network to provide better service to selected network traffic over various underlying technologies…". Что можно литературно перевести как: "QoS – способность сети обеспечить необходимый сервис заданному трафику в определенных технологических рамках".

    Необходимый сервис описывается многими параметрами, отметим среди них самые важные.

    Bandwidth (BW) - полоса пропускания, описывает номинальную пропускную способность среды передачи информации, определяет ширину канала. Измеряется в bit/s (bps), kbit/s (kbps), mbit/s (mbps).

    Delay - задержка при передаче пакета.

    Jitter - колебание (вариация) задержки при передаче пакетов.

    Packet Loss – потери пакетов. Определяет количество пакетов, отбрасываемых сетью во время передачи.

    Чаще всего для описания пропускной способности канала проводят аналогию с водопроводной трубой. В ее рамках Bandwidth – это ширина трубы, а Delay – длина.

    Время передачи пакета через канал Transmit time [s] = packet size / bw .

    Например, найдем время передачи пакета размером 64 байта по каналу шириной 64 килобита/c:

    Packet size = 64*8=512 (bit) Transmit Time = 512/64000 = 0.008 (c)

    2. Сервисные модели QoS.

    2.1. Best Effort Service.

    Негарантированная доставка. Абсолютное отсутствие механизмов QoS. Используются все доступные ресурсы сети без какого-либо выделения отдельных классов трафика и регулирования. Считается, что лучшим механизмом обеспечения QoS является увеличение пропускной способности. Это в принципе правильно, однако некоторые виды трафика (например, голосовой) очень чувствительны к задержкам пакетов и вариации скорости их прохождения. Модель Best Effort Service даже при наличии больших резервов допускает возникновение перегрузок в случае резких всплесков трафика. Поэтому были разработаны и другие подходы к обеспечению QoS.

    2.2. Integrated Service (IntServ).

    Integrated Service (IntServ, RFC 1633) - модель интегрированного обслуживания. Может обеспечить сквозное (End-to-End) качество обслуживания, гарантируя необходимую пропускную способность. IntServ использует для своих целей протокол сигнализации RSVP. Позволяет приложениям выражать сквозные требования к ресурсам и содержит механизмы обеспечения данных требований. IntServ можно кратко охарактеризовать как резервирование ресурсов (Resource reservation).

    2.3. Differentiated Service (DiffServ).

    Differentiated Service (DiffServ, RFC 2474/2475) - Модель дифференцированного обслуживания. Определяет обеспечение QoS на основе четко определенных компонентов, комбинируемых с целью предоставления требуемых услуг. Архитектура DiffServ предполагает наличие классификаторов и формирователей трафика на границе сети, а также поддержку функции распределения ресурсов в ядре сети в целях обеспечения требуемой политики пошагового обслуживания (Per-Hop Behavior - PHB). Разделяет трафик на классы, вводя несколько уровней QoS. DiffServ состоит из следующих функциональных блоков: граничные формирователи трафика (классификация пакетов, маркировка, управление интенсивностью) и реализаторы PHB политики (распределение ресурсов, политика отбрасывания пакетов). DiffServ можно кратко охарактеризовать как приоритезацию трафика (Prioritization).

    3. Базовые функции QoS.

    Базовые функции QoS заключаются в обеспечении необходимых параметров сервиса и определяются по отношению к трафику как: классификация, разметка, управление перегрузками, предотвращение перегрузок и регулирование. Функционально классификация и разметка чаще всего обеспечиваются на входных портах оборудования, а управление и предотвращение перегрузок – на выходных.

    3.1. Классификация и разметка (Classification and Marking).

    Классификация пакетов (Packet Classification) представляет собой механизм соотнесения пакета к определенному классу трафика.

    Другой не менее важной задачей при обработке пакетов является маркировка пакетов (Packet Marking) - назначение соответствующего приоритета (метки).

    В зависимости от уровня рассмотрения (имеется в виду OSI) эти задачи решаются по-разному.

    3.1.1. Layer 2 Classification and Marking.

    Коммутаторы Ethernet (Layer 2) используют протоколы канального уровня. Протокол Ethernet в чистом виде не поддерживает поле приоритета. Поэтому на Ethernet портах (Access Port) возможна лишь внутренняя (по отношению к коммутатору) классификация по номеру входящего порта и отсутствует какая-либо маркировка.

    Более гибким решением является использование стандарта IEEE 802.1P, который разрабатывался совместно с 802.1Q. Иерархия отношений здесь следующая: 802.1D описывает технологию мостов и является базовой для 802.1Q и 802.1P. 802.1Q описывает технологию виртуальных сетей (VLAN), а 802.1P обеспечение качества обслуживания. В целом, включение поддержки 802.1Q (транк с виланами), автоматически дает возможность использования 802.1P. Согласно стандарту используются 3 бита в заголовке второго уровня, которые называются Class of Service (CoS). Таким образом, CoS может принимать значения от 0 до 7.

    3.1.2. Layer 3 Classification and Marking.

    Маршрутизирующее оборудование (Layer 3) оперирует IP пакетами, в которых под цели маркировки предусмотрено соответствующее поле в заголовке - IP Type of Service (ToS) размером один байт. ToS может быть заполнен классификатором IP Precedence или DSCP в зависимости от задачи. IP precedence (IPP) имеет размерность 3 бита (принимает значения 0-7). DSCP относится к модели DiffServ и состоит из 6 бит (значения 0-63).

    Кроме цифровой формы, значения DSCP могут быть выражены с использованием специальных ключевых слов: доставка по возможности BE – Best Effort, гарантированная доставка AF – Assured Forwarding и срочная доставка EF – Expedited Forwarding. В дополнение к этим трем классам существуют коды селектора классов, которые добавляются к обозначению класса и обратно совместимы с IPP. Например, значение DSCP равное 26 можно записать как AF31, что полностью равнозначно.

    MPLS содержит индикатор QoS внутри метки в соответствующих битах MPLS EXP (3 бита).

    Промаркировать IP пакеты значением QoS можно разными способами: PBR, CAR, BGP.

    Пример 1. Маркировка PBR

    Policy Based Route (PBR) можно использовать с целью маркировки, производя ее в соответствующей подпрограмме (Route-map может содержать параметр set ip precedence):

    !
    interface FastEthernet0/0
    ip policy route-map MARK
    speed 100
    full-duplex
    no cdp enable
    !
    !
    route-map MARK permit 10
    match ip address 1
    set ip precedence priority
    !

    На выходе интерфейса можно увидеть результат (например, программой tcpdump под unix):

    # tcpdump -vv -n -i em0
    ... IP (tos 0x20 ...)

    Пример 2. Маркировка CAR.

    Механизм Committed Access Rate (CAR) разработан для ограничения скорости, однако дополнительно может и маркировать пакеты (параметр set-prec-transmit в rate-limit):

    !
    interface FastEthernet0/0
    ip address 192.168.0.2 255.255.255.252
    rate-limit input access-group 1 1000000 10000 10000 conform-action set-prec-transmit 3 exceed-action set-prec-transmit 3
    no cdp enable
    !
    access-list 1 permit 192.168.0.0 0.0.0.255
    !

    #sh interface FastEthernet0/0 rate-limit

    3.2. Управление перегрузками (Congestion Management). Механизм очередей.

    3.2.1. Перегрузки (Congestions).

    Перегрузка возникает в случае переполнения выходных буферов передающего трафик оборудования. Основными механизмами возникновения перегрузок (или, что равнозначно, скоплений - congestions) является агрегация трафика (когда скорость входящего трафика превышает скорость исходящего) и несогласованность скоростей на интерфейсах.

    Управление пропускной способностью в случае перегрузок (узких мест) осуществляется с помощью механизма очередей. Пакеты помещаются в очереди, которые упорядоченно обрабатываются по определенному алгоритму. Фактически, управление перегрузками – это определение порядка, в котором пакеты выходят из интерфейса (очередей) на основе приоритетов. Если перегрузок нет – очереди не работают (и не нужны). Перечислим методы обработки очередей.

    3.2.2. Layer 2 Queuing.

    Физическое устройство классического коммутатора можно упрощенно представить следующим образом: пакет приходит на входной порт, обрабатывается механизмом коммутации, который решает, куда направить пакет, и попадает в аппаратные очереди выходного порта. Аппаратные очереди представляет собой быструю память, хранящую пакеты перед тем, как они попадут непосредственно на выходной порт. Далее, согласно определенному механизму обработки, пакеты извлекаются из очередей и покидают коммутатор. Изначально очереди равноправны и именно механизм обработки очередей (Scheduling) определяет приоритезацию. Обычно каждый порт коммутатора содержит ограниченное число очередей: 2, 4, 8 и так далее.

    В общих чертах настройка приоритезации заключается в следующем:

    1. Изначально очереди равноправны. Поэтому предварительно необходимо их настроить, то есть определить очередность (или пропорциональность объема) их обработки. Чаще всего это делается привязкой приоритетов 802.1P к очередям.

    2. Необходимо сконфигурировать обработчик очередей (Scheduler). Чаще всего используются взвешенный циклический алгоритм (Weighted Round Robin WRR) или строгая очередь приоритетов (Strict Priority Queuing).

    3. Назначение приоритета поступающим пакетам: по входному порту, по CoS или, в случае дополнительных возможностей (Layer 3 switch), по каким-то полям IP.

    Работает все это следующим образом:

    1. Пакет попадает в коммутатор. Если это обычный Ethernet пакет (клиентский Access Port), то он не имеет меток приоритета и таковая может выставляться коммутатором, например, по номеру входного порта, если это нужно. Если входной порт транковый (802.1Q или ISL), то пакет может нести метку приоритета и коммутатор может ее принять или заменить на необходимую. В любом случае пакет на данном этапе попал в коммутатор и имеет необходимую разметку CoS.

    2. После обработки процессом коммутации пакет в соответствии с меткой приоритета CoS направляется классификатором (Classify) в соответствующую очередь выходного порта. Например, критический трафик попадает в высокоприоритетную, а менее важный в низкоприоритетную очереди.

    3. Механизм обработки (Scheduling) извлекает пакеты из очередей согласно их приоритетам. Из высокоприоритетной очереди за единицу времени будет выдано на выходной порт больше пакетов, чем из низкоприоритетной.


    3.2.3. Layer 3 Queuing.

    Маршрутизирующие устройства оперируют пакетами на третьем уровне OSI (Layer 3). Чаще всего поддержка очередей обеспечивается программно. Это означает в большинстве случаев отсутствие аппаратных ограничений на их число и более гибкое конфигурирование механизмов обработки. Общая парадигма QoS Layer 3 включает маркировку и классификацию пакетов на входе (Marking & Classification), распределение по очередям и их обработку (Scheduling) по определенным алгоритмам.

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

    Проведем классификацию Layer 3 QoS по методам обработки очередей.

    3.2.3.1. FIFO.

    Элементарная очередь с последовательным прохождением пакетов, работающая по принципу первый пришел – первый ушел (First In First Out - FIFO), имеющему русский эквивалент кто первый встал того и тапки. По сути, здесь нет никакой приоритезации. Включается по умолчанию на интерфейсах со скоростью больше 2 мбит/с.

    3.2.3.2. PQ. Очереди приоритетов.

    Priority Queuing (PQ) обеспечивает безусловный приоритет одних пакетов над другими. Всего 4 очереди: high, medium, normal и low. Обработка ведется последовательно (от high до low), начинается с высокоприоритетной очереди и до ее полной очистки не переходит к менее приоритетным очередям. Таким образом, возможна монополизация канала высокоприоритетными очередями. Трафик, приоритет которого явно не указан, попадет в очередь по умолчанию (default).

    Параметры команды.
    распределение протоколов по очередям:
    priority-list LIST_NUMBER protocol PROTOCOL {high|medium|normal|low} list ACCESS_LIST_NUMBER
    определение очереди по умолчанию:
    priority-list LIST_NUMBER default {high|medium|normal|low}
    определение размеров очередей (в пакетах):
    priority-list LIST_NUMBER queue-limit HIGH_QUEUE_SIZE MEDIUM_QUEUE_SIZE NORMAL_QUEUE_SIZE LOW_QUEUE_SIZE

    обозначения:
    LIST_NUMBER – номер обработчика PQ (листа)
    PROTOCOL - протокол
    ACCESS_LIST_NUMBER – номер аксесс листа
    HIGH_QUEUE_SIZE – размер очереди HIGH
    MEDIUM_QUEUE_SIZE - размер очереди MEDIUM
    NORMAL_QUEUE_SIZE - размер очереди NORMAL
    LOW_QUEUE_SIZE - размер очереди LOW

    Алгоритм настройки.

    1. Определяем 4 очереди
    access-list 110 permit ip any any precedence network
    access-list 120 permit ip any any precedence critical
    access-list 130 permit ip any any precedence internet
    access-list 140 permit ip any any precedence routine

    priority-list 1 protocol ip high list 110
    priority-list 1 protocol ip medium list 120
    priority-list 1 protocol ip normal list 130
    priority-list 1 protocol ip low list 140
    priority-list 1 default low


    priority-list 1 queue-limit 30 60 90 120

    2. Привязываем к интерфейсу

    !
    interface FastEthernet0/0
    ip address 192.168.0.2 255.255.255.0
    speed 100
    full-duplex
    priority-group 1
    no cdp enable
    !

    3. Просмотр результата
    # sh queueing priority

    Current priority queue configuration:

    List Queue Args - - 1 low default - 1 high protocol ip list 110 1 medium protocol ip list 120 1 normal protocol ip list 130 1 low protocol ip list 140

    #sh interfaces fastEthernet 0/0

    Queueing strategy: priority-list 1


    Interface FastEthernet0/0 queueing strategy: priority


    high/19 medium/0 normal/363 low/0

    3.2.3.3. CQ. Произвольные очереди.

    Custom Queuing (CQ) обеспечивает настраиваемые очереди. Предусматириваетмя управление долей полосы пропускания канала для каждой очереди. Поддерживается 17 очередей. Системная 0 очередь зарезервирована для управляющих высокоприоритетных пакетов (маршрутизация и т.п.) и пользователю недоступна.

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

    Параметры команды.
    определение полосы пропускания очередей:
    queue-list LIST-NUMBER queue QUEUE_NUMBER byte-count
    BYTE_COUT

    определение размеров очередей:
    queue-list LIST-NUMBER queue QUEUE_NUMBER limit QUEUE_SIZE

    обозначения:
    LIST-NUMBER – номер обработчика
    QUEUE_NUMBER – номер очереди
    BYTE_COUT – размер очереди в пакетах

    Алгоритм настройки.

    1. Определяем очереди
    access-list 110 permit ip host 192.168.0.100 any
    access-list 120 permit ip host 192.168.0.200 any

    queue-list 1 protocol ip 1 list 110
    queue-list 1 protocol ip 2 list 120
    queue-list 1 default 3

    queue-list 1 queue 1 byte-count 3000
    queue-list 1 queue 2 byte-count 1500
    queue-list 1 queue 3 byte-count 1000

    Дополнительно можно установить размеры очередей в пакетах
    queue-list 1 queue 1 limit 50
    queue-list 1 queue 2 limit 50
    queue-list 1 queue 3 limit 50

    2. Привязываем к интерфейсу
    !
    interface FastEthernet0/0
    ip address 192.168.0.2 255.255.255.0
    speed 100
    full-duplex
    custom-queue-list 1
    no cdp enable
    !

    3. Просмотр результата
    #sh queueing custom

    Current custom queue configuration:

    List Queue Args - 1 3 default - 1 1 protocol ip list 110 1 2 protocol ip list 120 1 1 byte-count 1000 - 1 2 byte-count 1000 - 1 3 byte-count 2000 -

    #sh interface FastEthernet0/0

    Queueing strategy: custom-list 1

    #sh queueing interface fastEthernet 0/0
    Interface FastEthernet0/0 queueing strategy: custom

    Output queue utilization (queue/count)
    0/90 1/0 2/364 3/0 4/0 5/0 6/0 7/0 8/0
    9/0 10/0 11/0 12/0 13/0 14/0 15/0 16/0

    3.2.3.4. WFQ. Взвешенные справедливые очереди.

    Weighted Fair Queuing (WFQ) автоматически разбивает трафик на потоки (flows). По умолчанию их число равно 256, но может быть изменено (параметр dynamic-queues в команде fair-queue). Если потоков больше, чем очередей, то в одну очередь помещается несколько потоков. Принадлежность пакета к потоку (классификация) определяется на основе TOS, протокола, IP адреса источника, IP адреса назначения, порта источника и порта назначения. Каждый поток использует отдельную очередь.

    Обработчик WFQ (scheduler) обеспечивает равномерное (fair - честное) разделение полосы между существующими потоками. Для этого доступная полоса делится на число потоков и каждый получает равную часть. Кроме того, каждый поток получает свой вес (weight), с некоторым коэффициентом обратно пропорциональный IP приоритету (TOS). Вес потока также учитывается обработчиком.

    В итоге WFQ а втоматически справедливо распределяет доступную пропускную способность, дополнительно учитывая TOS. Потоки с одинаковыми IP приоритетами TOS получат равные доли полосы пропускания; потоки с большим IP приоритетом – большую долю полосы. В случае перегрузок ненагруженные высокоприоритетные потоки функционируют без изменений, а низкоприоритетные высоконагруженные – ограничиваются.

    Вместе с WFQ работает RSVP. По умолчанию WFQ включается на низкоскоростных интерфейсах.

    Алгоритм настройки.
    1. Помечаем трафик каким-либо способом (устанавливаем IP приоритет - TOS) или получаем его помеченным

    2. Включаем WFQ на интерфейсе
    interface FastEthernet0/0
    fair-queue

    interface FastEthernet0/0
    fair-queue CONGESTIVE_DISCARD_THRESHOLD DYNAMIC_QUEUES

    Параметры:
    CONGESTIVE_DISCARD_THRESHOLD – число пакетов в каждой очереди, при превышении которого пакеты игнорируются (по умолчанию - 64)
    DYNAMIC_QUEUES – число подочередей, по которым классифицируется трафик (по умолчанию - 256)

    3. Просмотр результата
    # sh queueing fair
    # sh queueing interface FastEthernet0/0

    3.2.3.5. CBWFQ.

    Class Based Weighted Fair Queuing (CBWFQ) соответствует механизму обслуживания очередей на основе классов. Весь трафик разбивается на 64 класса на основании следующих параметров: входной интерфейс, аксесс лист (access list), протокол, значение DSCP, метка MPLS QoS.

    Общая пропускная способность выходного интерфейса распределяется по классам. Выделяемую каждому классу полосу пропускания можно определять как в абсолютное значение (bandwidth в kbit/s) или в процентах (bandwidth percent) относительно установленного значения на интерфейсе.

    Пакеты, не попадающие в сконфигурированные классы, попадают в класс по умолчанию, который можно дополнительно настроить и который получает оставшуюся свободной полосу пропускания канала. При переполнении очереди любого класса пакеты данного класса игнорируются. Алгоритм отклонения пакетов внутри каждого класса можно выбирать: включенное по умолчанию обычное отбрасывание (tail-drop, параметр queue-limit) или WRED (параметр random-detect). Только для класса по умолчанию можно включить равномерное (честное) деление полосы (параметр fair-queue).

    CBWFQ поддерживает взаимодействие с RSVP.

    Параметры команды.

    критерии отбора пакетов классом:
    class-map match-all CLASS
    match access-group
    match input-interface
    match protocol
    match ip dscp
    match ip rtp
    match mpls experimental

    определение класса:

    class CLASS
    bandwidth BANDWIDTH
    queue-limit QUEUE-LIMIT
    random-detect

    определение класса по умолчанию (default):

    class class-default
    bandwidth BANDWIDTH
    bandwidth percent BANDWIDTH_PERCENT
    queue-limit QUEUE-LIMIT
    random-detect
    fair-queue

    обозначения:
    CLASS – название класса.
    BANDWIDTH – минимальная полоса kbit/s, значение независимо от bandwidth на интерфейсе.
    BANDWIDTH_PERCENT - процентное соотношение от bandwidth на интерфейсе.
    QUEUE-LIMIT – максимальное количество пакетов в очереди.
    random-detect – использование WRED.
    fair-queue – равномерное деление полосы, только для класса по умолчанию

    По умолчанию абсолютное значение Bandwidth в классе CBWFQ не может превышать 75% значение Bandwidth на интерфейсе. Это можно изменить командой max-reserved-bandwidth на интерфейсе.

    Алгоритм настройки.

    1. Распределение пакетов по классам - class-map

    class-map match-all Class1
    match access-group 101

    2. Описание правил для каждого класса - policy-map
    policy-map Policy1
    class Class1
    bandwidth 100
    queue-limit 20
    class class-default
    bandwidth 50
    random-detect

    3. Запуск заданной политики на интерфейсе - service-policy
    interface FastEthernet0/0
    bandwidth 256

    4. Просмотр результата
    #sh class Class1
    #sh policy Policy1
    #sh policy interface FastEthernet0/0

    Пример 1.

    Деление общей полосы по классам в процентном соотношении (40, 30, 20).
    access-list 101 permit ip host 192.168.0.10 any
    access-list 102 permit ip host 192.168.0.20 any
    access-list 103 permit ip host 192.168.0.30 any

    class-map match-all Platinum
    match access-group 101
    class-map match-all Gold
    match access-group 102
    class-map match-all Silver
    match access-group 103

    policy-map Isp
    class Platinum
    bandwidth percent 40
    class Gold
    bandwidth percent 30
    class Silver
    bandwidth percent 20

    interface FastEthernet0/0
    bandwidth 256
    service-policy output Isp

    3.2.3.6. LLQ.

    Low Latency Queuing (LLQ) – очередность с низкой задержкой. LLQ можно рассматривать как механизм CBWFQ с приоритетной очередью PQ (LLQ = PQ + CBWFQ).
    PQ в LLQ позволяет обеспечить обслуживание чувствительного к задержке трафика. LLQ рекомендуется в случае наличия голосового (VoIP) трафика. Кроме того, он хорошо работает с видеоконференциями.

    Алгоритм настройки.

    1. Распределение пакетов по классам - Class-map
    access-list 101 permit ip any any precedence critical

    class-map match-all Voice
    match ip precedence 6
    class-map match-all Class1
    match access-group 101

    2. Описание правил для каждого класса - Policy-map

    Аналогично CBWFQ, только для приоритетного класса (он один) указывается параметр priority.
    policy-map Policy1
    class Voice
    priority 1000
    class Class1
    bandwidth 100
    queue-limit 20
    class class-default
    bandwidth 50
    random-detect

    3. Запуск заданной политики на интерфейсе - Service-policy
    interface FastEthernet0/0
    bandwidth 256
    service-policy output Policy1

    Пример 1.
    Относим класс Voice к PQ, а все остальное к CQWFQ.
    !
    class-map match-any Voice
    match ip precedence 5
    !
    policy-map Voice
    class Voice
    priority 1000
    class VPN
    bandwidth percent 50
    class class-default
    fair-queue 16
    !
    interface X
    Sevice-policy output Voice
    !

    Пример 2.
    Дополнительно ограничиваем общую скорость для PQ в LLQ, чтобы он не монополизировал весь канал в случае неправильной работы.
    !
    class-map match-any Voice
    match ip precedence 5
    !
    policy-map Voice
    class Voice
    priority 1000
    police 1024000 32000 32000 conform-action transmit exceed-action drop
    class Vpn
    bandwidth percent 50
    class class-default
    fair-queue 16
    !
    interface FastEthernet0/0
    service-policy output Voice
    !

    «Кос » — это технология, обеспечивающая выделение предпочтений высокоприоритетному сетевому трафику, устройству или критичному приложению, необходимая для работы Ип-телефонов , видеоконференций, потокового видео, CITRIX-Приложений, телефонии Voip и подобного чувствительного к задержкам трафика.
    Упрощённо говоря, с её помощью приложения наподобие Скайпа, сетевого медиа-проигрывателя, (VLC-Player какой-нибудь), коллективной онлайн игры, смогут получить достаточную полосу пропускания (скорость) при любой степени загрузки Интернет-канала, тем самым не будут "тупить" и "лагать".


    Видео: основы Qos, как это работает.

    QoS оперирует некоторыми параметрами передачи данных, вот основные:
    Полоса пропускания Bandwidth , или (BW ). Данный параметр определяет ширину канала, описывает номинальную пропускную способность среды передачи. Может измеряться в: Бит/сек (bps), Кбит/сек (kbps), Мбит/сек (mbps).
    Delay: описывает величину возможной задержки передачи пакета по сети.
    Jitter: флуктуации (диапазон возможных задержек) при передаче сетевых пакетов.
    Packet Loss: этот параметр задает количество пакетов, которые отбрасываются в процессе передачи.

    МЕТОДЫ ВНЕДРЕНИЯ в вычислительную сеть

    Технология QoS может обеспечиваться различными способами. Каждый способ имеет свои особенности, преимущества и недостатки. Рассмотрим их подробнее.
    1) Резервирование. Суть метода резервирования сетевых ресурсов заключена в его названии. Непосредственно перед передачей информации происходит запрос и резервирование необходимой приложению полосы пропускания. Реализуется посредством технологии интегрированного обслуживания IntServ вместе с протоколом RSVP .
    2) Приоритезация. Трафик делится на классы различного приоритета. Некоторые классы, например видео, имеют приоритет над голосом. Технология осуществляется посредством дифференцированного обслуживания DiffServ .
    3) Перемаршрутизация. Механизм пересылает трафик по резервному маршруту при перегрузке основного.

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

    глобальные виды Qos

    УРОВЕНЬ 2

    CoS (Class of service) - технология второго уровня, простая схема разметки, реализуемая посредством протокола 802 1P . Для реализации данной технологии необходимо задействовать протокол 802 1Q (TRUNK + VLAN), после чего станет возможным активация CoS посредством 802_1P. Стандарт 802_1P маркирует кадры Ethernet 2го уровня трехбитным полем CoS, принимающем значения от 0 до 7.
    Метод поддерживается бюджетными коммутаторами сиско, наподобие Каталист Экспресс Series 500, старшими Catalysts 2900 Switches. Такой вид приоритезации используется внутри локальной сети на втором уровне модели OSI и не выходит за пределы ЛВС. Для корректной работы QoS уровня 2 требуется включить и сконфигурировать его поддержку на всех коммутаторах сети.

    Классификация и маркировка трафика на третьем уровне

    Qos третьего уровня может называться ToS (от Type of service) . Маршрутизационное оборудование работает с IP пакетами (Layer 3), в заголовке у которых под приоритезационные цели выделено специальное поле: «Tos» объемом один байт. Поле может быть заполнено разными классификаторами.
    1) Трехбитный IPP (IP PRECEDENCE) может принимать значения 0-7.
    2) Шестибитный DSCP (модель: DiffServ) более гибок, позволяет выставить значение с 0 по 63.
    Используется для приоритезации ИП трафика, (третий уровень OSI); настраивается на маршрутизаторах. Поддерживается всеми моделями маршрутизаторов Сиско Systems, включая бюджетную серию ЦИСКО ИСР 870. В КоСе 3-го уровня могут использоваться две схемы разметки пакетов. Internet Protocol Precedence — простая система приоритезации. В ней заголовок АЙ-ПИ пакета размечается значениями с 0 по 7.
    Ip Dscp (differentiated services code point) - глубокая дифференцированная приоритезация с точкой отсчета. Она позволяет более гибко настраивать приоритеты для нужд конвергентной сети.

    Каким сетям критически необходим QoS?

    Полная поддержка "качества обслуживания" необходима при проектировании корпоративных мультисервисных, конвергентных сетей, где планируется перегон критичного голосового, видео трафика по каналу совместно с данными. Особенно остро возникает необходимость корректного внедрения QoS при прогоне на роутере конвергентного трафика через каналы WAN ограниченной пропускной способности (DSL, ISDN, E-3) как вариант, при межофисном обмене в сетях VPN между удаленными офисами.

    Или если в организации один провайдер, через который клиентские рабочие станции выходят в Сеть Internet; и через него же осуществляется проброс портов на внутренние Web- и почтовые сервера из Интернета. В такой ситуации необходимо произвести настройку службы качества сервиса с целью выдать бОльший приоритет входящим соединениям, а если внутренних серверов несколько, то грамотно распределить приоритеты между ними.

    какие устройства и в какой мере поддерживают QoS

    Ip телефоны Cisko требуют комплексной поддержки КоСа (АйПи DSCP). Хотя есть модели (Циско 7920), поддерживающие базовый набор параметров «QBSS», что может выражаться в сужении универсальности, гибкости при работе данного устройства в сложной сетевой среде.

    Нет ни одного человека, который бы хоть раз не прочитал какой-нибудь FAQ по Windows XP. А раз так, то каждый знает, что есть такая вредная служба Quality of Service - сокращенно QoS. При настройке системы ее настоятельно рекомендуется отключать, потому что она по умолчанию ограничивает сетевую пропускную способность на 20%, и как будто бы эта проблема существует и в Windows 2000.

    Вот эти строки:

    "Q: Как полностью отключить службу QoS (Quality of Service)? Как ее настроить? Правда ли, что она ограничивает скорость сети?
    A: Действительно, по умолчанию Quality of Service резервирует для своих нужд 20% от пропускной способности канала (любого - хоть модем на 14400, хоть гигабитный Ethernet). Причем даже если удалить службу QoS Packet Scheduler из Properties-соединения, этот канал не освобождается. Освободить канал или просто настроить QoS можно здесь. Запускаем апплет Group Policy (gpedit.msc). В Group Policy находим Local computer policy и нажимаем на Administrative templates. Выбираем пункт Network - QoS Packet Sheduler. Включаем Limit reservable bandwidth. Теперь снижаем Bandwidth limit 20% до 0% или просто отключаем его. При желании здесь же можно настроить и другие параметры QoS. Для активации произведенных изменений остается только перезагрузиться".
    20% - это, конечно, очень много. Воистину Microsoft - "маздай". Утверждения подобного рода кочуют из FAQ в FAQ, из форума в форум, из СМИ в СМИ, используются во всевозможного рода "твикалках" - программах по "настройке" Windows XP (кстати говоря, откройте "Групповые политики" и "Локальные политики безопасности", и ни одна "твикалка" не сравнится с ними по богатству вариантов настройки). Разоблачать голословные утверждения такого рода нужно осторожно, что мы сейчас и сделаем, применив системный подход. То есть основательно изучим проблемный вопрос, опираясь на официальные первоисточники.

    Что такое сеть с качественным сервисом?

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

    Функциональные возможности QoS призваны удовлетворить двух субъектов сети: сетевые приложения и сетевых администраторов. Они часто имеют разногласия. Администратор сети ограничивает ресурсы, используемые специфическим приложением, в то же время приложение пытается захватить как можно больше сетевых ресурсов. Их интересы могут быть согласованы, принимая во внимание тот факт, что сетевой администратор играет главенствующую роль по отношению ко всем приложениям и пользователям.

    Основные параметры QoS

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

    • Bandwidth (полоса пропускания) - скорость, с которой трафик, генерируемый приложением, должен быть передан по сети;
    • Latency (задержка) - задержка, которую приложение может допустить в доставке пакета данных.
    • Jitter - изменение времени задержки.
    • Loss (потеря) - процент потерянных данных.

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

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

    Фундаментальные ресурсы QoS и механизмы обработки трафика

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

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

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

    Распределение ресурсов QoS по сетевым устройствам

    Устройства, поддерживающие QoS, разумно используют ресурсы сети для передачи трафика. То есть трафик приложений, более терпимых к задержкам, становится в очередь (сохраняется в буфере в памяти), а трафик приложений, критичных к задержкам, передается далее.

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

    Механизм обработки трафика

    Механизм обработки трафика включает в себя:

    • 802.1p
    • Дифференцированные услуги per-hop-behaviors (diffserv PHB).
    • Интегрированные услуги (intserv).
    • ATM и др.

    Большинство локальных сетей основано на технологии IEEE 802 включая Ethernet, token-ring и др. 802.1p - это механизм обработки трафика для поддержки QoS в таких сетях.

    802.1p определяет поле (уровень 2 в сетевой модели OSI) в заголовке пакета 802, которое может нести одно из восьми значений приоритета. Как правило, хосты или маршрутизаторы, посылая трафик в локальную сеть, маркируют каждый посланный пакет, присваивая ему определенное значение приоритета. Предполагается, что сетевые устройства, такие, как свичи, мосты и хабы, обработают пакеты соответствующим образом, используя механизмы организации очередей. Область применения 802.1p ограничена локальной сетью (LAN). Как только пакет пересекает локальную сеть (через уровень 3 OSI), приоритет 802.1p удаляется.

    Diffserv - это механизм уровня 3. Он определяет поле в уровне 3 заголовка пакетов IP, названных diffserv codepoint (DSCP).

    Intserv - это целый комплекс услуг, определяющий гарантированный сервис и сервис, управляющий загрузкой. Гарантированный сервис обещает нести некоторый объем трафика с измеримой и ограниченной задержкой. Сервис, управляющий загрузкой, соглашается нести некоторый объем трафика с "появлением легкой загруженности сети". Это - измеримые услуги в том смысле, что они определены, чтобы обеспечить измеримый QoS к определенному количеству трафика.

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

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

    Для наглядности рассмотрим рис. 1.

    Принимаем следующее:

    • Все маршрутизаторы участвуют в передаче нужных протоколов.
    • Один QoS-сеанс, требующий 64 Kbps, инициализирован между хостом А и хостом B.
    • Другой сеанс, требующий 64 Kbps, инициализирован между хостом А и хостом D.
    • Для упрощения схемы полагаем, что маршрутизаторы сконфигурированы так, что могут резервировать все сетевые ресурсы.

    В нашем случае один запрос о резервировании 64 Kbps достиг бы трех маршрутизаторов на пути данных между хостом А и хостом B. Другой запрос о 64 Kbps достиг бы трех маршрутизаторов между хостом А и хостом D. Маршрутизаторы выполнили бы эти запросы на резервирование ресурсов, потому что они не превышают максимума. Если вместо этого каждый из хостов B и C одновременно инициализировал бы 64 Kbps QoS-сеанс с хостом A, то маршрутизатор, обслуживающий эти хосты (B и C), запретил бы одно из соединений.

    Теперь предположим, что администратор сети отключает обработку QoS в трех нижних маршрутизаторах, обслуживающих хосты B, C, D, E. В этом случае запросы о ресурсах до 128 Kbps удовлетворялись бы независимо от месторасположения участвующего в соединении хоста. При этом гарантии качества были бы низки, поскольку трафик для одного хоста подвергал бы риску трафик другого. Качество обслуживания могло бы быть сохранено, если бы верхний маршрутизатор ограничивал все запросы до 64 Kbps, однако это привело бы к неэффективному использованию сетевых ресурсов.

    С другой стороны, пропускную способность всех сетевых связей можно было бы увеличить до 128 Kbps. Но увеличенная пропускная способность будет использоваться только когда хосты B и C (или D и E) одновременно затребуют ресурсы. Если это не так, то ресурсы сети опять будут использоваться неэффективно.

    QoS-компоненты Microsoft

    Windows 98 содержит компоненты QoS только пользовательского уровня включая:

    • Компоненты приложений.
    • GQoS API (часть Winsock 2).
    • QoS service provider.

    Операционная система Windows 2000/XP/2003 содержит все описанное выше и следующие компоненты:

    • Resource Reservation Protocol Service Provider (Rsvpsp.dll) и службы RSVP (Rsvp.exe) и QoS ACS. В Windows XP, 2003 не используются.
    • Управление трафиком (Traffic.dll).
    • Generic Packet Classifier (Msgpc.sys). Классификатор пакетов определяет класс сервиса, которому принадлежит пакет. При этом пакет будет поставлен в соответствующую очередь. Очереди управляются Планировщиком пакетов QoS.
    • Планировщик пакетов QoS (Psched.sys). Определяет параметры QoS для специфического потока данных. Трафик помечается определенным значением приоритета. Планировщик пакетов QoS определяет график постановки в очередь каждого пакета и обрабатывает конкурирующие запросы между поставленными в очередь пакетами, которые нуждаются в одновременном доступе к сети.

    Диаграмма на рис.2 иллюстрирует стек протоколов, компоненты Windows и их взаимодействие на хосте. Элементы, использовавшиеся в Windows 2000, но не использующиеся в Windows XP/2003, на диаграмме не показаны.

    Приложения находятся наверху стека. Они могут знать или не знать о QoS. Чтобы использовать всю мощь QoS, Microsoft рекомендует использовать в приложениях вызовы Generic QoS API. Это особенно важно для приложений, требующих высококачественных гарантий обслуживания. Некоторые утилиты могут использоваться для вызова QoS от имени приложений, которые не знают о QoS. Они работают через API управления трафиком. Например, NetMeeting использует GQoS API. Но для таких приложений качество не гарантируется.

    Последний гвоздь

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

    Впрочем, дадим слово разработчикам и изложим избранные моменты из статьи "316666 - Windows XP Quality of Service (QoS) Enhancements and Behavior" литературным русским языком:

    "Сто процентов сетевой полосы пропускания доступны для распределения между всеми программами, если какая-либо программа явно не запрашивает приоритетную полосу пропускания. Эта "зарезервированная" полоса пропускания доступна другим программам, если программа, которая ее затребовала, не отправляет данные.

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

    Были заявления в различных технических статьях и телеконференциях, что Windows XP всегда резервирует 20% доступной полосы пропускания для QoS. Эти заявления неверны".

    Если теперь у кого-то все еще "отжирается" 20% полосы пропускания, что ж, я могу посоветовать и дальше использовать побольше всевозможных "твикалок" и кривых сетевых драйверов. Еще и не столько будет "отжираться".

    Все, миф о QoS, умри!