Что такое Slyber Turn Server и зачем он нужен

Обновлено:

Как работают звонки и видеочаты в интернете?

Когда вы звоните кому то по видеосвязи или голосом в мессенджере, браузере или мобильном приложении, программа старается соединить ваше устройство с устройством собеседника напрямую (это называется технологией WebRTC). Прямое соединение выгодно всем звук и видео передаются по кратчайшему пути с минимальной задержкой.

Однако в реальном мире прямое соединение часто оказывается невозможным. Причина этому NAT (преобразование сетевых адресов) и файрволы (брандмауэры).

Почему устройства не могут соединиться напрямую?

Представьте, что вы хотите отправить курьера с посылкой коллеге, который сидит в большом бизнес центре

  1. У вашего коллеги есть внутренний номер кабинета (например, Кабинет 105 в мире сетей это локальный IP-адрес вроде 192.168.1.5). Но этот номер бесполезен, пока курьер не знает точный уличный адрес самого здания.
  2. Более того, на входе в бизнес центр сидит строгая охрана (корпоративный файрвол или оператор мобильной связи 4G/5G), которая вообще не пускает курьеров с улицы без предварительной заявки изнутри.

Чтобы решить эту проблему в интернете, используются два вспомогательных протокола STUN и TURN.

1. Что такое STUN?

STUN - это легкий сервис, у которого устройство спрашивает "Подскажи, какой у меня внешний уличный адрес и номер окна с точки зрения интернета?".

  • Сервер STUN смотрит на входящий запрос и отвечает "Ты выходишь в интернет с адреса 203.0.113.1, порт 50000".
  • В простых домашних сетях этого достаточно устройства узнают внешние адреса друг друга и начинают общаться напрямую.

2. Что такое TURN?

Если хотя бы один из собеседников находится в "строгой" сети (корпоративный Wi-Fi, мобильный интернет с NAT, строгий файрвол), прямое соединение блокируется. Тогда в дело вступает TURN сервер:

  • Оба участника звонка подключаются к TURN серверу, который стоит в открытом интернете и доступен всем.
  • TURN сервер выделяет для звонка специальный виртуальный порт и начинает пересылать (ретранслировать) аудио и видео от одного собеседника к другому.
  • Без TURN сервера примерно 15–25% звонков в реальном мире просто не смогут соединиться.

Что такое Slyber Turn Server?

Slyber Turn Server - это высокопроизводительный сервер STUN и TURN нового поколения, написанный на языке Go и являющийся частью экосистемы коммуникационного движка Slyber.

Он берет на себя самую сложную задачу в аудио и видеозвонках гарантирует, что пользователи услышат и увидят друг друга в любой сети мира.

Ключевые преимущества Slyber Turn Server:

  • Все в одном бинарном файле: Сервер включает в себя STUN, TURN (по протоколам UDP, TCP и зашифрованному TLS), HTTP API для выдачи доступов, систему мониторинга, диагностику и инструмент нагрузочного тестирования.
  • Автоматическое определение внешнего IP: Сервер умеет сам узнавать свой публичный IP-адрес через внешние STUN серверы.
  • Безопасность: Встроенная защита от сетевых атак (SSRF), запрещающая злоумышленникам использовать ваш TURN сервер для проникновения во внутреннюю сеть компании или облачную инфраструктуру.
  • Умная работа с мобильными сетями: Сервер плавно обрабатывает переключение смартфона пользователя с Wi-Fi на 4G/LTE без разрыва статистики сессии.
  • Встроенный "Доктор" и "Бенчмарк": Одной командой можно проверить правильность настройки сети (slyber_turn doctor) или провести стресс тест сервера с измерением задержек и потерь пакетов (slyber_turn bench).
  • Готовый API: Выдавать временные пароли для звонков можно через встроенное HTTP API.