Развитие сетей передачи данных влечёт за собой рост объёма передаваемого трафика, что требует использования политики качества обслуживания. Внедрение политики позволит классифицировать сетевой трафик и распределять сетевые ресурсы между классами трафика.
В пакетных сетях передачи данных трафик распространяется от узла-отправителя к узлу-получателю через каналы связи и промежуточные устройства. В общем случае пакет данных обрабатывается каждым из промежуточных устройств независимо. Рассмотрим пример обработки пакета данных промежуточным сетевым устройством (рис. 1):
Следует отметить, что в большинстве современных сетевых устройств сетевые интерфейсы являются комбинированными и могут выступать как в роли входящих, так и в роли исходящих.
Рисунок 1 - Схема прохождения трафика через сетевое устройство |
Сетевое устройство может быть промежуточным для нескольких пар узлов, каждая из которых может передавать данные нескольких сервисов (рис. 2а). Рассмотрим схему, в которой Сетевое устройство является промежуточным для трафика пар узлов Узел-1 - Узел-4, Узел-2 - Узел-5 и Узел-3 - Узел-6. Первая пара передаёт данные трёх сервисов, вторая - двух, третья - одного. В общем случае, при отсутствии настроек QoS, данные всех сервисов попадают в общую очередь в порядке поступления их на Сетевое устройство и в этом же порядке будут из очереди переданы на исходящие интерфейсы.
При настроенном QoS можно классифицировать каждый из входящих потоков трафика, например, по его типу и сопоставить каждому классу отдельную очередь (рис. 2б). Каждой из очередей пакетов может быть назначен свой приоритет, который будет учитываться при извлечении пакетов из очередей сообщений, что позволит гарантировать показатели качества. Классификация потоков трафика может быть выполнена не на основании используемых сервисов, а по другим критериям. Например, каждой паре пользователей может быть выделена отдельная очередь сообщений (рис. 2в).
Рисунок 2а - Формирование очереди для различных сервисов без QoS Рисунок 2б - Формирование очередей различных сервисов с QoS Рисунок 2в - Формирование очередей различных пользователей с QoS |
Следует иметь в виду, что на пути данных от источника до получателя может быть расположено несколько промежуточных сетевых устройств, очереди сообщений на которых независимы друг от друга, т.е. эффективное внедрение политики QoS потребует конфигурации всех сетевых узлов.
Основные выводы предыдущего раздела, которые будут использоваться нами для определения метрик качества:
Выделяют три основные метрики качества:
Подробно рассмотрим метрики на примере: Узел-2 передаёт три пакета данных Узлу-5, источник и получателя данных соединяет промежуточное Сетевое устройство, пакеты передаются в рамках одного сервиса, т.е. их ключевые служебные поля совпадают.
При передаче потока данных, часть из них могут быть не приняты, либо приняты с ошибками. В этом случае можно говорить о потери данных, которые измеряются как отношение количества принятых пакетов к количеству переданных. В примере (рис. 3) Узел-2 передаёт пакеты с идентификаторами 1,2 и 3, однако Узел-5 принимает только пакеты 1 и 3, т.е. пакет с идентификатором 2 потерян. Существуют сетевые механизмы, позволяющие выполнить повторную передачу потерянных данных. Например, к таким механизмам можно отнести протоколы TCP и ARQ.
Причины потери данных можно выделить в следующие группы:
Рисунок 3 - Пример потери пакета данных |
Величина потерь влияет на две метрики, которые не относят к основным: пропускная способность и пакетная производительность.
Одной из основных метрик, используемых на практике, является пропускная способность, величина которой зависит от потерь. Пропускная способность определяется физическими возможностями канала связи и возможностью обработки потока данных промежуточными сетевыми устройствами. Пропускная способность канала связи определяется как максимальный объём данных, который может быть предан от источника к получателю в единицу времени.
Параметром, влияющим на пропускную способность и состояние очередей сообщений является пакетная производительность устройства. Под пакетной производительностью понимается максимальное число пакетов данных заданной длины, которое устройство способно передать в единицу времени.
Пропускная способность, получаемая на практике, зависит как от пакетной производительности, так и от характеристик интерфейса, поэтому на этапе проектирования сети следует обращать внимание на согласованность этих параметров, чтобы ни одно из них не стало "бутылочным горлышком" канала связи и сетевого сегмента.
Величина пакетной производительности определяется аппаратными возможностями центрального процессора и объёмом внутренней памяти. Сетевые устройства обрабатывают множество потоков трафика с разными размерами кадров канального уровня, поэтому при тестировании производительности используются следующие значения размера кадра Ethernet:
Из-за ограниченного объёма внутренней памяти, лучшая пакетная производительность достигается для минимального размера кадра. Использование кадров минимального размера подразумевает большой объём накладных расходов: каждый из кадров данных имеет служебный заголовок, размер которого не зависит от размера самого кадра.
Например, длина служебного заголовка у кадров длиной 64 байта (рис. 4б) и 156 байт (рис. 4в) будет одинакова, но объём пользовательских данных будет отличаться. Для того, чтобы передать 138 байт данных пользователя потребуется три кадра длиной 64 байт или один кадр длиной 156 байт, таким образом в первом случае потребуется передать 192 байта, а во втором - 156 байт. При одинаковой пропускной способности канала связи, использование кадров большого размера повысит эффективность, увеличив полезную пропускную способность системы. Данные о значениях производительности устройств Инфинет для различных условий представлены в документе Производительность устройств Инфинет.
Рисунок 4 - Примеры структуры кадров Ethernet различной длины |
Под задержкой понимается время передачи пакета данных от источника до получателя. Величина задержки складывается из следующих компонентов:
При измерениях задержки часто используется понятие круговой задержки (RTT), т.е. времени распространения пакета данных от источника к получателю и обратно. Такое значение, например, используется при выводе результатов команды ping. Состояние промежуточных сетевых устройств при обработке прямого и обратного пакета данных может отличаться, поэтому в общем случае круговая задержка не равна двум односторонним задержкам.
Рисунок 5 - Пример задержки при передаче данных |
Загрузка ЦП и состояние очередей сообщений на промежуточных сетевых устройствах постоянно меняются, поэтому задержка при распространении пакетов данных может изменяться. В примере (рис. 6) время распространения пакетов с идентификаторами 1 и 2 отличаются. Разница между максимальным и средним значениями задержки называется джиттером.
Рисунок 6 - Пример плавающей задержки при передаче данных |
В сетевой инфраструктуре с избыточностью каналов связи данные между источником и получателем могут быть переданы различными путями, что, также, приведёт к появлению джиттера. В частном случае, разница между задержками в каналах связи может оказаться настолько большой, что порядок переданных пакетов данных изменится на приёмной стороне (рис. 7). В примере пакеты с идентификаторами были приняты в разном порядке.
Влияние эффекта зависит от характеристик сервиса и возможностей восстановления исходной последовательности протоколами высших уровней сетевого взаимодействия. Например, если трафик различных сервисов будет передан разными путями, то это не повлияет на неупорядоченность принятых данных.
Рисунок 7 - Пример неупорядоченной доставки данных |
Каждый из сервисов передачи данных имеет набор требований к показателям качества. Документ RFC 4594 предусматривает следующие виды сервисов:
|
|
Передача трафика различных сервисов реализована на единой сетевой инфраструктуре, которая имеет ограниченные ресурсы, поэтому должны быть предусмотрены механизмы по распределению ресурсов между сервисами.
Рассмотрим пример (рис. 8), в котором Узел-2 генерирует трафик нескольких сервисов с суммарной скоростью 1 Гбит/с, Среда-2 позволяет передать этот поток данных промежуточному сетевому устройству, однако максимальная пропускная способность канала связи сетевого устройства и Узла-5 равна 500 Мбит/с. Очевидно, что поток данных не может быть обработан полностью и часть этого потока должна быть отфильтрована. Задача QoS сделать эту фильтрацию управляемой, обеспечив конечным сервисам требуемые значения метрик. Разумеется, не получится обеспечить требуемые показатели для всех сервисов, т.к. пропускные способности каналов связи не совпадают, поэтому в рамках реализации политики QoS трафик критичных сервисов должен обрабатываться в первую очередь.
Рисунок 8 - Пример несогласованности объёма входящего трафика и пропускной способности каналов связи |
Рассмотренный пример позволяет сформулировать два основных метода, используемых при реализации политики QoS:
Рассмотрим пример, представленный выше, добавив в схему распространения данных второе промежуточное сетевое устройство (рис. 9а). Схема распространения пакетов описывается следующими этапами:
Каждое из промежуточных сетевых устройств, на котором отсутствуют настройки приоритизации трафика, будет задерживать распространение данных, при этом величина вносимой задержки будет непредсказуемой. Таким образом, большое число промежуточных устройств сделает невозможным работу сервисов реального времени из-за недостижимости качественных метрик, т.е. настройка приоритизации трафика должна быть выполнена на всём пути распространения трафика в сети (рис. 9б).
Следует иметь в виду, что реализация политик QoS является одним из компонентов по обеспечению метрик качества. Для получения максимального эффекта конфигурация QoS должна быть синхронизирована с другими настройками. Например, использование технологии TDMA вместо Polling на устройствах семейств InfiLINK 2x2 и InfiMAN 2x2 позволяет снизить джиттер, стабилизировав значение задержки (см. TDMA и Polling: особенности применения в беспроводных сетях).
Рисунок 9а - Пример распространения данных с частично внедрённой политикой QoS Рисунок 9б - Пример распространения данных с внедрённой политикой QoS |
С точки зрения возможности управления путь распространения трафика в сети может быть описан двумя концепциями (рис. 10а,б):
Рисунок 10а - Пример структуры "белого ящика" Рисунок 10б - Пример структуры "черного ящика" |
Одним из решений описанной проблемы для сетевой структуры "черный ящик" является маркировка заголовков пакетов: приоритет, требуемый для обработки пакета, устанавливается в одном из полей заголовка и сохраняется на протяжении всего пути. В этом случае все промежуточные устройства могут помещать входящие данные в очередь сообщений в соответствии со значениями полей, где указан приоритет. Это потребует разработки стандартных протоколов и их реализации производителями оборудования.
Следует отметить, что в общем случае оборудование, находящееся в чужой зоне ответственности, не поддерживает приоритизацию данных в соответствии со значениями приоритета в служебных заголовков. Согласование приоритизации трафика на стыке зон ответственности должно быть выполнено на административном уровне.
Для установки приоритета обслуживания пакета могут использоваться служебные поля различных сетевых протоколов. В рамках данной статьи подробно рассмотрим использование заголовков протоколов Ethernet и IPv4.
Заголовок кадров Ethernet включает в себя служебное поле "User Priority", которое предназначено для приоритизации кадров данных. Поле имеет размер 3 бита, что позволяет выделить 8 классов трафика: 0 класс - наименьший приоритет, 7 класс - наибольший приоритет. Следует иметь в виду, что поле "User Priority" присутствует только в кадрах 802.1q, т.е. тэгированных одной из меток VLAN.
Рисунок 11 - Служебное поле в заголовке Ethernet для приоритизации кадров |
Протокол IP включает в себя три исторических стадии развития служебного поля, отвечающего за приоритизацию пакетов:
Таким образом, ToS позволяет выделить 8 классов трафика: 0 - наименьший приоритет, 7 - наивысший приоритет, а DSCP - 64 класса: 0 - наименьший приоритет, 63 - наивысший приоритет.
Рисунок 12а - Служебное поле ToS в заголовке IP для приоритизации пакетов Рисунок 12б - Служебное поле DSCP в заголовке IP для приоритизации пакетов |
Множество конечных узлов в сети не поддерживают операции по установке и удалению приоритетов в служебных заголовках, поэтому эта функциональность должна быть реализована в промежуточных сетевых устройствах
Рассмотрим пример распространения данных от Узла-1 к Узлу-2 через DS-домен и стороннюю сеть оператора связи (рис. 13а-в). DS-домен включает в себя три устройства, два из которых являются для домена пограничными, а одно - промежуточным. Рассмотрим этапы обработки данных в сети на примере передачи кадра Ethernet (основные принципы, рассмотренные в примере, применимы для IP-пакета или другого протокола, поддерживающего приоритизацию данных):
Рисунок 13а - Пример изменения приоритета кадра Ethernet при распространении через два сегмента сети (приоритет сегментов согласован) Рисунок 13б - Пример изменения приоритета кадра Ethernet при распространении через два сегмента сети (приоритет сегментов согласован, но должен быть изменён) Рисунок 13в - Пример изменения приоритета кадра Ethernet при распространении через два сегмента сети (приоритет сегментов не согласован) |
Процесс анализа устройством приоритета в служебных заголовках и обработка данных в соответствии с этими приоритетами не является простым по следующим причинам:
Данные о внутренней архитектуре очередей, возможностях управления приоритетами данных и соответствия между протокольными и внутренними значениями приоритетов приведены в таблицах ниже.
Следует отметить архитектурную особенность организации очередей в устройствах Инфинет: все очереди делят между собой единый буфер памяти. В случае, если весь трафик попадает в одну очередь, то её размер будет соответствовать размеру буфера, а если очередей будет несколько, то размер буфера памяти будет равномерно поделен между ними.
Таблица внутренней организации очередей сообщений
Таблица соответствия протокольных и внутренних приоритетов для устройств семейств InfiLINK 2x2, InfiMAN 2x2, InfiLINK Evolution, InfiMAN Evolution
Таблица соответствия протокольных и внутренних приоритетов для устройств семейств InfiLINK XG, InfiLINK XG 1000, Vector 5, Vector 6, Vector 70
|
Приоритизация сообщений подразумевает под собой использование нескольких очередей сообщений, содержимое которых должны быть передано исходящим интерфейсам через единую шину сообщений. Устройства Инфинет поддерживают два механизма передачи сообщений из очередей в шину: строгая и взвешенная диспетчеризация.
Механизм строгой приоритизации подразумевает последовательное опустошение очередей в соответствии со значениями приоритета. Отправка сообщений с приоритетом 2 будет выполнена только после того, как в шину будут переданы все сообщения с приоритетом 1 (рис. 14). После того, как будут отправлены сообщения с приоритетами 1 и 2, устройство начнёт отправку сообщений с приоритетом 3.
Данный механизм имеет явный недостаток: низкоприоритетному трафику не будут выделяться ресурсы, если есть сообщения в более приоритетных очередях, что приведёт к полной недоступности некоторых сетевых сервисов.
Рисунок 14 - Строгая диспетчеризация сообщений |
Взвешенная диспетчеризация лишена недостатков строгой диспетчеризации. Взвешенная диспетчеризация подразумевает распределение ресурсов между всеми очередями сообщений в соответствии с весовыми коэффициентами, которые соответствуют значениям приоритета. В случае трёх очередей сообщений (рис. 15), весовые коэффициенты могут быть распределены следующим образом:
При использовании взвешенной диспетчеризации каждая из очередей сообщений получит ресурсы, т.е. не возникнет ситуации с полной недоступностью одного из сетевых сервисов.
Рисунок 15 - Взвешенная диспетчеризация сообщений |
Можно сформулировать набор универсальных рекомендаций по конфигурации механизмов приоритизации трафика:
Распределение ресурсов сети между потоками трафика может быть выполнено не только за счёт приоритизации, но и с помощью механизма ограничения пропускной способности. В этом случае, скорость передачи данных потока не может превысить пороговый уровень, установленный администратором сети.
Принцип ограничения скорости заключается в постоянном измерении интенсивности потока данных и, в случае, если значение интенсивности превышает установленный порог, срабатывает ограничение (рис. 16а,б). Для ограничения пропускной способности в устройствах Инфинет используется алгоритм Token Bucket, заключающийся в том, что все пакеты данных сверх порога пропускной способности отбрасываются. В результате образуются потери, описанные выше.
Рисунок 16а - График интенсивности потока данных без ограничения Рисунок 16б - График интенсивности потока данных после ограничения |
Для каждого правила ограничения скорости формируется логический буфер, содержащий объём разрешённых для передачи данных. Как правило, размер этого буфера больше, чем размер ограничений. Каждую единицу времени такому буферу выделяется размер данных, равный установленному порогу ограничения скорости.
В рассматриваемом примере (видеоролик 1) ограничение скорости составляет 3 единицы данных, размер буфера - 12 единиц данных. Буфер постоянно пополняется в соответствии с установленным порогом, однако не может быть заполнен больше собственного объёма.
Видеоролик 1 - Выделение ресурсов буферу ограничения скорости |
Обработка данных, поступивших на входящий интерфейс устройства, будет выполнена только в том случае, если буфер содержит ресурсы для их обработки (видеоролик 2). Таким образом прохождение данных опустошает буфер ресурсов. Если в момент прихода данных буфер будет пуст, то данные будут отброшены.
Видеоролик 2 - Использование выделенных ресурсов при обработке данных |
Следует понимать, что процессы выделения ресурсов буферу ограничения скорости и обработки данных выполняются одновременно (видеоролик 3).
Интенсивность потоков данных в пакетных сетях непостоянна, что позволяет проявить одно из достоинств алгоритма Token Bucket. Интервалы времени, в которые не передаются данные, позволяют выполнить накопление ресурсов в буфере, а затем обработать объём данных, превышающий порог ограничения. Импульсным потокам данных, например web-трафик, будет выделена широкая полоса, позволяющая выполнить быструю загрузку web-страниц, повысив уровень комфорта конечного пользователя.
Несмотря на описанное преимущество алгоритма Token Bucket, средняя пропускная способность будет соответствовать установленному порогу, т.к. на длительных интервалах времени объём ресурсов будет определяться не размером буфера, а интенсивностью его заполнения, которая соответствует порогу пропускной способности.
Видеоролик 3 - Обработка данных буфером ограничения скорости |
Алгоритм Token Bucket может быть применён для отдельных потоков трафика, в этом случае буфер ограничения скорости будет выделен для каждого из потоков (видеоролик 4).
В рассматриваемом примере создано два правила ограничения скорости: для трафика vlan 161 - 3 единицы данных в единицу времени, для трафика vlan 162 - 2 единицы данных. Размер буфера для каждого из потоков трафика равен 4 интервалам времени, т.е. 12 единиц данных для трафика vlan 161 и 8 единиц данных для трафика vlan 162. Суммарно буферам выделяется 5 единиц данных в каждый из интервалов времени, далее выделенные ресурсы распределяются между буферами. Поскольку размер буферов ограничен, то ресурсы, выделенные сверх их размеров, не могут быть использованы.
Видеоролик 4 - Выделение ресурсов двум буферам ограничения скорости |
Ресурсы каждого буфера могут быть использованы только для трафика соответствующего сервиса (видеоролик 5). Так, для обработки трафика vlan 161 используется буфер ресурсов для трафика vlan 161. Аналогично используются ресурсы буфера для трафика vlan 162.
Видеоролик 5 - Использование выделенных ресурсов для обработки данных |
Существуют способы связи буферов ресурсов друг с другом. Например, в устройствах Инфинет буферы выделенных ресурсов могут быть связаны через классы (см. ниже). В случае, если один из буферов ресурсов будет заполнен (видеоролик 6), выделенные ему ресурсы могут быть предоставлены другому буферу.
В примере буфер для трафика vlan 162 заполнен, что позволяет пополнить буфер трафика vlan 161 выделенными 5 единицами данных, вместо 3. В этом случае пропускная способность сервиса vlan 161 вырастет. Но как только буфер ресурсов трафика vlan 162 появится свободная память, то распределение ресурсов вернётся к нормальному режиму: трафику vlan 161 - 3 единицы данных, трафику vlan 162 - 2 единицы данных.
Видеоролик 6 - Перераспределение выделенных ресурсов между буферами ограничения трафика различных сервисов |
Рассмотренный принцип ограничения пропускной способности реализован в устройствах Инфинет двумя способами:
Устройства Инфинет позволяют настраивать иерархические структуры распределения ресурсов пропускной способности. Для этого используются два типа объектов: логический канал и класс, которые связаны отношением "потомок-родитель" соответственно. В классе указывается пропускная способность, которая будет распределена между дочерними логическими каналами, а в канале значения гарантированной и максимальной пропускной способностей, CIR и MIR соответственно.
Рассмотрим пример передачи трафика двух сервисов, ассоциированных с идентификаторами vlan 161 и 162, между Master и Slave (рис. 17а). Суммарному трафику сервисов выделено не более 9 Мбит/с.
Конфигурация устройства Master может быть выполнена следующим образом (рис. 17б):
Рисунок 17а - Пример ограничения пропускной способности для трафика c vlan-id = 161, 162 Рисунок 17б - Иерархическая структура каналов ограничения пропускной способности для трафика с vlan 161 и 162 |
Функциональные возможности по конфигурации ограничения пропускной способности на устройствах Инфинет всех семейств представлены в таблице ниже:
Таблица функциональных возможностей по ограничению пропускной способности в устройствах Инфинет
|
При конфигурации ограничения пропускной способности потоков данных следует руководствоваться следующими рекомендациями: