Перейти к основному содержимому
Все термины

STUN и TURN

STUN помогает устройству узнать свой публичный адрес, чтобы установить прямое соединение; TURN ретранслирует трафик, когда прямое соединение установить нельзя.

STUN: узнать свой публичный адрес

Session Traversal Utilities for NAT (STUN), описанный в RFC 8489, устроен как лёгкий протокол типа «запрос-ответ». Устройство отправляет STUN-серверу binding-запрос, а в ответе получает публичный адрес и порт, с которых пришёл запрос. Это так называемый server-reflexive адрес. STUN помогает двум устройствам попробовать прямое соединение, но саму сессию не переносит, поэтому STUN-серверу нужно совсем немного трафика.

TURN: пересылка, когда прямой путь не удался

Traversal Using Relays around NAT (TURN), описанный в RFC 8656 как расширение STUN, выделяет адрес на relay-сервере. Обе стороны отправляют трафик на relay, а тот пересылает его дальше. TURN работает, когда не работает ничего другого, но каждый байт сессии проходит через relay. Это добавляет задержку и обходится оператору в трафик.

ICE: выбор между ними

Interactive Connectivity Establishment (ICE), RFC 8445, связывает их вместе. Каждая сторона собирает кандидатов (локальные адреса, server-reflexive адреса от STUN и relay-адреса от TURN), обменивается ими, проверяет пары и оставляет лучшую рабочую, отдавая предпочтение прямым путям. Именно так ICE, STUN и TURN используются в WebRTC.

Как это устроено в Vexaro Desk

Vexaro Desk не использует TURN. Если сеть не допускает прямого соединения, сессия идёт через собственные ретрансляторы Vexaro, и клиент подключается только к тому ретранслятору, подлинность которого может проверить.

Прямые сессии защищены сквозным шифрованием. Если сеть вынуждает использовать ретранслируемое соединение, трафик остаётся зашифрованным при передаче через ретрансляторы, которыми управляет Vexaro.

STUN, TURN и ICE: сравнение

STUN, TURN и ICE: сравнение
STUNTURNICE
Стандарт1,2,3RFC 8489RFC 8656RFC 8445
Назначение1,2,3Узнать публичный адрес и портПересылать трафик через серверСобрать, проверить и выбрать пути-кандидаты
Переносит трафик сессии1,2,3НетДаНет, только выбирает путь
Нагрузка на сервер1,2,3Только небольшие запросыВесь трафик сессииСвоей нет; использует серверы STUN и TURN

Часто задаваемые вопросы

Что делает STUN?
Он сообщает устройству публичный адрес и порт, с которых, судя по всему, приходит его трафик, чтобы два устройства могли попробовать соединиться напрямую. Трафик сессии он не переносит.
Что такое TURN и когда он нужен?
TURN работает как relay: обе стороны отправляют трафик на TURN-сервер, а тот пересылает его. Он нужен, когда прямое соединение установить нельзя: работает всегда, но стоит задержки и трафика.
Нужны ли и STUN, и TURN?
Для связи в духе WebRTC обычно да: STUN делает возможными прямые соединения, TURN закрывает случаи, когда они не удаются, а ICE выбирает между ними. Продукты с собственными ретрансляторами, такие как Vexaro Desk, используют их вместо TURN.
Использует ли Vexaro Desk TURN?
Нет. Vexaro Desk подключается напрямую везде, где это позволяет сеть, а иначе через собственные ретрансляторы Vexaro, подлинность которых клиент проверяет перед подключением.

Посмотрите в Vexaro Desk

Vexaro Desk объединяет в одной консоли доступ с участием пользователя и без него, обход NAT, адаптивный движок кодеков и управление. Продукт на этапе раннего доступа, и вы можете создать бесплатный аккаунт, чтобы попробовать.