Protocolos RTP/RTCP

Julio 2017

Documento escrito por Nico VanHaute, Julien Barascud y Jean-Roland Conca

Introducción: ¿Qué significa RTP y RTCP?

La proliferación de equipos, sumada a la disponibilidad de hardware de audio/video económicos y la posibilidad de contar con velocidades de conexión cada vez más rápidas, ha aumentado el interés en el uso de Internet para enviar audio y video, tipos de datos que tradicionalmente se reservaban para redes especializadas. Durante los últimos años, las audioconferencias y las videoconferencias se han convertido en una práctica común. Sin embargo, la misma naturaleza de Internet indica que esta red no está preparada para la transmisión de datos en tiempo real y, por consiguiente, la calidad del audio transmitido por Internet generalmente tiene una calidad mediocre. Esta teoría específicamente trata el análisis y la solución de estos problemas para permitirle a una audioconferencia o aplicación de teléfono por Internet que cambie su funcionamiento para mantener una calidad auditiva aceptable, incluso en los casos en los que la red esté algo congestionada. Estas soluciones, que toman la forma de mecanismos de control, se han implementado y evaluado en la audioconferencia y en el software de teléfono por Internet Free Phone que hemos desarrollado. Un estudio sobre el efecto que estos equipos podrían tener en Internet, desarrollado para integrar la disciplina de servicio Fair Queuing (cola equitativa), ha demostrado que si bien estos mecanismos podrían ser todavía necesarios, funcionarían mucho mejor en este tipo de red.

RTP (Protocolo en tiempo real)

El objetivo de RTP es brindar un medio uniforme de transmisión sobre IP de datos que estén sujetos a las limitaciones de tiempo real (audio, video, etc.). La función principal de RTP es implementar los números de secuencia de paquetes IP para rearmar la información de voz o de video, incluso cuando la red subyacente cambie el orden de los paquetes.

De manera más general, RTP permite:

  • identificar el tipo de información transmitida;
  • agregarle marcadores temporales y números de secuencia a la información transmitida;
  • controlar la llegada de los paquetes a destino.
Además, los paquetes de difusión múltiple pueden utilizar RTP para enrutar conversaciones a múltiples destinatarios.

RTCP (Protocolo de control en Real-Time)

El protocolo RTCP se basa en transmisiones periódicas de paquetes de control que realizan todos los participantes de la sesión.

Es un protocolo de control para el flujo RTP, que permite transmitir información básica sobre los participantes de la sesión y la calidad de servicio.

Uso previsto de RTP y RTCP

RTP permite la administración de flujos multimedia (voz, video) sobre IP. RTP funciona sobre el protocolo UDP. El encabezado RTP lleva información de sincronización y numeración. La codificación de datos dependerá del tipo de compresión. El documento RFCxxxx especifica el protocolo RTP. Sin embargo, la adaptación de un método de compresión a RTP se describe en un documento RFC (petición de comentarios) específico, por ejemplo H261 en RTP se describe en RFCxxxx. Se utiliza un canal RTP por tipo de flujo: uno para audio, uno para video. El campo xxx se utiliza para la sincronización. RTP ofrece un servicio extremo a extremo. Agrega un encabezado que brinda información de tiempo, necesaria para la sincronización de flujo en tiempo real de sonido y video. RTP (Protocolo en tiempo real) y RTCP (Protocolo de control en Real-Time) permiten, respectivamente, transportar y controlar bloques de datos que cuentan con propiedades de tiempo real. Los protocolos RTP y RTCP se encuentran en un nivel de aplicación y utilizan los protocolos de transporte subyacentes TCP o UDP. Pero el uso de RTP/RTCP generalmente se lleva a cabo por encima de UDP. RTP y RTCP utilizan tanto el método de difusión individual (punto a punto) como el método de difusión múltiple (multipunto). Utilizan puertos separados de un par de puertos. RTP utiliza el puerto par y RTCP el puerto impar inmediatamente superior.

Formato de los encabezados y su contenido

El encabezado RTP lleva la siguiente información:

<--------------------------- 32 bits --------------------------->

V=2 P X CC M Número de secuencia
Marca de tiempo
Identificación de la fuente de sincronización (SSRC)
Identificación de la fuente de contribución (CSRC)

