Protocolos UDP, TCP, RTP, RTCP en WebRTC del sistema de transmisión en vivo de audio y video

1.UDP/TCP

  • Si le pidieran que desarrollara usted mismo un sistema de transmisión en vivo interactivo en tiempo real, al elegir un protocolo de transmisión de red, ¿elegiría utilizar el protocolo UDP o el protocolo TCP?

  • ¿Qué sucede si se utiliza TCP? En condiciones extremas de la red, TCP reenviará información repetidamente para garantizar la confiabilidad de la transmisión.

  • En el protocolo TCP, para evitar demasiadas retransmisiones, el tiempo de espera del temporizador aumentará exponencialmente en 2. Es decir, suponiendo que el tiempo de espera establecido por primera vez es 1 segundo, entonces el tiempo de espera establecido para la segunda vez será de 2 segundos, la tercera vez será de 4 segundos... la séptima vez será de 64 segundos. Si aún se agota el tiempo de espera después de la séptima vez, la conexión TCP se desconectará. Por un retraso tan largo, el sistema de transmisión interactiva en vivo en tiempo real es simplemente inaceptable.

  • Por lo tanto, al construir un sistema de transmisión en vivo en línea, debe elegir el protocolo UDP.

2. Protocolo RTP

  • Cuando el sistema de transmisión en vivo interactivo en tiempo real transmite flujos de datos de audio y video, no entregamos directamente los flujos de datos de audio y video a UDP para su transmisión, sino que primero agregamos un encabezado RTP a los datos de audio y video, y luego entréguelo a UDP para su transmisión.

  • Debido a que la cantidad de datos de video es demasiado grande cuando se transmite, es posible que se necesiten docenas de paquetes para transmitir un cuadro. Cuando los datos se transmiten al extremo receptor, estas docenas de paquetes deben ensamblarse para restaurarlos a una imagen completa.

  • El protocolo RTP existe para que el orden no se estropee después de que el extremo del acoplamiento ensambla los datos. Piénselo, si el orden se estropea durante el ensamblaje, ¿la imagen ensamblada seguirá siendo la imagen transmitida?

  • El protocolo RTP es muy simple, aquí hay una breve introducción a RTP.

  • número de secuencia: número de secuencia, utilizado para registrar la secuencia de paquetes

  • marca de tiempo: marca de tiempo. Las marcas de tiempo de diferentes fragmentos del mismo cuadro son las mismas. Las marcas de tiempo de diferentes fotogramas son diferentes.

  • PT: Tipo de carga útil, el tipo de datos de carga útil. El valor PT del flujo de audio es diferente del valor PT del video, a través de él se puede saber qué tipo de datos almacena este paquete.

  • SSRC: La fuente de flujos de medios compartidos. Es globalmente única. Diferentes SSRC identifican diferentes fuentes compartidas.

  • CC: Número de CSRC

  • CSRC: fuente compartida, generalmente utilizada para mezclar o mezclar pantalla

  • X: marca de encabezado de extensión RTP. Si esta posición es 1, significa que este paquete RTP también tiene un encabezado de extensión.

  • M: representa el bit MARCA, utilizado para definir el límite del cuadro de video

  • P: bit de relleno

    3. Caso RTP

  • Si recibe un conjunto de los siguientes datos de audio y video en la red

  • Supongamos que PT=80 son datos de vídeo y PT=100 son datos de audio.

  • Según las reglas anteriores, ¿es fácil reunir los datos?

  • {V=2,P=0,X=0,CC=0,M=0,PT:100,seq:14,ts:123456789,ssrc=888},
    {V=2,P=0,X=0,CC=0,M=0,PT:80,seq:14,ts:123456789,ssrc=2345},
    {V=2,P=0,X=0,CC=0,M=0,PT:100,seq:15,ts:123456789,ssrc=888},
    {V=2,P=0,X=0,CC=0,M=0,PT:80,seq:15,ts:123456789,ssrc=2345},
    {V=2,P=0,X=0,CC=0,M=0,PT:100,seq:16,ts:123456789,ssrc=888},
    {V=2,P=0,X=0,CC=0,M=0,PT:80,seq:16,ts:123456789,ssrc=2345}

    4. Protocolo RTCP

  • Cuando se utilizan paquetes RTP para transmitir datos, inevitablemente se producirán problemas como pérdida de paquetes, desorden y fluctuación.

  • Por ejemplo: alta tasa de pérdida de paquetes causada por problemas de calidad de la línea de red, pérdida de paquetes causada por la carga de datos transmitidos que excede el ancho de banda, etc.

  • Antes de abordar estos problemas, WebRTC primero debe informar a cada extremo cuál es la calidad de su propia red, que es la función de RTCP.

  • RTCP tiene dos mensajes más importantes : RR(Reciever Report)ySR(Sender Report)

  • Mediante el intercambio de estos dos mensajes, cada extremo conoce la calidad de su propia red.

  • El protocolo del mensaje es el que se muestra a continuación, con el significado de los campos:

  • V=2: hace referencia a la versión del mensaje.

  • P: indica el bit de relleno, si este bit es 1, habrá bytes de relleno al final del mensaje RTCP.

  • RC: el nombre completo es Report Count, que se refiere a la cantidad de bloques de mensajes recibidos en el mensaje RTCP.

  • PT=200: Tipo de carga útil, es decir, el valor de SR es 200

  • Encabezado: parte del mismo se utiliza para identificar el tipo de mensaje, como SR o RR.

  • Información del remitente: parte de ella se utiliza para indicar cuántos paquetes ha enviado el remitente.

  • Bloque de informe: Indica parcialmente que cuando el remitente actúa como receptor, recibe paquetes de cada SSRC.

Supongo que te gusta

Origin blog.csdn.net/xiehuanbin/article/details/133273094
Recomendado
Clasificación