
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) | |
|---|---|---|
| Caminho | De navegador a navegador | De navegador a relé e a navegador |
| Atraso | O menor | Um pouco maior |
| Criptografada | Sim | Sim |
| Funciona em redes rígidas | Nem sempre | Quase sempre |
| Uso típico | Redes domésticas e móveis | Escritó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
- 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.
- 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.
- Desative a VPN. Uma VPN pode interferir nas rotas diretas. Teste a chamada sem ela e depois com ela.
- Atualize o navegador. Use uma versão atual do Chrome, Edge, Firefox ou Safari.
- Feche outros tráfegos pesados. Downloads grandes na mesma conexão podem sufocar uma chamada.
- 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.
Como funciona o chat de vídeo ponto a ponto sem guardar sua chamada em um servidor
Chamadas de vídeo ponto a ponto explicadas: como funcionam e quando usar
Compartilhamento de arquivos ponto a ponto no navegador: rápido, privado e legal
WebRTC: a tecnologia que levou as chamadas para dentro do navegador