Приём по SRT и RIST¶
SRT и RIST везут сигнал через сеть, которой вы не управляете: через интернет, между городами, от передвижной станции. Потери в такой сети неизбежны, и оба транспорта восстанавливают их перепосылкой, пока на это остаётся время.
SRT¶
На вкладке Источники нажмите + Добавить источник и выберите протокол SRT. Станция ждёт подключение на выделенном UDP-порту, отправитель подключается к нему.
| Поле | Что задаёт |
|---|---|
| Хост, Порт | адрес и UDP-порт, на котором ждём подключение |
| Passphrase | ключ шифрования AES; при несовпадении подключение отклоняется на рукопожатии |
| Stream ID | ожидаемый идентификатор отправителя |
| Латентность приёма (мс) | бюджет на восстановление потерь (см. ниже); по умолчанию 120 |
| Таймаут рукопожатия (мс), Таймаут пира (мс) | таймауты установления связи и неактивности |
Вставленный целиком srt://-адрес раскладывается по полям, а собранный обратно SRT URL показан рядом — его копируют и отдают отправителю.
Латентность — это бюджет, а не задержка ради задержки¶
Латентность приёма задаёт, сколько пакет ждёт в приёмном буфере до выдачи. Потерянный пакет успеет приехать повторно только если запрос перепосылки и ответ уложатся в это окно — отсюда практическое правило, записанное прямо в подсказке поля: не меньше трёх-четырёх RTT до источника.
На канале с RTT 100 мс стандартные 120 мс не дают ни одной попытки восстановления: потеря становится дырой в сигнале. Плата за увеличение честная и предсказуемая — ровно такая же задержка на выходе и память под приёмный буфер.
Значение подбирается по измеренному RTT, а не по ощущениям: RTT и его вариация есть в счётчиках соединения.
Что делает транспорт¶
Реализован полный механизм ARQ: подтверждения (ACK/ACKACK), запросы перепосылки (NAK) с периодом, подстроенным под измеренный RTT, выдача пакетов по порядку из буфера задержки, отбрасывание безнадёжно опоздавших (too-late drop), keepalive для простаивающих соединений.
Практическое следствие для головной станции: потери на линке не обязаны становиться дефектами сигнала. Пока бюджета хватает, дыра закрывается перепосылкой и до выхода не доходит. Когда бюджета не хватает, это видно по счётчикам — растут дропы по опозданию, а не только ретрансмиты.
RIST¶
Протокол RIST заводится тем же + Добавить источник. Отличий от SRT два, и оба видны в форме:
- Профиль RIST — Simple (пара портов), где медиа и RTCP занимают соседние порты (медиапорт обязан быть чётным), либо Main (туннель GRE), где на проводе один Порт туннеля. У туннеля выбирается Роль в туннеле — стучаться самим или ждать — и Пароль PSK, шифрующий содержимое; он должен совпадать на обеих сторонах.
- Приёмный буфер (мс) — тот же по смыслу бюджет восстановления, что и латентность у SRT; по умолчанию 1000. Рядом — Секция переупорядочивания (мс), Число попыток и Интерфейс мультикаста для приёма группы.
Применение изменений¶
Смена адреса, порта, ключа или идентификатора перезапускает источник. Смена одних лишь таймаутов применяется на лету.
Что дальше¶
- Отдать сигнал по SRT дальше — на фиксированный адресат или под забор партнёром.
- Зарезервировать вход — SRT в паре с мультикастом.
- Ошибки входа — как отличить умерший источник от сыплющегося канала.