Резервная доставка¶
Эфир уходит в мультикаст-группу офисной сети с того стримера, на котором его ведёт установка. Откажет стример — раскладка перенесёт эфир на другой, но группа помолчит, пока контур заметит отказ и новый стример поднимет источник: для зрителя это перерыв в десятки секунд.
Когда вторую установку нельзя собрать в один кластер с первой — другая площадка, отдельный контур, независимая машина рядом с установкой, — перерыв закрывает резервный пуш. Обе стороны принимают один и тот же сигнал и шлют эфир в одну и ту же группу. Вещает одна, вторая слушает группу и молчит. Затихла группа — вторая начинает вещать сама, без контура и без человека.
Стороны ничего друг другу не сообщают и друг о друге не знают. Каждая решает только по тому, что слышит в группе, поэтому схема работает между установками, которые никак не связаны, — достаточно общей сети.
Отправьте эфир в группу¶
Карточка эфира, вкладка Исходящий поток, блок Пуши, кнопка + Добавить пуш. Протокол — 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.
- Никто не вещает, у всех Ждёт — в группе есть третий отправитель.
- Статус Ошибка у резервного пуша — стример не смог вступить в группу на заданном интерфейсе; причина — в строке статистики.