Protocolo de transporte en tiempo real

El Protocolo de Transporte en Tiempo Real o RTP (por sus siglas en inglés, Real-time Transport Protocol), es un protocolo de nivel de sesión utilizado para la transmisión de información en tiempo real, como por ejemplo audio y vídeo en una videoconferencia. Está desarrollado por el grupo de trabajo de transporte de audio y vídeo del IETF, publicado por primera vez como estándar en RFC 1889, y actualizado posteriormente en RFC 3550, que constituye el estándar de Internet STD 64.

Inicialmente se publicó como protocolo multidifusión, aunque se ha usado en varias aplicaciones unicast. Se usa frecuentemente en sistemas de retransmisión, junto a RTSP, videoconferencia y sistemas pulsa y habla (en conjunción con H.323 o SIP). Representa también la base de la industria de VoIP.

La RFC 1890, obsoleta por la RFC 3551 (STD 65), define un perfil para conferencias de audio y vídeo con control mínimo. La RFC 3711, por otro lado, define SRTP (Secure Real-time Transport Protocol), una extensión del perfil de RTP para conferencias de audio y vídeo que puede usarse opcionalmente para proporcionar confidencialidad, autenticación de mensajes y protección de reenvío para flujos de audio y vídeo.

Va de la mano de RTCP (RTP Control Protocol) y se sitúa sobre UDP en el modelo OSI.

  • estructura del encabezado
  • rfc

Estructura del encabezado

Byte 0 Byte 1 Byte 2 Byte 3
V P X CC M PT N.º de secuencia
Marca de tiempo
Fuente de sincronización (SSRC)
Fuente del contenido (CSRC)
Cabecera de extensión (EH), opcional
Datos
  • Número de versión de RTP (V - version number): 2 bits. La versión definida por la especificación actual es 2.
  • Relleno (P - padding): 1 bit. Si el bit del relleno está activado, hay uno o más bytes al final del paquete que no es parte de la carga útil. El último byte del paquete indica el número de bytes de relleno. El relleno es usado por algunos algoritmos de cifrado.
  • La extensión (X - extension): 1 bit. Si el bit de extensión está activado, entonces el encabezado fijo es seguido por una extensión del encabezado. Este mecanismo de la extensión posibilita implementaciones para añadir información al encabezado RTP.
  • Conteo CSRC (CC): 4 bits. El número de identificadores CSRC que sigue el encabezado fijo. Si la cuenta CSRC es cero, entonces la fuente de sincronización es la fuente de la carga útil.
  • Marcador (M - marker): 1 bit. Un bit de marcador definido por el perfil particular de media.
  • Tipo de carga útil (PT - payload type): 7 bits. Un índice en una tabla del perfiles de media que describe el formato de carga útil. Los mapeos de carga útil para audio y vídeo están especificados en el RFC 1890.
  • El número de secuencia (sequence number): 16 bits. Un único número de paquete que identifica la posición de este en la secuencia de paquetes. El número del paquete es incrementado en uno para cada paquete enviado.
  • Marca de tiempo (timestamp): 32 bits. Refleja el instante de muestreo del primer byte en la carga útil. Varios paquetes consecutivos pueden tener el mismo sellado si son lógicamente generados en el mismo tiempo - por ejemplo, si son todo parte del mismo fotograma de vídeo.
  • Fuente de sincronización (SSRC): 32 bits. Identifica la fuente de sincronización. Si la cuenta CSRC es cero, entonces la fuente de carga útil es la fuente de sincronización. Si la cuenta CSRC es distinta a cero, entonces el SSRC identifica el mezclador.
  • Fuente del contenido (CSRC): 32 bits cada uno. Identifica las fuentes contribuyentes para la carga útil. El número de fuentes contribuyentes está indicado por el campo de la cuenta CSRC. Allí puede haber más de 16 fuentes contribuyentes. Si hay varias fuentes contribuyentes, entonces la carga útil son los datos mezclados de esas fuentes.
  • EH: el tamaño de este dato debe ser CC×32 en bits
  • Datos: el tamaño de los datos debe ser de X×((EHL+1)×32) donde EHL es la longitud de la extensión del la cabecera en unidades de 32 bits.
Other Languages