Резервирование: что от чего защищает

Доставка канала держится на пяти звеньях: источник, канал связи, сеть, узел и, для OTT, связь зрителя с узлом. У каждого звена свой механизм защиты, и каждый механизм закрывает только своё звено. Ниже — какую схему выбрать под задачу, затем каждый уровень: что он защищает, во что обходится и как уровни сочетаются.

Настройки — на справочных страницах по ссылкам.

Пять уровней резервирования: основной и резервный источники приходят на два узла по защищённому каналу; узел A отправляет, узел B держит поток наготове; multicast идёт двумя сетями к приёмникам; OTT-зрители получают резервный узел в master-плейлисте.

Пять уровней резервирования. Уровни 3–5 — возможности версии 2.1 (бета).

Выбор схемы под задачу

Задача

Схема

Доставка канала по интернету между своими узлами

SRT или PS1 с буфером под RTT канала; второй вход — тот же канал другим путём или от другого источника.

Головная станция → приёмники multicast (IPTV оператора, гостиница)

Резервные входы на каждом потоке и горячий резерв multicast-выходов на двух узлах; третий узел, который только голосует, если узлов два.

Управляемая вещательная сеть со сторонними приёмниками

RTP или Pro-MPEG FEC; при двух независимых сетях — ST 2022-7. Узел-передатчик защищает резерв multicast-выходов.

OTT для зрителей в интернете

Резервные входы и резерв OTT/DVR на двух и более узлах с публичными адресами HTTPS; кеш или CDN — по 8.1. Резерв OTT/DVR и CDN.

Гостиница

Гостиничное телевидение: руководство интегратора.

Сравнение

Уровень

Перерыв при отказе

Полоса

Что нужно ещё

Задержка

Резервные входы

Таймаут потока

Без доплаты

Второй источник

Не растёт

ARQ (PS1, SRT, RIST)

Нет, пока потери в пределах буфера

Запас на повторы

Обратный канал

Буфер приёмника, несколько RTT

Pro-MPEG FEC

Нет, при небольших потерях

+10–30 % и больше

—

Ожидание FEC матрицы

ST 2022-7

Нет

× 2

Вторая независимая сеть

Окно отстающего пути

Резерв multicast-выходов

Нет

Источник на каждый узел

Второй узел, домен Meshwork

«Задержка выхода», от 500 мс

Резерв OTT/DVR

Пауза, пока проигрыватель замечает отказ

Без доплаты, пока узлы целы

Второй узел с запасом, публичные адреса

Не растёт

1. Источник: резервные входы

У потока может быть несколько входов — например, канал со спутника и тот же канал из интернета. Активен один. Если он признан аварийным (нет данных дольше таймаута потока или поток не проходит проверку), поток переходит на следующий вход по списку, а затем возвращается на основной (Резервирование источников).

  • Защищает от отказа источника: спутника, провайдера, кодера, линии до узла.

  • Цена. Второй источник того же канала. Переключение не бесшовное: до него проходит таймаут потока, и приёмники видят короткий перерыв.

  • Наблюдение. Работу на резервном входе сообщает алерт кода 27 (input-fallback), неисправный резервный вход — код 65 (backup-input-error), поток без единого рабочего входа — код 60 (stream-no-source) (Перечень алертов). Каждый переход записывается в журнал событий потока (События на графиках).

2. Канал связи: повторная передача и FEC

Потери и джиттер в канале между узлами или от стороннего оборудования компенсирует транспортный протокол (Протоколы передачи):

  • ARQ (PS1, SRT, RIST) — повторная передача потерянных пакетов. Нужен обратный канал. Цена — буфер приёмника в несколько RTT (задержка) и запас полосы на повторы.

  • FEC (Pro-MPEG) — постоянная избыточность без обратного канала. Цена — 10–30 % и больше сверх битрейта (зависит от матрицы) и задержка на ожидание FEC. Восстанавливает только небольшие потери.

Протокол защищает от потерь, но не от обрыва канала: если канал пропал целиком, помогает только резервный вход с другим путём доставки (уровень 1).

3. Сеть: два пути SMPTE ST 2022-7

Важно

Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).

