Skip to content

Сетевая архитектура, порты и топология WebRTC ​

Понимание сетевой архитектуры RUSEON Core необходимо для корректной настройки корпоративных межсетевых экранов, проброса портов контейнеров и обеспечения сверхнизкой задержки WebRTC через сложные NAT-топологии.


Матрица сетевых портов ​

ПортПротоколНаправлениеСлужбаНазначение
8080 / 8443TCPВходящийHTTP / HTTPS / WebSocketПанель управления, REST API, HLS-стриминг и WHEP-сигнализация
8554TCP / UDPВходящийRTSP СерверПриём видеопотоков от IP-камер; ретрансляция RTSP
50000–50100UDPДвунаправленныйWebRTC ICEПрямая передача RTP/RTCP пакетов клиентам WHEP
50051TCPВходящийgRPC СерверПриём AI-метаданных в реальном времени (детекции, телеметрия)
9090TCPВходящийНаблюдаемостьPrometheus /metrics, /livez, /readyz и /debug/pprof

Режимы транспорта при приёме RTSP ​

RUSEON Core поддерживает два режима приёма RTSP:

  1. RTSP over TCP (Interleaved) — Рекомендуемый режим по умолчанию:
    • RTP и RTCP пакеты передаются внутри установленного TCP-соединения управления.
    • Исключает потери пакетов на нестабильных каналах Wi-Fi и WAN.
    • Не требует открытия дополнительных UDP-портов на стороне камеры.
  2. RTSP over UDP:
    • Медиаданные передаются по динамическим UDP-портам.
    • Обеспечивает минимальную задержку в идеальных локальных сетях (LAN), но подвержен потерям при перегрузке каналов.

Топология WebRTC ICE и прохождение NAT ​

При запуске воспроизведения через WHEP (WebRTC HTTP Egress Protocol):

  1. Браузер отправляет HTTP POST со своим SDP Offer на адрес https://video.example.com/api/v1/webrtc/whep?camera_id=cam1.
  2. RUSEON Core формирует SDP Answer, содержащий публичный IP (webrtc.public_ip) и выделенный UDP-порт из диапазона 50000-50100.
  3. Медиаданные передаются напрямую по протоколу UDP с задержкой менее 500 мс.

Для клиентов за строгими корпоративными симметричными NAT настройте TURN-сервер в config.yaml:

yaml
webrtc:
  public_ip: "203.0.113.50"
  port_range_start: 50000
  port_range_end: 50100
  stun_servers:
    - "stun:stun.l.google.com:19302"
  turn_servers:
    - url: "turn:turn.example.com:3478"
      username: "ruseon_user"
      credential: "secret_password"

Связанная документация ​

Released under the MIT License.