WebRTC - Protocolos

A comunicação de dados em tempo real significa uma velocidade de conexão rápida entre os dispositivos de ambos os usuários. Uma conexão comum pega um quadro de vídeo ou áudio e o transfere para o dispositivo de outro usuário entre 30 e 60 vezes por segundo para obter uma boa qualidade. Portanto, é importante entender que enviar o último quadro de dados é mais crucial do que garantir que cada quadro chegue ao outro lado. É por isso que os aplicativos WebRTC podem perder certos frames para manter uma boa velocidade de conexão.

Você pode ver esse efeito em quase todos os aplicativos de reprodução de vídeo hoje em dia. Os videogames e os aplicativos de streaming de vídeo podem perder alguns quadros do vídeo porque nossa mente tenta preencher esses espaços, pois sempre visualizamos o que estamos assistindo. Se quisermos que nosso aplicativo reproduza 50 quadros em um segundo e perdermos os quadros 15, 25 e 38, na maioria das vezes, o usuário nem perceberá. Portanto, para aplicativos de streaming de vídeo, há um conjunto diferente de requisitos -

É por isso que os aplicativos WebRTC usam UDP (User Datagram Protocol) como protocolo de transporte. A maioria das aplicações web hoje são construídas com o uso do TCP (Transmission Control Protocol) porque ele garante que -

  • quaisquer dados enviados serão marcados como recebidos

  • quaisquer dados que não chegarem ao outro lado serão reenviados e o envio de outros dados será temporariamente encerrado

  • quaisquer dados serão únicos, sem duplicatas no outro lado

Você pode ver porque o TCP é uma ótima escolha para a maioria dos aplicativos da web hoje. Se você está solicitando uma página HTML, faz sentido colocar todos os dados na ordem correta. Mas essa tecnologia não se aplica a todos os casos de uso. Se tomarmos, por exemplo, um jogo multiplayer, o usuário será capaz de ver apenas o que aconteceu nos últimos segundos e nada mais, o que pode levar a um grande gargalo quando os dados estão faltando -

A conexão WebRTC de áudio e vídeo não é a mais confiável, mas a mais rápida entre os dispositivos de dois usuários. Portanto, podemos perder quadros, o que significa que o UDP é a melhor escolha para aplicativos de streaming de áudio e vídeo.

O UDP foi construído para ser uma camada de transporte menos confiável. Você não pode ter certeza em -

  • a ordem dos seus dados
  • o status de entrega de seus dados
  • o estado de cada pacote de dados

Hoje em dia, o WebRTC envia pacotes de mídia da maneira mais rápida possível. WebRTC pode ser um tópico complexo quando se trata de grandes redes corporativas. Seus firewalls podem bloquear o tráfego UDP entre eles. Muito trabalho foi feito para fazer o UDP funcionar adequadamente para um público amplo.

A maior parte do tráfego da Internet hoje é baseada em TCP e UDP, não apenas em páginas da web. Você pode encontrá-los em tablets, dispositivos móveis, Smart TVs e muito mais. Portanto, é importante entender como essas tecnologias funcionam.