Один и тот же поток RTP или Pro-MPEG идёт к приёмнику двумя независимыми сетями, и приёмник собирает его по номерам пакетов. Пакет, потерянный в одной сети, берётся из другой (Требования к сети для ST 2022-7).

  • Защищает от отказа одной сети целиком — коммутатора, линии, питания — и от потерь в ней, без переключения и без перерыва.

  • Цена. Две раздельные сети, по сетевой карте на каждую, двойная полоса. Задержка приёма растёт на окно ожидания отстающего пути (по умолчанию 450 мс, можно меньше, если пути близки).

  • Не защищает от отказа самого узла-передатчика: оба пути отправляет он.

  • Наблюдение. Пропавший путь — алерт кода 75 (input-path-down), пути с разными потоками — код 76 (input-paths-differ).

4. Узел: горячий резерв multicast-выходов

Важно

Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).

Несколько узлов одного домена Meshwork получают один источник и держат одинаковые выходы UDP, RTP или Pro-MPEG на один multicast-адрес. Отправляет один. Если отказывает он, его выход или вход, группу без разрыва и без повторов подхватывает другой узел, и приёмники остаются на том же адресе (Горячий резерв multicast-выходов).

  • Защищает от отказа сервера, его выхода или входа. Серверы можно обслуживать по очереди: узел, который останавливают штатно, сначала передаёт свои группы.

  • Цена. Каждый узел принимает источник и обрабатывает поток так же, как отправитель: ресурсы и входящая полоса — на каждом узле полностью. Задержка выдачи растёт на «Задержку выхода» группы — от 500 до 2500 мс, по умолчанию 500.

  • Требования. Один домен Meshwork, открытый между узлами UDP-порт канала управления (по умолчанию 43975), синхронизированные часы, одинаковые адреса выходов.

  • Наблюдение. Экран «Резервы» (Резервы), дорожка «Резерв» статистики потока (Дорожка «Резерв»), алерты кодов 66–74 (Резервирование потоков).

5. Зритель OTT: резерв OTT/DVR

Важно

Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).

Узлы, которые раздают один канал по HLS, LL-HLS или DASH, объединяются в OTT-группу. Master-плейлист называет проигрывателю резервные узлы, и при отказе узла проигрыватель продолжает с другого. Узел, который не может обслужить нового зрителя или запрос архива, перенаправляет их на узел, который может (Резерв OTT/DVR).

  • Защищает зрителей OTT от отказа узла или потока на нём; архив прошедших передач отдаёт узел, у которого он есть.

  • Цена. Зрители отказавшего узла распределяются по остальным подходящим узлам: из N узлов каждый должен выдержать 1 + 1/(N−1) обычной нагрузки. Каждому узлу нужен адрес, доступный зрителям напрямую.

  • Ограничения беты. Переход во время просмотра — только у одиночных потоков HLS и только у проигрывателей, которые его поддерживают (Проигрыватели и резерв OTT/DVR).

  • Наблюдение. Экран «Резервы», алерты кодов 70, 78 и 79.

Как уровни сочетаются

  • Резервные входы внутри группы резерва. Если вход отправителя замолчал или перешёл на резервный, а у другого участника поток лучше, группа переходит к нему.

  • ST 2022-7 на входе и резерв выходов. «Задержка выхода» группы зависит от окна второго пути входа (Кто отправляет и задержка).

  • Pro-MPEG FEC и резерв выходов. Ожидание FEC на входе задерживает поток; бесшовное переключение группы покрывает его не дольше 2100 мс (предел ожидания FEC).

  • Резерв multicast и OTT на одних узлах. Оба резерва работают независимо: группы multicast выбирают отправителя, OTT-группы — резервы для зрителей. Запас ресурсов считайте на обе нагрузки сразу.

Наблюдение

Резерв полезен, только если о переключении узнают. Состояние всех групп этого узла, участники, итог сравнения источников и проблемы показывает экран «Резервы» (Экран «Резервы»); переключения — дорожка «Резерв» графиков статистики. Настройте доставку алертов дежурному (Внешняя доставка алертов) и вывод метрик во внешнюю систему мониторинга (Подключение внешних систем мониторинга).