В сетях передачи данных коммутаторы работают по принципу «best effort», который приводит к тому, что кадры или вовсе отбрасываются, или увеличивается задержка при передаче, так как количество входящего трафика бывает выше пропускной способности выходного интерфейса. Однако есть приложения, такие как голосовая передача данных или управление устройствами в промышленных сетях, для которых задержка при передаче является критичной. Для других приложений, например, сбор данных с устройств учета, важно отсутствие потерь, при этом время передачи данных не влияет на работу. Все это говорит о том, что для каждого типа трафика требуется определенное качество обслуживания.
К основным параметрами определения качества связи относят:
- Задержка - время, за которое данные доходят от отправителя до получателя
- Джиттер - отклонения задержек при передаче данных
- Потери - количество кадров, потерянных во время передачи данных по сети
- Скорость передачи - номинальная пропускная способность среды передачи
Чтобы обеспечить приоритетное обслуживание определенного типа трафика, используют технологию QoS (Quality of Service). QoS обеспечивает выделенную полосу пропускания, контролирует задержку и джиттер, а также ограничивает потери данных.
Модели QoS
- Best Effort — негарантированная доставка. В такой системе не различают категории трафика, поэтому весь трафик получает наилучшее на данный момент обслуживание. Такая модель подходит для сетей с большой пропускной способностью и отсутствием нагрузок.
- Differentiated Service (DiffServ) — трафик разделяется на классы и устанавливаются правила для их обработки. Каждый класс трафика получает разный уровень обслуживания. На всем пути трафика каждый узел самостоятельно определяет правила обслуживания, т.е. одни и те же данные могут получить разное обслуживание на своем пути.
Существует еще третья модель - Integrated Service (IntServ), но она не получила широкого практического применения.
Маркировка трафика
Существует несколько способов маркировки трафика сети согласно обслуживанию DiffServ:
1. Маркировка на 2 уровне - CoS (Class of Service)
На канальном уровне маркировка кадров происходит в соответствии со стандартом 802.1p. Поле CoS занимает 3 бита в 4-байтовом заголовке 802.1Q. Всего может быть установлено до 8 классов обслуживания данных, описанных в стандарте 802.1D. Исходя из всего этого, необходимым условием маркировки CoS является тегирование трафика по технологии VLAN. Такая маркировка возможна только в пределах локальной сети, так как при прохождении кадров сквозь маршрутизатор VLAN-теги удаляются.
- TPID (Tag Protocol Identifier) — Идентификатор протокола тегирования. Для стандарта 802.1Q значение TPID — 0×8100.
- Р-тег — Определяет приоритет кадра.
- CFI (Canonical Format Indicator) — Идентификатор формата МАС-адреса, который использовался для совместимости между сетями Ethernet и Token Ring. В настоящее время поле CFI не используется в связи с отказом от сетей Token Ring.
- VLAN ID — Идентификатор VLAN. Определяет, какой подсети VLAN принадлежит кадр.
2. Маркировка на 3 уровне - ToS (Type of Service)/DSCP (Differentiated Services Code Point)
Поле ToS занимает 8 бит в заголовке IP и может состоять из идентификатора приоритета IPP (IP Precedence, 3 бита) или DSCP (6 бит). Первоначально было достаточно делить потоки трафика на 8 классов обслуживания с помощью IPP, но со временем появилась необходимость в более гибкой системе деления. Так был разработан метод DSCP, идентификатор которого занимает 6 бит и содержит помимо приоритета кадра значения для требований к задержкам, пропускной способности и надежности передачи данных. DSCP позволяет разделять потоки на 64 класса и имеет обратную совместимость с IPP.
Исходя из этого существует два варианта заполнения поля ToS:
- Приоритет
- Differential Service Code Point (DSCP) + ECN
DSCP определяет приоритет кадра, а ECN уведомляет о перегруженности сети.
Коммутаторы серии SICOM3000A поддерживают 8 очередей, от 0 до 7 в порядке возрастания приоритета. При получении кадра определяется, к какому классу QoS он относится. Затем в соответствии с уровнем обслуживания данный кадр помещается в свою очередь, где ожидает отправки.
Основные методы обработки очередей на коммутаторах Kyland
- FIFO (first in – first out, первым пришёл — первым ушёл) - отсутствие очередей. Кадр, который пришёл на коммутатор первым, первым и будет отправлен. В этом случае коммутатор не разделяет трафик на классы обслуживания, и QoS не работает. Если технология QoS на коммутаторе отключена, кадры будут обрабатываться именно по правилу FIFO
- Strict Priority queuing (PQ – строгий приоритет очереди) – кадры распределяются по очередям в соответствии с классом обслуживания. Первыми отправляются кадры из очереди с наивысшим приоритетом, затем со следующей очереди и так до очереди с наименьшим приоритетом. То есть пока все кадры из очереди с наивысшим приоритетом не будут переданы, остальные находятся в режиме ожидания.
Минус: если очередь с наивысшим приоритетом заполнена кадрами, то трафик из остальных очередей вообще не будет передаваться.
- Weighted Round Robin (WRR) – каждая очередь имеет свое собственное время обработки, причем у разных очередей оно разное. Так время обработки очереди с наивысшим приоритетом больше, чем у последующих очередей.
Настройка QoS на коммутаторах Kyland
Рассмотрим пример:
В сети есть два компьютера и видеокамера, которые подключены к коммутатору второго уровня серии SICOM3000A, Задача заключается в том, чтобы обеспечить приоритетное обслуживание видеотрафика по сравнению с рекламным.
Без использования QoS трафик будет передаваться равнозначно от обоих компьютеров, что увеличивает нагрузку на сеть, а также вероятность потерь и задержек критического трафика - видеопотока.
Запустив ПО Wireshark на ПК-получателе (PC-C), можно увидеть передачу трафика без распределения приоритетов:
Данную задачу можно решить настройкой QoS на коммутаторе с использованием метода обработки SP (Strict Priority).
1. Для начала необходимо настроить приоритизацию на входящих портах 1 и 2. Для порта 1 оставляем настройки по умолчанию. Для порта 2, к которому подключен ПК с критическим трафиком, указываем метку CoS и PCP = 3, а также включаем классификацию трафика (Tag Class.).
2. Для исходящего порта выбираем метод обработки приоритета Strict Priority и ограничение скорости в 1 Мбит/с.
Примечание: в примере мы генерируем пакеты размером 1478 байт, поэтому скорость потока данных получается равной 1.48 Мбит/с. Чтобы приоритетный трафик однозначно занял всю доступную пропускную способность выходного интерфейса, а неприоритетный отбрасывался, дополнительно нужно настроить Port Shaper (он работает на выходе из очереди и ограничивает трафик до заданного значения, в нашем случае - до 1 Мбит/с).
3. После завершения всех настроек необходимо сохранить конфигурацию: Maintenance -> Save Current Configuration.
Таким образом, настройка QoS позволила ПК3 получать только приоритетный трафик от ПК 2 - видеопоток. Тем самым обеспечила более эффективное использование ресурсов, контроль над трафиком сети, а также гарантированную пропускную способность для трафика с высшим приоритетом.
Передачу трафика также можно проанализировать в Wireshark: