WebRTC - Encontrando uma Rota

Para se conectar a outro usuário, você deve encontrar um caminho claro em torno de sua própria rede e da rede do outro usuário. Mas há chances de que a rede que você está usando tenha vários níveis de controle de acesso para evitar problemas de segurança. Existem várias tecnologias usadas para encontrar um caminho claro para outro usuário -

  • STUN (Session Traversal Utilities for NAT)
  • TURN (Traversal usando relés em torno de NAT)
  • ICE (estabelecimento de conectividade interativa)

Para entender como eles funcionam, vamos ver como é o layout de uma conexão WebRTC típica -

O primeiro passo é descobrir seu próprio endereço IP. Mas há um problema quando seu endereço IP está atrás de um roteador de rede. Para aumentar a segurança e permitir que vários usuários usem o mesmo endereço IP, o roteador oculta seu próprio endereço de rede e o substitui por outro. É uma situação comum quando você tem vários endereços IP entre você e a Web pública.

ATORDOAR

STUN ajuda a identificar cada usuário e encontrar uma boa conexão entre eles. Em primeiro lugar, faz um pedido a um servidor, habilitado com o protocolo STUN. Em seguida, o servidor envia de volta o endereço IP do cliente. O cliente agora pode se identificar com este endereço IP.

Basicamente, existem duas etapas -

Para usar este protocolo, você precisa de um servidor habilitado para STUN para se conectar. A grande coisa é que o Chrome e o Firefox fornecem servidores padrão prontos para você testar.

Para o aplicativo em um ambiente de produção, você precisará implementar seus próprios servidores STUN e TURN para seus clientes usarem. Existem vários serviços de código aberto que oferecem isso hoje.

VIRAR

Às vezes, há um firewall que não permite nenhum tráfego baseado em STUN para outro usuário. Por exemplo, em alguns NAT corporativos. É aqui que o TURN surge como um método diferente de conexão com outro usuário.

O TURN funciona adicionando um relé entre os clientes. Esta retransmissão atua como uma conexão ponto a ponto em nome dos usuários. O usuário então obtém seus dados do servidor TURN. Em seguida, o servidor TURN obterá e redirecionará todos os pacotes de dados enviados a ele para cada usuário. É por isso que é o último recurso quando não há alternativas.

Na maioria das vezes, os usuários ficarão bem sem TURN. Ao configurar um aplicativo de produção, é uma boa ideia decidir se o custo de usar um servidor TURN vale a pena ou não.

GELO

Agora podemos aprender como STUN e TURN são reunidos por meio do ICE. Ele utiliza STUN e TURN para fornecer uma conexão ponto a ponto bem-sucedida. O ICE encontra e testa em ordem de classificação um intervalo de endereços que funcionará para ambos os usuários.

Quando o ICE é iniciado, ele não sabe nada sobre a rede de cada usuário. O processo de ICE passará por um conjunto de etapas de forma incremental para descobrir como a rede de cada cliente é configurada, usando um conjunto diferente de tecnologias. A principal tarefa é encontrar informações suficientes sobre cada rede para fazer uma conexão bem-sucedida.

STUN e TURN são usados ​​para encontrar cada candidato ICE. O ICE usará o servidor STUN para encontrar um IP externo. Se a conexão falhar, ele tentará usar o servidor TURN. Quando o navegador encontra um novo candidato ICE, ele notifica o aplicativo cliente sobre isso. Em seguida, o aplicativo envia o candidato ICE através do canal de sinalização. Quando endereços suficientes são encontrados e testados, a conexão é estabelecida.