Protocolo de transporte en tiempo real
# 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 aplicació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 1996 como la RFC 1889, y actualizado posteriormente en 2003 en la 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 unidifusión. 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.

Generalmente usa UDP en la capa de transportes dentro del modelo TCP/IP, además de RTCP (RTP Control Protocol) también a nivel de aplicación para el control de la información en una sesión RTP.

## Estructura del encabezado

| Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 0 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 1 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 2 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 | Byte 3 |
| - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| V | V | P | X | CC | CC | CC | CC | M | PT | PT | PT | PT | PT | PT | PT | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | N.º de secuencia | 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): 2 bits. La versión definida por la especificación actual es 2.
* Relleno (P): 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): 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): 1 bit. Un bit de marcador definido por el perfil particular de media.
* Tipo de carga útil (PT): 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: 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: 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 de la cabecera en unidades de 32 bits.

## RFC

* RFC 6184, Proposed Standard (mayo de 2011), RTP Payload Format for H.264 Video
* RFC 3984, Obsolete (febrero de 2005), RTP Payload Format for H.264 Video
* RFC 3711, Proposed Standard (marzo de 2004), The Secure Real-time Transport Protocol (SRTP)
* RFC 3551, Standard 65 (julio de 2003), RTP Profile for Audio and Video Conferences with Minimal Control
* RFC 3550, Standard 64 (julio de 2003), RTP: A Transport Protocol for Real-Time Applications
* RFC 1890, Obsolete (enero de 1996), RTP Profile for Audio and Video Conferences with Minimal Control
* RFC 1889, Obsolete (enero de 1996), RTP: A Transport Protocol for Real-Time Applications
* Datos: Q321213
* Multimedia: Real-time Transport Protocol / Q321213
