Introducción a los conceptos de WebRTC
WebRTC puede compartir selectivamente transmisiones de audio y vídeo entre aplicaciones y sitios web. No es necesario instalar otras aplicaciones ni complementos para completar la comunicación entre pares.
La tecnología detrás de WebRTC se implementa como un estándar web abierto y está disponible como una API de JavaScript normal en los principales navegadores. Para clientes (como Android e iOS), se pueden utilizar bibliotecas que proporcionen la misma funcionalidad. WebRTC es un proyecto de código abierto respaldado por Google, Apple, Microsoft, Mozilla y otras empresas. De código abierto el 1 de junio de 2011 y con el apoyo de Google, Mozilla y Opera, se incluyó en los estándares recomendados por el W3C del World Wide Web Consortium.
WebRTC incluye una serie de API y protocolos relacionados para lograr la comunicación.
Voz sobre Protocolo de Internet, una tecnología para transmitir mensajes de voz a través de Internet.
Por ejemplo, voz por Internet. O teléfono IP, teléfono de banda ancha. Una de las principales razones para utilizar la tecnología VoIP es su bajo coste.
Traducción de direcciones de red.
NAT puede proporcionar a tu dispositivo una dirección IP pública. El enrutador tiene una dirección IP pública y cada dispositivo conectado al enrutador tiene una dirección IP privada.
Cuando un dispositivo envía una solicitud, ésta será enviada desde un puerto específico a través de la IP privada a la IP pública enrutada. De esta manera, cada dispositivo no necesita tener una dirección IP pública en Internet, sino que también puede ser encontrado por otros dispositivos.
Consulte la terminología y consideraciones del traductor de direcciones de red IP (NAT).
Conexión interactiva establecida, conexión interactiva establecida.
ICE es un marco que permite a los navegadores web conectarse entre sí. En términos generales, es difícil conectar directamente los nodos A y B. Los firewalls bloquearán las conexiones, el dispositivo no tiene una dirección IP pública y el enrutamiento no permite conexiones directas a otros nodos.
ICE utiliza los servicios STUN o TURN (o ambos) para establecer conexiones.
Consulte ICE | rfc8445
Utilidad de transferencia de sesión NAT (stun), herramienta de transferencia de sesión NAT.
El protocolo STUN puede encontrar la dirección pública del cliente (nodo). El cliente envía una solicitud al servidor STUN en Internet y el servidor devuelve la dirección pública del cliente. ¿Se puede acceder al cliente después de NAT en el enrutador?
STUN proporciona al solicitante una dirección IP de acceso público y deja de participar en la conversación.
Algunos routers restringen la conexión del dispositivo a dispositivos externos. Esto significa que incluso si el servidor STUN conoce la dirección IP pública *** de la ruta, no puede establecer una conexión.
En este caso, necesitamos utilizar ruedas de conversación.
Traversal utiliza relés para evitar NAT y relés para evitar la transmisión NAT.
Algunos routers utilizan una restricción llamada "NAT simétrica". Esto significa que el enrutador solo permite que los pares previamente conectados establezcan conexiones.
STUN proporciona una forma para que las aplicaciones (terminales, nodos) atraviesen NAT. STUN permite a los clientes obtener una dirección de transporte (una IP y un puerto) para obtener datos de otros nodos.
Sin embargo, la dirección obtenida a través de STUN puede no ser utilizada por todos los nodos. La disponibilidad de estas direcciones depende de la topología de la red. Por lo tanto, STUN por sí solo no puede proporcionar una solución completa para atravesar NAT.
El protocolo TURN permite que dos hosts en un entorno NAT se comuniquen a través de relés. Los clientes pueden asignar recursos en el servidor TURN y comunicarse con otros pares.
El cliente asocia la dirección del servidor TURN como retransmisión.
El cliente envía un mensaje al servicio TURN, y el servicio TURN utiliza la dirección del servidor de retransmisión como dirección de origen para transmitir y reenviar el mensaje a otros clientes.
El proceso de atravesar NAT es como "hacer un agujero". Algunas personas también llaman a los servidores TURN "servidores perforadores".
En este caso, el servidor TURN requiere mucho ancho de banda. Por lo tanto, ICE dará prioridad a la comunicación directa y utilizará TURN cuando la comunicación directa no sea posible.
Ver giro rfc8656.
Protocolo de descripción de sesión.
Protocolo que describe el contenido de una conexión multimedia. Como resolución, formato, codificación, algoritmo de cifrado, etc.
De hecho, SDP no es un protocolo real. También es un formato de datos utilizado para describir conexiones entre dispositivos y la transmisión de multimedia.
Consulte SDP: Protocolo de descripción de sesión | RFC 8866.
Algunas abreviaturas
Para obtener más información, consulte Introducción a los conceptos de WebRTC.