Сетевая архитектура, порты и топология WebRTC
Понимание сетевой архитектуры RUSEON Core необходимо для корректной настройки корпоративных межсетевых экранов, проброса портов контейнеров и обеспечения сверхнизкой задержки WebRTC через сложные NAT-топологии.
Матрица сетевых портов
| Порт | Протокол | Направление | Служба | Назначение |
|---|---|---|---|---|
8080 / 8443 | TCP | Входящий | HTTP / HTTPS / WebSocket | Панель управления, REST API, HLS-стриминг и WHEP-сигнализация |
8554 | TCP / UDP | Входящий | RTSP Сервер | Приём видеопотоков от IP-камер; ретрансляция RTSP |
50000–50100 | UDP | Двунаправленный | WebRTC ICE | Прямая передача RTP/RTCP пакетов клиентам WHEP |
50051 | TCP | Входящий | gRPC Сервер | Приём AI-метаданных в реальном времени (детекции, телеметрия) |
9090 | TCP | Входящий | Наблюдаемость | Prometheus /metrics, /livez, /readyz и /debug/pprof |
Режимы транспорта при приёме RTSP
RUSEON Core поддерживает два режима приёма RTSP:
- RTSP over TCP (Interleaved) — Рекомендуемый режим по умолчанию:
- RTP и RTCP пакеты передаются внутри установленного TCP-соединения управления.
- Исключает потери пакетов на нестабильных каналах Wi-Fi и WAN.
- Не требует открытия дополнительных UDP-портов на стороне камеры.
- RTSP over UDP:
- Медиаданные передаются по динамическим UDP-портам.
- Обеспечивает минимальную задержку в идеальных локальных сетях (LAN), но подвержен потерям при перегрузке каналов.
Топология WebRTC ICE и прохождение NAT
При запуске воспроизведения через WHEP (WebRTC HTTP Egress Protocol):
- Браузер отправляет HTTP
POSTсо своим SDP Offer на адресhttps://video.example.com/api/v1/webrtc/whep?camera_id=cam1. - RUSEON Core формирует SDP Answer, содержащий публичный IP (
webrtc.public_ip) и выделенный UDP-порт из диапазона50000-50100. - Медиаданные передаются напрямую по протоколу 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"