Ir para o conteúdo

STUN, TURN e ICE em português claro: por que algumas chamadas conectam direto

Dois dispositivos atrás de roteadores se encontrando por meio de servidores auxiliares

Duas pessoas clicam em um link e, alguns segundos depois, se veem e se ouvem. Por trás desse momento simples, os navegadores tiveram que resolver um quebra-cabeça difícil: como alcançar um computador que está atrás de um roteador doméstico e não tem endereço público? Três siglas descrevem a solução: STUN, TURN e ICE. Este guia as explica em português claro e diz o que fazer quando uma chamada se recusa a conectar.

O problema: roteadores escondem seu dispositivo

Seu notebook tem um endereço privado que só faz sentido dentro da sua rede doméstica. O roteador compartilha um endereço público entre todos os seus dispositivos e traduz o tráfego na entrada e na saída. Isso se chama tradução de endereços de rede (NAT). É por isso que muitos dispositivos conseguem dividir uma conexão de internet, e também por isso que um estranho na internet não consegue simplesmente abrir uma conexão com o seu notebook.

Para uma chamada direta (ponto a ponto), os dois lados estão atrás de um roteador assim. Cada navegador precisa descobrir como aparece do lado de fora e, depois, os dois precisam abrir um caminho pelos seus roteadores no mesmo instante.

STUN: "Como eu apareço para a internet?"

Um servidor STUN é um ajudante muito pequeno na internet pública. Seu navegador envia a ele uma solicitação curta, e o servidor responde: "Eu vejo você neste endereço público e nesta porta." É só isso que ele faz. Não transporta sua chamada e nunca vê seu vídeo ou sua voz. Com essa informação, seu navegador pode dizer ao outro lado como alcançá-lo.

ICE: testar todas as rotas e escolher a melhor

O ICE é o procedimento que amarra tudo. Cada navegador monta uma lista de rotas possíveis, chamadas candidatos:

  • Candidatos locais: o endereço do próprio dispositivo, que funciona quando as duas pessoas estão na mesma rede.
  • Candidatos STUN: o endereço público descoberto por um servidor STUN, que funciona pela maioria dos roteadores domésticos.
  • Candidatos de relé: um endereço em um servidor TURN, que funciona quase em qualquer lugar, mas é um desvio.

Os dois navegadores trocam as listas, testam as combinações e escolhem o melhor caminho que funcione, preferindo um direto. Tudo isso acontece em um ou dois segundos, enquanto você vê "conectando".

TURN: o relé quando um caminho direto é impossível

Algumas redes não podem ser atravessadas diretamente. Certos roteadores (muitas vezes descritos como NAT simétrico), firewalls corporativos rígidos e redes que bloqueiam o tipo de tráfego usado pelas chamadas impedem uma conexão direta. Nesse caso a chamada passa por um servidor TURN, que age como uma estação de revezamento: recebe pacotes de um lado e os encaminha ao outro.

Uma chamada com relé faz um caminho um pouco mais longo, então pode acrescentar um pequeno atraso. Para quem está nela, continua sendo uma chamada normal, e a conexão continua criptografada.

Uma chamada com relé continua privada?

Sim. O áudio, o vídeo e os dados são criptografados com chaves que só os dois navegadores combinaram, então o relé encaminha pacotes que não consegue ler. Um relé operado corretamente repassa o tráfego em tempo real e não o guarda. A diferença que você pode notar não é a privacidade, mas o custo: o relé consome muita banda, então os provedores o usam como reserva e não como padrão.

Direta ou com relé: o que esperar

Direta (STUN)Com relé (TURN)
CaminhoDe navegador a navegadorDe navegador a relé e a navegador
AtrasoO menorUm pouco maior
CriptografadaSimSim
Funciona em redes rígidasNem sempreQuase sempre
Uso típicoRedes domésticas e móveisEscritórios, escolas, hotéis, algumas operadoras móveis
  • Caminho
    Direta (STUN)
    De navegador a navegador
    Com relé (TURN)
    De navegador a relé e a navegador
  • Atraso
    Direta (STUN)
    O menor
    Com relé (TURN)
    Um pouco maior
  • Criptografada
    Direta (STUN)
    Sim
    Com relé (TURN)
    Sim
  • Funciona em redes rígidas
    Direta (STUN)
    Nem sempre
    Com relé (TURN)
    Quase sempre
  • Uso típico
    Direta (STUN)
    Redes domésticas e móveis
    Com relé (TURN)
    Escritórios, escolas, hotéis, algumas operadoras móveis

A Globfone tenta primeiro um caminho direto e recorre automaticamente a um relé. No compartilhamento de arquivos, a tela mostra se a rota atual é direta ou com relé.

Se a sua chamada não conectar

  1. Verifique as permissões. O navegador precisa ter permissão para usar a câmera e o microfone. Procure um ícone de câmera bloqueada na barra de endereço.
  2. Troque de rede. Passe do Wi-Fi do escritório para os dados móveis, ou o contrário. Muitos problemas de "não conecta" vêm de uma rede rígida.
  3. Desative a VPN. Uma VPN pode interferir nas rotas diretas. Teste a chamada sem ela e depois com ela.
  4. Atualize o navegador. Use uma versão atual do Chrome, Edge, Firefox ou Safari.
  5. Feche outros tráfegos pesados. Downloads grandes na mesma conexão podem sufocar uma chamada.
  6. Tente de novo com uma sala nova. Crie uma sala nova e compartilhe o novo link, para que os dois lados comecem uma tentativa de conexão limpa.

Para os curiosos: veja a rota você mesmo

Os navegadores baseados em Chromium incluem uma página chamada webrtc-internals que lista os candidatos testados e o par vencedor. Um par cujo tipo é "relay" significa que a chamada passou por um servidor TURN. É um jeito prático de ver a ideia deste artigo funcionando na sua própria chamada.

Experimente

Inicie uma sala no chat P2P da Globfone e veja com que rapidez dois navegadores se conectam. Para saber o que acontece com seus dados enquanto isso, leia como o chat de vídeo P2P funciona sem guardar sua chamada, ou volte ao básico com nosso guia para iniciantes sobre chamadas ponto a ponto e VoIP explicado.

Mais serviços gratuitos do Globfone