Transversal usando NAT de retransmisión (TURN) es un protocolo que permite que un host detrás de un NAT o firewall reciba datos entrantes a través de conexiones TCP o UDP . Esta capacidad es especialmente relevante para hosts detrás de NAT simétricos, o firewalls, que están a punto de alojar una conexión con un par específico.
TURN no está diseñado para reenviar puertos de servidor a través de NAT, admite conexiones punto a punto entre nodos ubicados detrás de NAT (como en la telefonía IP ).
En este sentido, conserva las características de seguridad proporcionadas por NAT simétrico y firewalls , pero cambia las tablas de traducción para que un host en el interior pueda convertirse en el extremo receptor de la conexión.
El protocolo TURN se describe en RFC 5766 y una actualización de TURN para admitir IPv6 se describe en RFC 6156 . El esquema de URI para TURN está documentado en RFC 7065 .
NAT, aunque tiene muchas ventajas, también tiene muchas desventajas. El más importante de los cuales es la interrupción de muchas aplicaciones de red existentes y la dificultad para desarrollar otras nuevas. Se han desarrollado pautas que describen cómo diseñar protocolos compatibles con NAT, pero muchos protocolos simplemente no pueden construirse de acuerdo con estas pautas. Ejemplos de tales protocolos son las aplicaciones multimedia y el intercambio de archivos.
Session Traversal Utilities for NAT ( STUN ) proporciona una forma de atravesar NAT. STUN permite que el cliente obtenga una dirección de transporte (dirección IP y puerto), que puede ser útil para recibir paquetes de pares. Sin embargo, no todos los pares pueden acceder a las direcciones obtenidas a través de STUN. Estas direcciones funcionan según la topología de la red. Por lo tanto, STUN por sí solo no puede proporcionar una solución completa de NAT transversal.
La solución completa requiere un medio por el cual el cliente pueda obtener una dirección de transporte a la que pueda recibir un flujo de datos de cualquier par que pueda enviar paquetes de datos a la Internet pública. Esto solo se puede lograr mediante la transmisión de datos a través de un servidor ubicado en la Internet pública. Esta especificación describe Traversal Using Relay NAT (TURN), un protocolo que permite a un cliente obtener direcciones IP y puertos de dichos pares.
Si bien TURN casi siempre proporcionará una conexión con el cliente, ejerce mucha presión sobre el proveedor del servidor TURN. Por lo tanto, se recomienda usar TURN solo como último recurso, prefiriendo otros mecanismos (como STUN o conexión directa) cuando sea posible. Para lograr esto, se puede utilizar la metodología de Establecimiento de Conectividad Interactiva (ICE) para encontrar los medios óptimos de comunicación.