Требования к сети для ST 2022-7¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
SMPTE ST 2022-7 — бесшовное резервирование: один и тот же поток RTP идёт к приёмнику двумя путями, и приёмник собирает их в один по порядковым номерам RTP-пакетов. Пакет, потерянный на одном пути, берётся с другого; переключения нет, и на выходе приёмника потеря не видна. Защита ровно настолько надёжна, насколько независимы пути: всё, что у двух путей общее, остаётся единой точкой отказа.
В Perfect Streamer второй путь настраивается у входа и выхода типа RTP (RTP):
вход принимает второй путь —
path2-addressиpath2-port, интерфейсpath2-bind-if, источник для SSMpath2-ssm-addressи окно ожиданияpath-skew-ms;выход отправляет те же пакеты вторым путём —
path2-addressиpath2-port, интерфейсpath2-mcast-if.
Оба пути должны нести один и тот же поток: тот же SSRC и ту же нумерацию пакетов.
Если пути различаются, они не смешиваются — используется только первый путь, а
узел поднимает алерт кода 76 (input-paths-differ, Перечень алертов). Вход и выход Pro-MPEG работают со вторым путём так же,
как RTP; FEC второго пути идёт на его собственные FEC-порты, а мультиплексирование
Pro-MPEG со вторым путём не сочетается (Pro-MPEG).
Два независимых пути¶
Главное требование — две раздельные сети, условно «красная» и «синяя», каждая со своими коммутаторами, линиями и питанием. Общий коммутатор, общий магистральный канал или общий источник питания на обоих путях — единая точка отказа, и при её сбое пропадают оба пути сразу.
На узле желательны две сетевые карты, по одной на каждую сеть. Входу второй путь
назначается полем path2-bind-if, выходу — полем path2-mcast-if (имя
интерфейса или его IPv4-адрес; пустое значение — интерфейс системы по умолчанию).
Если второй путь выхода открыть не удалось, например path2-mcast-if называет
адрес, которого на этом сервере нет, выход продолжает отправку первым путём, а
ошибка второго пути показывается в статистике выхода.
Multicast¶
Если пути — multicast-группы, обе сети должны пропускать multicast сами по себе:
на коммутаторах включён IGMP snooping;
в каждой из двух сетей работает IGMP querier. Без него snooping через несколько минут перестаёт пересылать группу, и путь пропадает без видимой причины;
при приёме с указанием источника (SSM,
path2-ssm-addressдля второго пути) сеть должна поддерживать IGMPv3;если пути проходят через маршрутизаторы — в обеих сетях настроен PIM, а TTL пакетов достаточен, чтобы пройти все участки.
Полоса¶
Каждый путь несёт поток целиком, поэтому трафик удваивается: на каждую сеть закладывайте полный битрейт потока. Если к потоку добавляется FEC, его доля тоже идёт по каждому пути (Планирование полосы, задержки и портов).
Разница задержек путей¶
Задержки двух путей различаются, и разница должна укладываться в окно приёмника
path-skew-ms: от 10 до 1000 мс, по умолчанию 450 мс — класс C стандарта ST 2022-7
(потоки ниже 270 Мбит/с). Это наибольшее время, которое приёмник ждёт пропущенный
пакет с отстающего пути. Ожидание отсчитывается с момента, когда пропуск
обнаружен, то есть когда опережающий путь уже доставил следующие пакеты. Потеря
нескольких пакетов на опережающем пути восстанавливается, пока отстающий путь
отстаёт не больше чем на path-skew-ms плюс длительность этих пакетов.
В реальных сетях пути обычно различаются на единицы или десятки миллисекунд. Если
задержки путей известны и близки, path-skew-ms можно уменьшить: приёмник будет
добавлять меньшую задержку. Собственная задержка потока на узле должна покрывать
это окно.
Что не требуется¶
Jumbo-кадры. Семь TS-пакетов в RTP-пакете укладываются в обычный MTU 1500 байт.
PTP и синхронизация часов. Пути сводятся по порядковым номерам RTP-пакетов, а не по времени, — в отличие от SMPTE ST 2110.
Особые функции ST 2022-7 в коммутаторах. Достаточно обычной передачи unicast или multicast.
Рекомендации¶
В общей с другим трафиком сети дайте потокам приоритет QoS (DSCP), иначе всплеск чужого трафика задержит или потеряет пакеты сразу на обоих путях.
Не ведите оба пути через один агрегированный канал (LAG) или один магистральный канал: это та же единая точка отказа, что и общий коммутатор.
У выхода в группе резерва оба пути отправляет узел, выбранный отправителем группы. Задайте
path2-mcast-ifна каждом участнике группы: по второму пути узлы тоже следят за отправителем.