Introducción al protocolo RTP

El protocolo de transporte en tiempo real RTP (protocolo de transporte en tiempo real) proporciona transporte de extremo a extremo para aplicaciones en tiempo real, pero no ofrece ninguna garantía de calidad del servicio . Los bloques de datos multimedia (audio / video) que se enviarán se comprimen y codifican, y luego se envían a la encapsulación RTP en paquetes RTP-> Los paquetes RTP se cargan en el datagrama de usuario UDP de la capa de transporte-> hasta la capa IP-> Luego entregue a la capa de enlace de datos para su procesamiento. El proceso de recepción es opuesto al proceso de envío, el proceso es el siguiente:
Inserte la descripción de la imagen aquí
De hecho, RTP es solo un marco de protocolo. Solo contiene algunas funciones comunes de las aplicaciones en tiempo real. RTP no realiza ningún procesamiento en bloques de datos multimedia, sino que solo proporciona información adicional a la capa de aplicación para que la capa de la aplicación sepa cómo manejarla.. El protocolo RTP puede clasificarse como la capa de aplicación, porque desde el punto de vista del desarrollador, en los extremos de envío y recepción de la aplicación, el desarrollador debe escribir el código del programa que encapsula el paquete y obtiene el bloque de datos usando RTP. RTP también se puede considerar como un protocolo de capa de transporte, porque RTP encapsula los bloques de datos de las aplicaciones multimedia y proporciona servicios (marcas de tiempo y números de secuencia) a las aplicaciones multimedia, por lo que RTP también se puede considerar como una capa de transporte por encima de UDP Protocolo de subcapa.
RTP proporciona transmisión de extremo a extremo en tiempo real, y los paquetes RTP solo contienen datos RTP. El control lo proporciona otro protocolo RTCP compatible. El puerto utilizado por RTP es el puerto del sistema (es decir, 1024 ~ 65535), a excepción de un número de puerto UDP par no utilizado, y RTCP en la misma sesión usa el siguiente número de puerto UDP impar, los números de puerto 5004 y 5005 respectivamente Los números de puerto predeterminados de RTP y RTCP. Por lo tanto, en muchos lugares puede ver un par de puertos y direcciones de grupos de multidifusión .
En el encabezado del paquete RTP, se requieren los primeros 12 bytes, y la parte posterior a 12 bytes es opcional. A continuación se presenta brevemente el significado de cada campo:

  • Tipo de carga útil (7 bits): este campo indica el formato de los datos RTP posteriores. La capa de aplicación que recibe el paquete RTP procesa de acuerdo con el tipo indicado en este campo. Para carga de video: H.261 (31), MPEG1 (32), MPEG1 (33), etc.
  • Número de secuencia (16 bits): agregue 1 al número de secuencia de cada paquete RTP enviado. El número de secuencia inicial al comienzo de una sesión RTP se selecciona aleatoriamente. El número de secuencia permite al extremo receptor encontrar los paquetes perdidos y, al mismo tiempo, puede reorganizar los paquetes RTP fuera de secuencia en orden .
  • Marca de tiempo (32 bits): refleja el tiempo de muestreo del primer byte de datos en el paquete RTP. El valor inicial de la marca de tiempo al comienzo de una sesión también se selecciona aleatoriamente. Incluso cuando no hay señal para enviar, el valor de la marca de tiempo debe aumentar continuamente con el tiempo. Las marcas de tiempo se pueden usar para eliminar el jitter y sincronizar audio y video.
  • Identificador de origen de sincronización (32 bits): el identificador de origen de sincronización SSRC se utiliza para marcar el origen del flujo RTP. También se genera aleatoriamente al comienzo del flujo RTP. Debido a que RTP utiliza la transmisión UDP, se pueden multiplexar múltiples flujos RTP en un datagrama de usuario UDP. SSRC puede permitir que el extremo receptor envíe el flujo RTP recibido a sus respectivos puntos finales.
  • Identificador de origen participante: se utiliza para marcar transmisiones RTP que se originan en diferentes ubicaciones. La estación de mezcla mezcla múltiples flujos RTP destinados a la misma ubicación en un flujo, y luego separa los diferentes flujos RTP de acuerdo con el valor de CSRC en la estación de destino.
  • Número de fuentes participantes (4 bits): número de identificadores de fuente participantes
  • Versión (2 bits): actualmente usando la versión 2
  • Relleno P (1 bit): en algunos casos especiales, el bloque de datos de la aplicación debe cifrarse, lo que a menudo requiere que cada bloque de datos tenga una cierta longitud. Si no se cumple este requisito de longitud, se requiere relleno. Establecer en 1 indica que los datos del paquete RTP tienen varios bytes de relleno, y el último byte en la sección de datos se usa para indicar el número de bytes llenos.
  • Extensión X (1 bit): X configurado en 1 significa que hay un encabezado de extensión después de este encabezado RTP. El encabezado de expansión rara vez se usa.
  • Marca M (1 bit): M configurado en 1 indica que este paquete RTP tiene un significado especial. Por ejemplo, cuando se transmite una transmisión de video, se usa para indicar el inicio de cada cuadro.
    Como se mencionó anteriormente, el protocolo RTP solo proporciona transmisión en tiempo real y no garantiza la calidad del servicio. La calidad del servicio es proporcionada por el Protocolo de control de transporte en tiempo real (Protocolo de control RTP). Las funciones principales del protocolo RTCP son: monitoreo y retroalimentación de la calidad del servicio, sincronización entre medios y el signo de los miembros de multidifusión. Los paquetes RTCP también se transmiten mediante UDP, pero como los paquetes RTCP son muy cortos, se pueden encapsular múltiples paquetes RTCP en un datagrama de usuario UDP. Los paquetes RTCP se transmiten periódicamente en Internet.
    RTCP utiliza cinco tipos de paquetes:
  • Fin de paquete BYE (203): significa cerrar un flujo de datos
  • APLICACIÓN de agrupación específica de la aplicación (204): defina un nuevo tipo de agrupación para la aplicación.
  • El extremo receptor informa el paquete RR (201): utilizado para permitir que el extremo receptor informe periódicamente a todos los puntos de manera multidifusión. Cada vez que el extremo receptor recibe un flujo RTP, genera un paquete RR de informe del extremo receptor, que incluye: SSRC del flujo RTP recibido, la tasa de pérdida de paquetes, el número de secuencia del último paquete RTP en el flujo RTP y el intervalo de tiempo de llegada del paquete. Jitter, etc.
Publicado 35 artículos originales · Me gusta1 · Visitas 1870

Supongo que te gusta

Origin blog.csdn.net/lzj_linux188/article/details/104966941
Recomendado
Clasificación