videocalling
Illustration of TURN (Traversal Using Relays around NAT) in video calling

TURN (Traversal Using Relays around NAT)

glossary.categories.protocol

Servidor de retransmisión utilizado cuando las conexiones directas fallan

¿Qué es TURN?

TURN (Traversal Using Relays around NAT) es un protocolo que proporciona un servidor de retransmisión para el tráfico WebRTC cuando las conexiones directas entre pares no son posibles. Mientras que STUN ayuda a los dispositivos a descubrir sus direcciones públicas para conexiones directas, TURN actúa como intermediario que retransmite todo el tráfico entre los pares cuando las conexiones directas fallan.

TURN es la red de seguridad que garantiza que las llamadas WebRTC funcionen incluso en los entornos de red más restrictivos: NAT simétrico, firewalls corporativos agresivos, proxies HTTP y redes que bloquean UDP.

Cómo funciona TURN

  1. El cliente se autentica con el servidor TURN y solicita una asignación
  2. El servidor TURN asigna una dirección IP pública y un puerto para la retransmisión
  3. Esta dirección de retransmisión se comparte con el par remoto como un candidato ICE
  4. Todo el tráfico de medios fluye a través del servidor TURN: Cliente A → TURN → Cliente B
  5. El servidor TURN reenvía los paquetes de forma transparente en ambas direcciones

Cuándo se necesita TURN

  • NAT simétrico: El tipo de NAT más restrictivo, donde STUN no funciona
  • Firewalls corporativos: Redes empresariales que bloquean tráfico UDP entrante
  • Proxies HTTP estrictos: Redes que solo permiten tráfico HTTP/HTTPS (TURN sobre TCP/443)
  • Redes con VPN: Algunas configuraciones VPN impiden conexiones directas entre pares

TURN vs. STUN

  • STUN: Ligero, solo descubrimiento de dirección, sin retransmisión de medios. Funciona ~75-85% del tiempo. Bajo costo
  • TURN: Retransmite todo el tráfico, mayor latencia (+30-100ms), alto costo de ancho de banda. Respaldo para el 15-25% restante

Costos de infraestructura TURN

TURN es significativamente más costoso de operar que STUN porque todo el tráfico de medios fluye a través de los servidores TURN. Una videollamada HD puede consumir 2-3 Mbps por dirección. Para el 15-25% de llamadas que requieren TURN, el costo de ancho de banda del servidor puede ser sustancial.

Opciones para servidores TURN incluyen: auto-hospedaje con coturn (código abierto), servicios gestionados como Twilio, Xirsys o Cloudflare, o implementaciones propietarias incluidas en plataformas WebRTC como LiveKit o Daily.

TURN sobre TCP y TLS

Para redes que bloquean UDP completamente, TURN soporta TCP y TLS como transportes. TURN sobre TLS en el puerto 443 es particularmente útil porque el tráfico se ve idéntico al tráfico HTTPS normal, pasando a través de prácticamente cualquier firewall o proxy.

Referencias