Доставка в сеть¶
Главный выход головной станции — транспортный поток, отправленный в сеть: в мультикаст-группу кабельного оператора, на модулятор, на юникаст-адрес приёмника. Станция здесь активная сторона: она сама шлёт, никто к ней не подключается.
Направление доставки называется пушем, и у каждого пуша есть Имя. Имя — это идентичность: по нему направление находят в настройках, в статистике и в метриках. Панель предупреждает об этом прямо под полем: смена имени создаёт новый пуш, и счётчики начнутся с нуля.
Отправьте поток в группу¶
Вкладка Исходящий поток, блок Пуши, кнопка + Добавить пуш. Протокол — MPEG-TS/UDP.
| Поле | Что задаёт | Умолчание |
|---|---|---|
| Имя | идентичность направления | — |
| Хост | мультикаст-группа или юникаст-адрес приёмника | — |
| Порт | порт получателя | — |
| TTL мультикаста | сколько маршрутизаторов переживёт датаграмма | 10 |
| Исходящий интерфейс | с какой сетевой карты уходит мультикаст | выбирает система |
| Адрес привязки | локальный адрес, к которому привязан сокет | выбирает система |
Переключатель Включён рядом с именем выключает направление, не удаляя его. Юникаст от мультикаста отличается только адресом: TTL и выбор интерфейса работают одинаково.
Мультикаст в реальной сети¶
Три вещи, на которых спотыкается доставка, и все три решаются полями выше.
- Не та сетевая карта. На машине с несколькими интерфейсами система выбирает исходящий интерфейс по таблице маршрутов, и для мультикаста этот выбор часто оказывается не тем. Если сигнал «отдаётся», но приёмник его не видит, первым делом задайте Исходящий интерфейс явно.
- TTL. Умолчание 10 позволяет пакету пережить маршрутизацию — принятый в ядре TTL 1 не выпустил бы поток даже за пределы подсети. Через несколько маршрутизаторов TTL поднимают, при жёсткой изоляции сегмента — опускают.
- Приёмник должен подписаться. Станция шлёт в группу независимо от того, слушает ли её кто-нибудь: пакеты уходят и без подписчиков. «Ничего не приходит» на стороне приёмника — это, как правило, его собственная подписка или IGMP snooping на коммутаторе, а не станция.
RTP вместо голого TS¶
Часть приёмников ждёт MPEG-TS, упакованный в RTP по RFC 2250 / SMPTE ST 2022-2, а не голым потоком поверх UDP. Это тот же выход, отличается инкапсуляция: выберите протокол MPEG-TS/RTP вместо MPEG-TS/UDP.
Датаграмма получает RTP-заголовок, всё остальное — адресация, TTL, интерфейс, счётчики — общее с обычным UDP-пушем.
Соседний вариант в том же списке — RIST, когда принимающая сторона ждёт именно его.
Несколько направлений сразу¶
У стрима столько пушей, сколько нужно, и работают они независимо: упавший приёмник одного направления не задевает остальные.
Направления с одинаковыми эффективными настройками выхода делят один побайтово идентичный поток: сто одинаковых пушей стоят столько же, сколько один. Разными их делают только собственные служебные таблицы — свой PNR и свои PID у направления; тогда для него переписываются таблицы и PID, а раскладка пакетов, PCR и счётчики непрерывности остаются от общего выхода.
Поведение при обрыве¶
Собственной политики повторов у пушера нет — его переподнимает стрим. Раз в пять секунд стрим сверяет работающие направления с настройками и заменяет умершего пушера новым; счётчик реконнектов считает именно такие замены.
Отсюда практическое следствие: отправка на недоступный адресат не сдаётся и не требует ручного перезапуска. Она будет подниматься, пока направление включено.
Реконнектом не считаются:
- правка настроек — пушер тоже перезапускается, но это решение оператора, а не отказ канала;
- выключение и включение — выключение не удаление: настройки и накопленные счётчики остаются, отправки нет.
Удаление направления удаляет и его статистику: счётчики привязаны к имени.
Что проверять¶
Под каждым пушем идёт строка живой статистики: статус — Отдаёт, Ошибка или Выключен — скорость в кбит/с, ошибки в секунду, реконнекты, а у отказавшего ещё и причина. Разбор всех полей и рецепты алертинга — на странице Контроль доставки.
Статус Отдаёт при нулевой скорости означает, что отправлять нечего: проблема на входе, а не на выходе.
Что дальше¶
- Выходной MPEG-TS — PNR, PID и SDT, в том числе свои для каждого направления.
- CBR для DVB — когда сигнал уходит на модулятор.
- Контроль доставки — счётчики и алерты.