Peer-to-peer e arquitetura

O que é chat de voz peer-to-peer?

O chat de voz peer-to-peer envia o áudio direto entre dispositivos, sem servidor de mídia. Veja como funciona, o que muda na privacidade e quais são os limites.

  • Por Voxal
  • Atualizado em
  • 6 min de leitura
Duas pessoas de fones de ouvido diante de seus notebooks, com um globo ilustrado e ondas de áudio conectadas entre elas.

O chat de voz peer-to-peer (P2P) envia a sua voz diretamente para os dispositivos dos outros participantes, em vez de roteá-la por um servidor de mídia central. Um servidor ainda pode ajudar os dispositivos a se encontrarem, e um relay pode entrar em ação quando o caminho direto está bloqueado, mas não existe um servidor cuja função seja receber, misturar e redistribuir o áudio de todos.

Este artigo é a versão em linguagem simples: o que isso significa, como uma conexão é estabelecida, o que muda para a privacidade e onde estão os limites. Para os detalhes de engenharia (codecs, SFUs e vídeo em grupo), veja o guia de WebRTC, SFU e codecs.

O que significa peer-to-peer?

Peer-to-peer, muitas vezes abreviado como P2P, significa que os dispositivos participantes se comunicam diretamente entre si, em vez de enviar o áudio da voz por um servidor de mídia central.

Imagine dois amigos conversando on-line. Com uma conexão direta, o dispositivo de uma pessoa envia o áudio para o dispositivo da outra, e a outra pessoa pode responder pela sua própria conexão.

Não há um servidor de áudio central que precise receber, processar e redistribuir cada fluxo de voz.

Na prática, estabelecer uma conexão direta pode exigir infraestrutura adicional. Os dispositivos podem estar atrás de roteadores, firewalls ou NAT em nível de operadora, e por isso tecnologias como ICE e STUN ajudam a descobrir uma conexão viável. Se não for possível estabelecer um caminho direto, um relay TURN pode encaminhar o tráfego criptografado sem decodificar o áudio.

Portanto, peer-to-peer não significa que um aplicativo nunca usa servidores. Significa que o caminho da mídia pode continuar direto, com relays usados quando necessário.

Como funciona o chat de voz peer-to-peer?

Os aplicativos de voz modernos baseados em navegador costumam usar WebRTC, um conjunto de tecnologias para comunicação em tempo real.

Um processo de conexão simplificado é assim:

  1. Encontrar os participantes. O aplicativo usa um mecanismo de sinalização para trocar informações de conexão.
  2. Descobrir um caminho de rede. O ICE reúne e testa os possíveis endereços de conexão, usando STUN quando apropriado.
  3. Estabelecer a conexão. Os dispositivos negociam um caminho adequado, direto se possível ou por um relay se necessário.
  4. Enviar o áudio. O sinal do microfone é codificado, transportado como mídia em tempo real e decodificado pelo dispositivo que recebe.
  5. Manter a conversa fluida. A conexão se adapta às mudanças nas condições da rede e gerencia temporização, jitter e perda de pacotes.

O WebRTC usa transporte de mídia baseado em RTP e inclui mecanismos para comunicação segura em tempo real. O caminho exato da conexão depende das redes dos participantes e da configuração do aplicativo.

Voz peer-to-peer vs. voz baseada em servidor

As duas arquiteturas podem oferecer uma excelente comunicação por voz. Elas simplesmente fazem concessões diferentes.

Diagrama comparando o áudio enviado diretamente entre dois participantes com o áudio enviado por um servidor de mídia central.
Caminhos de áudio simplificados: uma conexão direta entre pares à esquerda e a distribuição por servidor de mídia à direita. As conexões entre pares ainda podem usar um relay TURN quando necessário.

Voz peer-to-peer

Em uma arquitetura peer-to-peer, cada participante pode enviar áudio diretamente para os outros participantes.

Entre as possíveis vantagens estão:

  • Nenhum servidor de mídia central é necessário para processar ou redistribuir a voz.
  • Um caminho de mídia direto, que pode reduzir roteamentos desnecessários.
  • Menos dependência de um serviço de áudio central.
  • Uma separação clara entre a coordenação da conexão e o transporte do áudio.

