O WebRTC é mesmo protocolo peer-to-peer?

O WebRTC é um protocolo de comunicação interpares. Pergunto-me, Será Que é mesmo peer-peer se necessita de um servidor web? Por exemplo, para criar uma "sala" é preciso criá-la em apprtc.appspot.com ou https://hello.firefox.com/something.

Author: アレックス, 2015-04-02

2 answers

É um verdadeiro protocolo P2P na medida em que pode estabelecer uma comunicação directa sem servidor entre duas partes arbitrárias na internet. Uma vez estabelecida a comunicação, não é necessário nenhum terceiro partido.

Isto vem com algumas ressalvas.
  1. Os dois pares primeiro precisam de se encontrar. Este passo de sinalização é intencionalmente omitido da especificação WebRTC, uma vez que o protocolo WebRTC não é específico para navegadores e pode ser usado por qualquer número de dispositivos diferentes em circunstâncias diferentes. Cada grupo de pares terá seu próprio contexto e exigirá diferentes métodos de descoberta. Você provavelmente também vai querer um intermediário que controla o fluxo de informação de acordo com alguma regra de Negócio.

    Você poderia usar algum outro protocolo P2P para estabelecer esta fase inicial de sinalização; por exemplo, você poderia apenas transmitir pacotes UDP na sua sub-rede local se o outro ponto estiver na mesma sub-rede. Você também poderia usar pombos-correio para a sua sinalização, embora isso seja provavelmente impraticável. A maneira mais prática para isso através da internet geral dentro de um navegador é usar um corretor de mensagens central de algum tipo ou outro.

  2. Nem sempre é possível estabelecer conexões diretas entre dois pares arbitrários. Às vezes, isso é dificultado por realidades de topologia de rede, por exemplo firewalls não permissivos ou roteadores NAT. Neste caso, é fisicamente impossível para os dois pares se comunicarem em um A maneira P2P e um relé de terceiros são necessários; isto está incluído na especificação WebRTC na forma de um servidor de TURN.

Então, WebRTC é um protocolo P2P completo no coração, mas precisa de trabalhar com realidades de rede simples que às vezes, ou talvez muitas vezes, requer a mão de ajuda de um servidor.

 13
Author: deceze, 2015-04-03 15:18:55

De acordo com as suas etiquetas (Chrome & FF), esta questão está focada nos navegadores.

Se quiser iniciar uma chamada com WebRTC:

  • terá de baixar a sua página web (a aplicação WebRTC) de um servidor (pode ser opcional se já tiver descarregado no seu computador).
  • Ambos os navegadores têm de trocar algumas informações (Codecs, candidatos ao ICE...), também conhecido como SDP. Este passo é obrigatório e você deve usar um servidor. Mas você pode envolver qualquer outras tecnologias (comentário da Xaqron). Se os navegadores estão por trás de um NAT, precisam de um servidor de atordoamento para recuperar os seus endereços IP públicos.
  • Se um dos dois navegadores estiver por trás de um NAT restritivo ou de uma Firewall, você tem que usar um relé de mídia também conhecido como TURN server.

Para concluir, se você quiser trocar mídia ou dados com WebRTC no P2P, você deve usar alguns servidores. Normalmente a mídia será troca em P2P, no entanto, às vezes a mídia será transmitida por uma volta servidor se um ou ambos navegadores estão por trás de um NAT restritivo, uma firewall....

 2
Author: Antonin M., 2015-04-03 15:06:35