Skip to content

Резервная доставка

Эфир уходит в мультикаст-группу офисной сети с того стримера, на котором его ведёт установка. Откажет стример — раскладка перенесёт эфир на другой, но группа помолчит, пока контур заметит отказ и новый стример поднимет источник: для зрителя это перерыв в десятки секунд.

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

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

Отправьте эфир в группу

Карточка эфира, вкладка Исходящий поток, блок Пуши, кнопка + Добавить пуш. Протокол — MPEG-TS/UDP или MPEG-TS/RTP, если приёмники ждут RTP.

Поле Что задаёт Умолчание
Имя идентичность направления: по нему его находят в статистике —
Хост адрес мультикаст-группы —
Порт порт получателя —
TTL мультикаста сколько маршрутизаторов переживёт датаграмма 10
Исходящий интерфейс с какой сетевой карты уходит мультикаст выбирает система

Два резервных пуша в одну группу: один вещает, второй ждёт

Включите резерв

У пуша на обеих сторонах:

Поле Что задаёт Умолчание
Резервный пуш пуш вещает в группу, только пока в ней нет другого отправителя выключен
Окно перехвата, мс сколько группа должна молчать, чтобы пуш начал вещать 1000

Переключатель Резервный пуш появляется, только когда в поле Хост записан адрес мультикаст-группы — IPv4 от 224.0.0.0 до 239.255.255.255 или IPv6, начинающийся с ff. У юникаст-адреса общей группы нет, и резерв там невозможен. Имя хоста вместо адреса тоже не подходит: нужен сам адрес.

Как сторона решает, вещать ли

Правило одно на всех:

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

Свои пакеты, вернувшиеся из группы, пуш за другого отправителя не принимает. Второй пуш того же эфира в ту же группу — уже другой отправитель.

После запуска — старта стримера, переноса эфира, правки пуша — пуш сначала молчит одно окно: если в группе уже вещает другая сторона, он не вклинится раньше, чем её услышит. Молчащий пуш продолжает готовить поток, поэтому перехват не ждёт ключевого кадра: первые же пакеты после окна — полноценный поток.

Какое окно ставить

Окно — это и время реакции, и единственное, чем задаётся старшинство сторон.

  • Перерыв у зрителя при отказе примерно равен окну перехвата. Умолчание 1000 мс: живой поток — сотни пакетов в секунду, и секунда тишины — это отказ, а не джиттер сети. Окно короче 200–300 мс начнёт срабатывать на подвисаниях вещающей стороны.
  • Короткое окно выигрывает. Если стороны стартуют одновременно или обе замолчали, первой начнёт вещать та, у которой окно короче.
  • Сторонам — разные окна. При одинаковых окнах стороны, поднявшиеся одновременно, могут несколько раз перекинуть группу друг другу. Основной ставят окно короче, резервной — длиннее, например 500 и 2000 мс.

Резервный пуш — на обеих сторонах: вернувшаяся после отказа сторона слышит, что группа занята, и ждёт, так что группа не перекидывается обратно и лишнего перерыва нет.

Что нужно от сети

Стороны должны слышать группу, в которую вещают.

  • Один сегмент или маршрут мультикаста между стримерами обеих сторон. Каждый вступает в группу на том же интерфейсе, с которого шлёт: задайте Исходящий интерфейс явно.
  • IGMP snooping. Стример подписывается на группу так же, как зритель, и коммутатор доставит ему пакеты другой стороны. На порту, где мультикаст режется фильтром, другую сторону не услышать.
  • Один и тот же сигнал на входе. Резерв подменяет отправителя, а не содержимое: иначе зритель после переключения увидит другой эфир.

Что проверять

У резервного пуша в строке живой статистики рядом с общим статусом стоит статус резерва:

  • Вещает — пуш сейчас шлёт в группу;
  • Ждёт — в группе слышен другой отправитель, пуш молчит.

Молчание в резерве — не ошибка: общий статус остаётся Отдаёт, реконнекты не растут, скорость нулевая — не ушедшие в сеть пакеты не считаются отправленными.

Здоровая группа — ровно одна сторона со статусом Вещает.

  • Вещают обе дольше окна — стороны друг друга не слышат: проверьте Исходящий интерфейс, IGMP snooping и фильтры на портах, TTL.
  • Никто не вещает, у всех Ждёт — в группе есть третий отправитель.
  • Статус Ошибка у резервного пуша — стример не смог вступить в группу на заданном интерфейсе; причина — в строке статистики.

Что дальше

  • Эфиры — источник эфира и резервирование входа.
  • Раскладка — как контур переносит эфир при отказе стримера.
  • Стримеры — состояние серверов установки.