Também há contrapartidas. Cada participante pode precisar enviar áudio para vários outros, então a necessidade de banda cresce à medida que a sala aumenta. Restrições de rede também podem impedir conexões diretas e exigir um relay.

Voz baseada em servidor

Em uma arquitetura baseada em servidor, os participantes enviam o áudio para um servidor de mídia, que o distribui para os demais ouvintes.

Isso pode simplificar a distribuição para grupos e centralizar certas tarefas operacionais. Em compensação, exige infraestrutura de mídia, e o servidor passa a fazer parte do caminho de entrega do áudio.

Nenhuma das arquiteturas é melhor em todos os casos. A escolha certa depende do tamanho da sala, das condições de rede, dos requisitos de confiabilidade, das expectativas de privacidade e dos custos de operação.

Como o Voxal usa áudio peer-to-peer

O Voxal foi criado para uma comunicação leve e espontânea. Você pode criar ou entrar em uma sala de voz sem criar uma conta e usar push-to-talk (apertar para falar) ou o modo mãos livres, conforme sua preferência.

O áudio de voz no Voxal sempre permanece peer-to-peer. Ele nunca passa pelo SFU de vídeo opcional, mesmo quando uma sala usa essa infraestrutura para a mídia de câmera ou de compartilhamento de tela.

O Voxal usa sinalização para coordenar os participantes e estabelecer as conexões. O caminho da sinalização e o caminho do áudio são separados: coordenar uma conexão por meio de um servidor não significa que o servidor receba o áudio em si.

Quando não é possível estabelecer uma conexão direta, um relay TURN pode ser usado. Esse relay encaminha tráfego criptografado e não decodifica o áudio. A documentação sobre TURN e ICE descreve como o Voxal escolhe um caminho.

Dois participantes trocam mídia criptografada por meio de um relay TURN que encaminha o tráfego sem decodificar o áudio.
Um relay TURN oferece um caminho de rede alternativo para o tráfego de voz criptografado quando não é possível estabelecer uma conexão direta.

O Voxal também oferece vídeo e compartilhamento de tela, que têm requisitos de roteamento diferentes em salas maiores. Esses recursos podem usar uma Selective Forwarding Unit (SFU) opcional, conforme a preferência de roteamento de vídeo configurada. A voz continua peer-to-peer em qualquer caso.

O chat de voz peer-to-peer é mais privado?

A comunicação peer-to-peer pode reduzir o número de sistemas envolvidos na entrega da voz, mas o termo, por si só, não garante privacidade.

Uma avaliação completa de privacidade também precisa considerar a criptografia, os metadados de sinalização, os registros de conexão, o uso de relays e a forma como o aplicativo lida com os dados do microfone.

No Voxal, a voz é transportada pelos mecanismos de mídia segura do WebRTC, e um relay TURN encaminha a mídia criptografada em vez de decodificá-la. Isso é diferente de um SFU, que tecnicamente pode acessar a mídia de vídeo que recebe para encaminhá-la de forma seletiva.

A distinção importante é o que cada componente consegue acessar, e não simplesmente se existe ou não um servidor.

Quando o chat de voz peer-to-peer é útil?

A voz peer-to-peer pode ser uma boa opção para:

  • Conversas em pequenos grupos.
  • Jogos e atividades cooperativas.
  • Salas de voz temporárias.
  • Comunicação leve entre equipes.
  • Aplicativos que querem evitar o processamento centralizado de mídia de voz.

Salas maiores trazem desafios adicionais de banda e de gerenciamento de conexões. Esse é um dos motivos pelos quais voz, vídeo e compartilhamento de tela não devem ser tratados automaticamente como o mesmo problema de rede.

Experimente o Voxal

O Voxal combina áudio de voz peer-to-peer com push-to-talk, comunicação mãos livres, supressão de ruído e vídeo e compartilhamento de tela opcionais.

Se quiser testar uma sala de voz sem criar uma conta, abra o Voxal no navegador.

Para ver mais a fundo a rede por trás da comunicação em tempo real, continue com nosso guia sobre WebRTC, SFUs e codecs de voz.

Leitura relacionada: O que é push-to-talk? Um guia prático · WebRTC, SFUs e codecs de voz explicados

Leitura complementar

Voltar ao blog