Como funciona o WebRTC: compartilhamento de tela ponto a ponto
O que é P2P, STUN e TURN, por que o vídeo é criptografado e o que o servidor enxerga (e o que não enxerga).
WebRTC é a tecnologia que permite que navegadores troquem vídeo, áudio e dados diretamente, sem que o conteúdo passe por um servidor no meio. É a base de chamadas de vídeo no navegador e do compartilhamento de tela do Olha!. Entender as peças ajuda a saber por que às vezes funciona de primeira e às vezes precisa de um empurrão.
O problema: dois navegadores não se encontram sozinhos
Para dois computadores trocarem dados diretamente, cada um precisa saber o endereço do outro. Só que quase todo mundo está atrás de um roteador, com endereço privado, e firewalls que bloqueiam conexões que chegam de fora. Descobrir "como alcançar" o outro lado é a parte difícil do P2P.
Sinalização: o servidor apresenta as pessoas
Antes da conexão direta, os dois navegadores precisam combinar detalhes: que formatos de vídeo entendem, que endereços possíveis têm. Essa conversa inicial, chamada de sinalização, passa por um servidor, no caso o do Olha!. Ele leva mensagens pequenas de texto de um lado ao outro, como um apresentador que junta duas pessoas e se retira. Depois disso, o vídeo vai direto.
STUN: descobrir o próprio endereço público
Um servidor STUN responde a uma pergunta simples: "qual é o meu endereço visto de fora?". Com essa resposta, cada navegador consegue montar candidatos de conexão e tentar furar o NAT do roteador. Na maioria das redes domésticas isso basta e a conexão fica totalmente direta.
TURN: o plano B
Em redes mais fechadas (algumas redes de empresa, de faculdade ou de operadoras móveis), a conexão direta é bloqueada. Aí entra o TURN: um relay que fica no meio e repassa os pacotes. O Olha! usa o relay da Cloudflare para esse caso. Ele só encaminha dados já criptografados, de modo que não consegue ver o conteúdo, mas custa mais atraso e consome a banda do relay. Por isso ele só entra quando não há outro jeito.
Criptografia obrigatória
O WebRTC não permite transmitir sem criptografia. A chave é negociada diretamente entre os dois navegadores (DTLS) e o vídeo e o áudio são protegidos com SRTP. Um servidor no meio, incluindo o de sinalização e o relay, só vê tráfego embaralhado.
Por que o upload importa no modelo P2P simples
Num modelo em malha, quem mostra a tela envia uma cópia separada para cada espectador. Isso mantém tudo direto, privado e sem custo de servidor de vídeo, mas faz o consumo crescer com o número de pessoas. Existem arquiteturas com um servidor que replica o vídeo (SFU), que escalam melhor para plateias grandes ao custo de ter que processar o tráfego. Para grupos pequenos de amigos e colegas, a malha é mais simples e mais privada. A conta está em quantas pessoas podem assistir.
O que o servidor do Olha! vê e não vê
- Vê: quem entrou numa sala, mensagens de chat, mensagens de sinalização e dados técnicos de conexão para diagnóstico.
- Não vê: a imagem da tela nem o áudio, que seguem direto entre navegadores ou criptografados pelo relay.
Em resumo: o servidor apresenta, o STUN descobre o caminho, o TURN socorre quando o caminho está fechado, e a criptografia protege tudo em qualquer cenário.
Criar uma sala no Olha!