A continuación se indican los significados de los diferentes campos de encabezados:

  • campo de versión V: 2 bits de longitud. Indica la versión del protocolo (V=2);
  • campo de relleno P: 1 bit. Si P es igual a 1, el paquete contiene bytes adicionales para rellenar y finalizar el último paquete;
  • campo de extensión X: 1 bit. Si X = 1, el encabezado está seguido de un paquete de extensión;
  • campo de conteo CRSC CC: 4 bits. Contiene el número de CRSC que le sigue al encabezado;
  • campo de marcador M: 1 bit. Un perfil de aplicación define su interpretación;
  • campo de tipo de carga útil PT: 7 bits. Este campo identifica el tipo de carga útil (audio, video, imagen, texto, html, etc.);
  • campo Número de secuencia: 16 bits. Su valor inicial es aleatorio y aumenta de a 1 por cada paquete enviado. Puede utilizarse para detectar paquetes perdidos;
  • campo Marca de tiempo: 32 bits. Refleja el instante de muestreo del primer byte del paquete RTP. Este instante debe obtenerse a partir de un reloj que aumenta de manera monótona y lineal para permitir la sincronización y el cálculo de la variación de retardo en el destino;
  • campo SSRC: 32 bits. Identifica de manera única la fuente. La aplicación elige su valor de manera aleatoria. SSRC identifica la fuente de sincronización (simplemente llamada "la fuente"). Este identificador se elige de manera aleatoria con la intención de que sea único entre todas las fuentes de la misma sesión. La lista de CSRC identifica las fuentes (SSRC) que han ayudado a obtener los datos contenidos en el paquete que contiene estos identificadores. La cantidad de identificadores se proporciona en el campo CC;
  • campo CSRC: 32 bits. Identifica las fuentes contribuyentes.

Encabezados RTCP

El objetivo de RTCP es brindar diferentes tipos de información y una devolución con respecto a la calidad de recepción.

El encabezado RTCP lleva la siguiente información:

  • campo Versión (2 bits);
  • campo Relleno (1 bit): indica que existe relleno, cuyo tamaño se indica en el último byte;
  • campo Conteo de informes de recepción (5 bits): cantidad de informes en el paquete;
  • campo Tipo de paquete (8 bits): 200 para SR;
  • campo Longitud (16 bits): longitud del paquete en palabras de 32 bits;
  • campo SSRC (32 bits): identificación de la fuente remitente específica;
  • campo Marca de tiempo NTP (64 bits);
  • campo Marca de tiempo RTP (32 bits);
  • campo Conteo de paquetes del emisor (32 bits);
  • campo Bytes del paquete del emisor (32 bits): estadísticas;
  • campo SSRC-n (32 bits): número de la fuente cuyo flujo se analiza;
  • campo Fracción perdida (8 bits);
  • campo Número acumulativo de paquetes perdidos (24 bits);
  • campo Extensión del número de secuencia más alto recibido (32 bits);
  • campo Intervalo de la variación de retardo (jitter) (32 bits). Se trata de una estimación del intervalo de tiempo para un paquete de datos RTP que se mide con la marca de tiempo y es un número entero. En realidad éste es el tiempo de tránsito relativo entre los dos paquetes de datos.
    La fórmula para calcularlo es: J=J+(|D(i-1,i)|-J)/16
    El intervalo de la variación de retardo (jitter) es calculado para cada paquete de datos recibido por la fuente SSRC_n
    i -->Primer paquete
    i-1 --> Paquete anterior
    D --> Diferencia
    J --> Segundo paquete;
  • campo Marca de tiempo del último informe de envío (32 bits);
  • campo Retardo desde el último informe de envío (32 bits).

¿Cómo se utiliza RTCP con respecto a RTP?

RTCP es un protocolo de control asociado con RTP, que mide los desempeños pero no ofrece garantías. Para esto, se debe utilizar un protocolo de reserva como RSVP o asegurarse de que los enlaces de comunicación utilizados sean de proporción correcta en relación con el uso que se hace de ellos.

¿Sobre que protocolos funcionan RTP y RTCP?

RTP/RTCP se encuentra sobre el transporte UDP/TCP, pero prácticamente sobre UDP.
RTP es un protocolo de sesión, pero se encuentra en la aplicación. Es el desarrollador que lo tiene que integrar

¿Cómo se transporta el tipo de flujo?

RTP no tiene nada que ver con el tipo de flujo. Se encuentra sobre UDP, que está sobre IP. El tipo de flujo teóricamente se utiliza en IP.
RTP lleva un número de secuencia, una marca de tiempo y un identificador único de la fuente (SSRC).

Artículo escrito por Nico VanHaute, Julien Barascud y Jean-Roland Conca

Consulta también


RTP/RTCP protocols
RTP/RTCP protocols
Die RTP/RTCP Protokolle
Die RTP/RTCP Protokolle
Les protocoles RTP/RTCP
Les protocoles RTP/RTCP
I protocolli RTP/RTCP
I protocolli RTP/RTCP
Os protocolos RTP/RTCP
Os protocolos RTP/RTCP
Última actualización: 16 de octubre de 2008 a las 15:43 por Jeff.
El documento «Protocolos RTP/RTCP» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.