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

TURN (Traversal Using Relays around NAT)

glossary.categories.protocol

Servidor relay usado quando conexões diretas falham

O que é TURN?

Traversal Using Relays around NAT (TURN) é um protocolo que fornece um servidor relay para encaminhar mídia quando conexões peer-to-peer diretas são impossíveis. Se STUN é "deixe-me descobrir meu endereço público para que possamos nos conectar diretamente", TURN é "conexão direta falhou, vamos usar um intermediário para retransmitir tudo".

TURN é o fallback que garante que chamadas WebRTC funcionem em qualquer rede. Sem TURN, 15-25% das chamadas falhariam porque NATs simétricos, firewalls corporativos ou proxies restritivos bloqueiam conexões diretas.

Como o TURN Funciona

  1. Seu navegador se conecta ao servidor TURN e solicita uma alocação de relay
  2. O servidor TURN atribui um endereço IP:porta público dedicado a você
  3. Esse endereço relay se torna um candidato ICE compartilhado com o par remoto
  4. Quando conexões diretas falham, ambos os pares enviam mídia ao servidor TURN
  5. O servidor TURN retransmite pacotes entre os pares

Custo e Implicações

TURN é caro porque toda a mídia passa pelo servidor, consumindo largura de banda. Uma chamada de vídeo HD pode usar 2-3 Mbps por participante. Para 15-25% das chamadas necessitando TURN, isso se acumula rapidamente.

TURN sobre TCP e TLS

Quando UDP é completamente bloqueado (redes corporativas restritivas), TURN pode operar sobre TCP (porta 443). TURN sobre TLS (porta 443) se disfarça como tráfego HTTPS normal, sendo quase impossível de bloquear sem quebrar toda a navegação web.

Referências