---
title: PS1, SRT и RIST
url: https://doc2.pstreamer.tv/ru/manual/webui/io/peer.html
lang: ru
product: Perfect Streamer
version: 2.0.1.264
---

# PS1, SRT и RIST

Peer-протоколы надёжной передачи: потерянные пакеты передаются повторно по запросу приёмника, поэтому у всех трёх есть буфер приёма и запас полосы на ретрансмиссию. Выбор протокола, расчёт полосы и задержки описаны в [Peer-протоколы надёжной передачи](../../planning/index.md#planning-peer-protocols) и [Планирование полосы, задержки и портов](../../planning/index.md#planning-bandwidth-latency), шифрование — в [Шифрование потоков](../../planning/index.md#planning-encryption).

Сторону, устанавливающую соединение, каждый протокол определяет по-своему: у PS1 подключается всегда приёмник, у SRT сторону выбирают настройкой, у RIST она следует из адресов. Это решает, где нужен открытый порт, а где достаточно исходящего соединения.

## PS1

Протокол собственной разработки ([PS1 (Perfect Stream)](../../planning/index.md#planning-ps1)). Соединение всегда устанавливает приёмник, поэтому вход подключается к передатчику, а выход слушает порт. Режима выбора стороны нет.

### Вход

| Поле | Назначение | Значения |
| --- | --- | --- |
| Address (source host) | Узел-передатчик, к которому подключается приёмник. Обязательное поле. | адрес или имя хоста |
| Port | Порт передатчика. Обязательное поле. | 1–65535 |
| «Логин», «Пароль» | Учётные данные, которые приёмник предъявляет передатчику; тот сверяет их со своим списком логинов ([Пользователи / Логины](../configure.md#webui-users)). Пустой логин означает авторизацию по IP-адресу приёмника. Значение должно быть короче 32 байт: более длинное приёмник отвергает сам, не отправляя запроса, и вход остаётся в ошибке. Вместо ручного ввода доступен автовход Meshwork — см. ниже. | по умолчанию пусто |
| Passphrase | Парольная фраза шифрования; должна совпадать с передатчиком. Несовпадение протокол не распознаёт: соединение установится, а поток не будет разбираться как MPEG-TS — в тексте ошибки узел напоминает, задана ли фраза на этой стороне. | 10–64 байта либо пусто |
| Start timeout (s) | Сколько ждать ответа передатчика на запрос авторизации. Не дождавшись, приёмник переподключается. | 5–3600, по умолчанию 10 |
| Play timeout (s) | Сколько работающее соединение может молчать, прежде чем приёмник признает его разорванным. Это время реакции на аварию источника. | 5–3600, по умолчанию 10 |
| Latency (ms) | Запрашиваемая задержка приёма: окно устранения джиттера и повторной передачи. Значение — запрос: передатчик ограничивает его своим буфером, а согласованную величину показывает статистика входа. Ориентир — четыре времени прохождения сигнала туда и обратно; потокам низкого битрейта нужно больше, чтобы в окне помещалось достаточно пакетов. | 250–10000, по умолчанию 3000 |
| RTT (initial estimate) (ms) | Начальная оценка времени прохождения сигнала, только на первые секунды после подключения: дальше приёмник измеряет его сам и подстраивает повторные передачи. Ноль здесь не означает «автоматически» — он просто ниже допустимого предела. | 40–10000, по умолчанию 300 |

**Автовход Meshwork.** У входа PS1 логин и пароль можно не вводить: кнопка «Использовать автовход meshwork» переключает вход на доменную авторизацию, при которой учётные данные формируются автоматически и обновляются при каждом переподключении, а заводить учётную запись на передатчике не нужно ([Соседи и секреты](../../meshwork/setup.md#meshwork-peers)). Требуется домен узла. Обратное переключение — «Переключиться на ручной вход…» — очищает автовход и запрашивает подтверждение.

### Выход

| Поле | Назначение | Значения |
| --- | --- | --- |
| Listening port | Порт, который слушает передатчик. Обязательное поле; можно оставить нулевым — узел подберёт свободный порт при сохранении, а кнопка рядом подбирает его сразу. | 1–65534 |
| Bind interface | Интерфейс, на котором слушается порт; выбирается из списка интерфейсов узла. Пустое значение — любой интерфейс. Отсутствующий на узле интерфейс ошибкой не считается: выход в этом случае слушает все интерфейсы, как при пустом поле. | по умолчанию любой |
| Passphrase | Парольная фраза шифрования; должна совпадать с приёмниками. | 10–64 байта либо пусто |
| Latency (ms) | Буфер передатчика: предел задержки, которую он готов предоставить приёмникам, и размер собственного буфера повторной передачи. Каждый приёмник получает не больше этой величины минус одна секунда, поэтому запас на весь канал задают здесь. | от 3000, по умолчанию 6000 |
| Trace | Запись подключений и отказов в журнал потока. | по умолчанию выключено |

## SRT

Открытый протокол на базе UDP ([SRT](../../planning/index.md#planning-srt)). Сторона, устанавливающая соединение, выбирается настройкой «Listen mode» — и она же меняет смысл нескольких полей, поэтому её задают первой.

«Listen mode» у входа выключен по умолчанию: вход подключается к передатчику сам (caller). У выхода он, наоборот, включён: выход слушает порт и раздаёт поток подключившимся (listener). Большинство полей окно показывает в обоих режимах, даже когда в текущем они не действуют; скрываются только два — «Enable billing» у выхода и предложение автовхода Meshwork у входа.

### Вход

| Поле | Назначение | Значения |
| --- | --- | --- |
| Listen mode | Выключено — вход подключается к указанному адресу и порту. Включено — вход слушает порт и ждёт подключения. | по умолчанию выключено |
| Address | При выключенном «Listen mode» — узел-источник, к которому подключается вход; здесь допустимо и имя узла. При включённом — единственный адрес, с которого принимается подключение, и его задают числом: имя узла или опечатка распознаны не будут и равносильны отсутствию ограничения, как и пустое поле. | адрес или имя хоста |
| Port | Порт: удалённый при подключении к источнику, локальный в режиме ожидания. Обязательное поле. В режиме ожидания порт можно оставить нулевым — узел подберёт свободный. | 1–65535 |
| Bind interface | Интерфейс: в режиме ожидания на нём слушается порт, при подключении к источнику с него уходит исходящее соединение. Выбирается из списка интерфейсов узла. | по умолчанию любой |
| «Логин», «Пароль» | При подключении к источнику из них формируется идентификатор потока (stream ID), предъявляемый передатчику. В режиме ожидания используется только логин — это идентификатор, который обязан предъявить подключающийся: сравнение точное, целой строкой ([SRT: авторизация по логину и паролю в стороннем ПО](../../faq/index.md#faq-srt-streamid)). | по умолчанию пусто |
| Passphrase | Парольная фраза шифрования соединения. Обе стороны должны задать одинаковую фразу либо обе оставить поле пустым. При подключении к источнику несовпадение узнаётся по отказу партнёра: вход переходит в состояние ожидания администратора и вызывает оповещение. В режиме ожидания подключение просто не устанавливается, и вход продолжает ждать. | 10–79 байт либо пусто |
| AES key length | Длина ключа шифрования. Действует только при заданной парольной фразе. | AES-128 (по умолчанию), AES-192, AES-256 |
| Latency (ms) | Окно, в течение которого приёмник придерживает пакеты, давая протоколу время на повторную передачу. Больше окно — глубже восстановление и выше сквозная задержка; практический ориентир — три-четыре времени прохождения сигнала туда и обратно. | от 120, по умолчанию 1000 |
| Loss max TTL | Верхняя граница терпимости к перестановке пакетов: в этих пределах приёмник сам подбирает, сколько ждать отставший пакет, прежде чем считать пропуск потерей и запрашивать повтор. Значение увеличивают на путях, где пакеты действительно переставляются, — это избавляет от лишних повторных передач. Ноль отключает механизм: любой пропуск сразу считается потерей. | от 0, по умолчанию 0 |
| Overhead (%) | Запас полосы сверх битрейта потока, который протокол вправе потратить на повторные передачи. Действует, пока «Max bandwidth» равен нулю. | 5–100, по умолчанию 25 |
| Max bandwidth (B/s) | Жёсткий предел скорости отправки в байтах в секунду. Запас в процентах действует только при нуле: тогда предел выводится из измеренного битрейта и этого запаса. Значение −1 снимает ограничение, положительное задаёт предел прямо — и в обоих случаях запас в процентах перестаёт действовать. | от −1, по умолчанию 0 |
| Connect timeout (ms) | Допустимое время молчания партнёра, по истечении которого соединение считается разорванным. Для стороны, устанавливающей соединение, это ещё и таймаут самого подключения. | от 0, по умолчанию 3000 |
| Disable TSBPD | Отключает выдачу пакетов по меткам времени: пакеты отдаются сразу по приходе. Задержка минимальна, но выравнивания и упорядочивания на стороне SRT больше нет — и настройка Latency перестаёт управлять выдачей. Применяют на плотных приёмных узлах, где синхронизацию берёт на себя джиттер-буфер узла ([Синхронизация](../../streamer/spts.md#streamer-spts-sync)). | по умолчанию выключено |

Вход в режиме ожидания принимает одно подключение: пока приёмник занят одним источником, второй не подключится. Чтобы принимать несколько источников, добавляют несколько входов ([Резервирование источников и раздача](../../planning/index.md#planning-reservation)).

Автовход Meshwork доступен и здесь, при подключении к источнику: он подставляет доменный идентификатор потока вместо логина и пароля ([Соседи и секреты](../../meshwork/setup.md#meshwork-peers)). В режиме ожидания подключений этой возможности нет, но подключение от узла того же домена принимается и там — по доменному идентификатору, помимо обычной проверки.

### Выход

Поля шифрования и настройки канала — те же, что у входа. Отличия:

| Поле | Назначение | Значения |
| --- | --- | --- |
| Listen mode | Включено — выход слушает порт, и к нему подключается несколько приёмников, каждый со своей авторизацией. Выключено — выход сам подключается к указанному адресу и отдаёт поток одному приёмнику. | по умолчанию включено |
| Address | Адрес приёмника. Обязателен, когда «Listen mode» выключен; в режиме ожидания подключений не используется. | адрес или имя хоста |
| Port | Локальный порт в режиме ожидания (можно оставить нулевым — узел подберёт свободный) либо порт приёмника при подключении. Обязательное поле. | 1–65534 |
| Bind interface | Интерфейс: в режиме ожидания на нём слушается порт, при подключении к приёмнику с него уходит исходящее соединение. | по умолчанию любой |
| Meshwork peer auth | Доменная авторизация вместо идентификатора потока — при подключении к приёмнику того же домена ([Соседи и секреты](../../meshwork/setup.md#meshwork-peers)). В отличие от входа, здесь это обычный выключатель, и в режиме ожидания он тоже показан, хотя не действует. | по умолчанию выключено |
| SRT stream id | Идентификатор потока, который выход предъявляет приёмнику при подключении к нему. В режиме ожидания не используется — там идентификатор предъявляет подключающийся. | по умолчанию пусто |
| Enable billing | Только при подключении к приёмнику: перед соединением выход запрашивает разрешение у сервера биллинга. Отказ или недоступность сервера останавливают выход до вмешательства администратора — поток не уходит неавторизованным. В режиме ожидания поле не показывается: там каждое подключение авторизуется отдельно. | по умолчанию выключено |
| Packets per datagram | Сколько TS-пакетов укладывается в одно сообщение SRT. Семь пакетов заполняют стандартные 1316 байт; меньшее значение немного снижает задержку ценой заметно больших накладных расходов. Изменение переоткрывает выход. | 1–7, по умолчанию 7 |
| Trace | Запись подключений, отказов и отключений приёмников в журнал потока. | по умолчанию выключено |

## RIST

Открытый протокол на базе RTP/RTCP с повторной передачей по NACK ([RIST](../../planning/index.md#planning-rist)). Пир у RIST не один: и вход, и выход работают со списком пиров, что даёт резервирование по нескольким путям и раздачу сразу нескольким получателям.

Профиль Main укладывает данные и служебный канал в один порт, и только в нём работает шифрование. Профиль Simple занимает два порта подряд, поэтому базовый порт должен быть чётным, а парольная фраза в этом профиле не действует.

### Список пиров

Пиры задаются таблицей «Пиры RIST»: одна строка — один пир, столбцы Address, Port, Interface и Weight. В подписи столбца стоит подсказка о его обычном применении, и она разная у входа и выхода: на входе — Address (multicast) и Interface (unicast), на выходе — Address и Interface (multicast). Кнопка «Добавить пир» добавляет строку, «Удалить пир» — убирает; пустая таблица сопровождается надписью «Пиров пока нет.» Ноль в столбцах Port и Weight показан пустой ячейкой.

| Столбец | Назначение | Значения |
| --- | --- | --- |
| Address | Адрес пира. На входе это адрес, с которого принимается поток: группа multicast делает вход приёмником группы, пустая ячейка означает приём unicast — и тогда сокет привязывается к адресу из столбца Interface. На выходе — адрес получателя, и он обязателен. Смешивать группы multicast и адреса unicast в одном списке нельзя. | адрес |
| Port | Порт пира. Обязателен у каждой строки. В профиле Simple порт должен быть чётным — соседний порт занимает служебный канал. | 1–65535 |
| Interface | Интерфейс. На входе он нужен при приёме unicast — именно к его адресу привязывается приёмник; при приёме multicast только проверяется. На выходе он задаёт интерфейс отправки для группы multicast, а для unicast не действует: интерфейс выбирает таблица маршрутизации. | имя интерфейса или его адрес |
| Weight | Политика путей на передаче. Ноль означает дублирование: пиру отправляется каждый пакет — это резервирование канала. Положительное значение включает распределение нагрузки между пирами с положительными весами пропорционально им. На приёме значение не действует. | от 0, по умолчанию 0 |

В каталог домена вход RIST попадает только пирами с адресом multicast; приём unicast там не объявляется ([Общий каталог ресурсов](../../meshwork/map.md#meshwork-catalog)).

Сохранение блокируется, пока таблица не заполнена: «Добавьте хотя бы один пир.», «У каждого пира должен быть порт от 1 до 65535.», «У каждого пира должен быть адрес.» — на выходе, «У каждого пира должен быть адрес (multicast) или интерфейс (unicast).» — на входе. Ещё три сообщения повторяют проверки узла, чтобы не встречать их отказом при сохранении: «В профиле Simple порт каждого пира должен быть чётным.», «Для unicast-пира на входе нужен интерфейс привязки.» и «Все пиры должны быть либо multicast, либо unicast — смешивать нельзя.»

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

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

### Вход

| Поле | Назначение | Значения |
| --- | --- | --- |
| RIST profile | Формат передачи. Main — один порт, доступно шифрование. Simple — два порта подряд, без шифрования. | Simple, Main (по умолчанию) |
| Allowed peer IP | Единственный адрес, с которого принимается подключение; остальные отклоняются с записью в журнал. Пустое поле разрешает подключение с любого адреса. Это один адрес, а не список, маска или диапазон. | по умолчанию пусто |
| Passphrase | Парольная фраза шифрования; должна совпадать у обеих сторон. Длина не ограничивается, но учитываются только первые 127 байт. Действует лишь в профиле Main. | по умолчанию пусто |
| Session timeout (ms) | Сколько пир может молчать, прежде чем сессия будет разорвана. Меньшее значение ускоряет обнаружение отказавшего пути, слишком малое — вызывает разрывы на нестабильном канале. | от 100, по умолчанию 2000 |
| Recovery RTT min (ms), Recovery RTT max (ms) | Границы, в которые укладывается измеренное время прохождения сигнала при расчёте интервала повторных запросов. Размер буфера восстановления они не задают — он фиксирован. | от 10; по умолчанию 50 и 500 |
| Trace | Запись событий пиров в журнал потока. Изменение настройки перезапускает вход. | по умолчанию выключено |

### Выход

Та же таблица пиров, тот же профиль, парольная фраза и настройки восстановления. Отличия:

| Поле | Назначение | Значения |
| --- | --- | --- |
| Auth type | None — подключение принимается от любого пира. Embedded — пир авторизуется по IP-адресу по списку логинов узла ([Пользователи / Логины](../configure.md#webui-users)); неизвестный адрес отклоняется. | None (по умолчанию), Embedded |
| Packets per datagram | Сколько TS-пакетов укладывается в одну датаграмму. Семь пакетов заполняют стандартные 1316 байт. Изменение переоткрывает выход. | 1–7, по умолчанию 7 |
