RTP RTCP y RTSP
RTP RTCP y RTSP
RTP RTCP y RTSP
Protocolos de Streaming IP
RTP , RTCP y RTSP
30 de junio de 2021
Índice
1. Resumen 3
2. Introducción 3
3. Protocolos: 3
3.2. RTCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3. RTSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Conclusión: 15
5. Referencias 16
Índice de figuras
2. Sesiones RTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Encapsulamiento RTP/UDP/IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1
11. Goodbye RTCP Packets (BYE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
1. Resumen
A lo largo de este informe se describirá el funcionamiento del Real Time Transport Protocol (RTP) y de
sus cabeceras (Real Time Control Protocol - RTCP ) .
También se hablará más adelante sobre el Real Time Streaming Protocol ( RTSP), protocolo a nivel de
aplicación que facilita el control de flujos multimedia.
2. Introducción
La motivación principal de la creación de estos protocolos es la transmisión de datos multimedia sobre Internet
( la cual no ofrece garantías de Calidad de Servicio (QoS) ) y que inicialmente se creó para el transporte de datos
textuales . Internet , como una red que comparte datagramas no es lo mejor para tráfico a tiempo real.
Estos estándares surgen a raíz de dar cabida a esa necesidad de mejora del tráfico multimedia.
3. Protocolos:
Protocolo definido por el IETF (Internet Engineering Task Force) inicialmente en el RFC 1889
( Enero , 1996 ) y cuya edición en vigor es la RFC 3550 ( Julio , 2003).
El objetivo fundamental es transportar flujos multimedia sobre redes IP.
No proporciona mecanismos para garantizar las entregas ni para recuperar errores , la red subyacente será la en-
cargada de hacerlo.
A nivel de transporte suele usar el protocolo UDP , cuyas diferencias fundamentales con TCP (el otro protocolo de
transporte más utilizado) son:
TCP(Transmission Control Protocol) : orientado a conexión, fiable, secuencial y con control de flujo y conges-
tión .
UDP(User Datagram Protocol): sin conexión, sin garantías e insensible a congestión (además admite mensajes
de difusión y multidifusión).
UDP es el protocolo escogido mayoritariamente para el transporte de RTP por 2 razones fundamentalmente:
1) RTP está diseñado principalmente para la multidifusión.
2) La fiabilidad de los datos en tiempo real no es tan importante como entregarlos a tiempo.
Por estas y algunas otras razones relacionadas , RTP envía sobre UDP y emplea servicios UDP (como las compro-
baciones de checksums y el multiplexado de flujos).
3
A continuación se muestra un esquema de la localización de RTP en la pila TCP/IP:
(a)
Aunque lo más común es su uso en UDP/IP , RTP es neutral , lo que permite utilizarse en ADSL,redes de
satélite , ...
Es flexible y escalable (tiene instancias para formatos comunes como MPEG , H261 , wav ... y permite unicast y
multicast)
En los aspectos de seguridad en RFC 3711 se define el Secure Real-Time Transport Protocol (SRTP , 2004),
también flexible en el diseño pues incorpora de forma fácil nuevos algoritmos de encriptación .
SRTP emplea el AES(Advanced Encryption Standard)como mecanismo de encriptación predeterminado ,
basado en cifrado por bloques.
Con SRTP , todas las funcionalidades son opcionales y pueden ser activadas y desactivadas de forma individual , a
excepción de la funcionalidad de mensaje de autenticación que es obligatoria.
También existe el SRTCP , que proporciona las mismas características de seguridad que proporciona SRTP a RTP.
4
3.1.1. Sesión RTP
Los datos multimedia en RTP se dividen en transmisiones de diferentes flujos de datos , cada uno de ellos usando
una sesión RTP.
La transmisión de datos en una sesión RTP será unidireccional (emisor-receptor), pero en cada una de ellas habrá
una comunicación bidireccional a través de RTCP (el cual se explicará más adelante) y también una sincronización
Inter-Flujo.
Para la correcta recepción de los flujos , estos serán numerados para , por ejemplo en vídeo , ser reproducidos en el
orden oportuno.
En cuanto a los puertos que utilizan en las sesiones , la comunicación RTP se suele hacer a través de un puerto con
número par y la RTCP a través del impar consecutivo.
(a)
5
3.1.2. Paquetes RTP
(a)
En la siguiente figura se muestra el encapsulamiento RTP , una vez creada la cabecera RTP , sobre UDP e
IPv4:
(a)
6
3.1.3. Perfil RTP
Desde el principio , el diseño RTP se vio condicionado en que debía transportar una gran cantidad de formatos
multimedia y que se pudiesen añadir nuevos formatos.
Para ello , RTP está diseñado sobre el principio de application level flaming , para ser fácilmente modificable.
Las necesidades específicas de cada aplicación se indican mediante los perfiles y formatos de carga útil.
En el perfil se especifica el formato de RTP para una aplicación en concreto. Por ejemplo:
-RFC 3640, RTP Payload Format for Transport of MPEG-4 Elementary Streams. https://datatracker.ietf.
org/doc/rfc3640/
-RFC 6184 , RTP Payload Format for Transport of H.264 Video.https://datatracker.ietf.org/doc/html/
rfc6184
3.2. RTCP
El RTCP (RTP Control Protocol) está definido, como RTP, en el RFC 1889 y RFC 3550 .
Se emplea para enviar datos de control entre emisor y receptor de una secuencia RTP.
RTP basa su funcionamiento en la transmisión periódica de paquetes de control a todos los participantes dentro de
la sesión , al puerto inmediatamente siguiente al que se manda los paquetes RTP.
7
3.2.2. Paquetes RTCP
Los paquetes RTCP deben enviarse en paquetes compuestos que se encapsulan sobre UDP y que contienen al
menos 2 paquetes RTCP individuales , de los cuales el primero es un SR o un RR. Los paquetes RTCP se envían
cada 5 segundos aproximadamente.
Los tipos de paquetes empleados en RTCP son 6 :
1. Paquete Sender Report (SR): envío periódico a los participantes activos para información de transmi-
sión (y recepción si son receptores también) para todos los paquetes durante la sesión.
El SR tiene la siguiente estructura:
(a)
Este paquete se divide en 4 partes: cabecera (header) , bloque de información de fuente (sender info) , bloque
de información de receptor (report block 1 y report block 2) y , si fuera necesario , extensiones específicas de perfil
(profile specific extensions).
Por orden de aparición las partes de la cabecera o header son :
-Bits V (2 bits) : indican la versión de RTP ( la 2 actualmente)
-Bit de relleno (1 bit): su activación indica byte/s adicionales al final de la carga útil.
-Report Count (5 bits) : número de bloques de informe de recepción en el paquete SR.
-Packet Type (1 byte): indica el tipo de paquete , p.e. el 200 .
-Length/longitud (2 bytes): longitud del paquete en palabras de 32 bits menos una , con cabecera y relleno.
-SSRC(4 bytes): id de la fuente .
8
Por orden de aparición las partes del bloque de información de fuente son:
-NTP timestamp (8bytes): indica el instante de tiempo en el cual fue enviado el paquete, respecto a una referencia
de tiempo global.
-RTP timestamp (4bytes) : instante de tiempo en el cual fue enviado el paquete, respecto al tiempo local.
- Sender’s Packet Count (4bytes): número de paquetes enviados por la fuente desde que se inició la sesión.
-Sender’s Octet Count(4bytes):número de bytes de datos enviados en paquetes RTP desde que la fuente inició el
envío de datos.
Por orden de aparición las partes del bloque de información de receptor son:
-SSRC (4bytes): id de la fuente a la que se refieren los datos del informe de recepción.
-Fraction Lost (1byte): fracción de paquetes RTP ( de cada 255) que se perdieron desde que se envió el informe.
-Número de paquetes perdidos acumulado (3bytes): número total de paquetes perdidos desde el inicio de recepción.
- EHSN(Extended Highest Sequence) (4bytes): los 2 bytes más significativos indican el número de ciclos de contador
de secuencia que han pasados y los otros 2 el número de secuencia más alto recibido en paquetes RTP de la fuente
con el id indicado .
-Inter-arrival Jitter (4bytes): estimación del tiempo entre llegadas de los paquetes de datos RTP.
-Last SR Timestamp(4bytes): contiene los 32 bits centrales de los 64 del NTP timestamp recibido como parte del
paquete RTCP SR más reciente de la fuente con id indicada.
-Delay Since Last SR(4bytes): retardo desde que se recibió el último paquete RTCP SR de la fuente indicada y el
instante de envío de este paquete de informe.
Por último están las extensiones específicas del perfil RTP: cada perfil RTP debe definir extensiones espe-
cíficas siempre y cuando haya una información de fuente que deba ser enviada de forma regular.
9
2.Paquete Receiver Report (RR):se envían periódicamente a los participantes pasivos (las que no envían
paquetes RTP) para informar sobre QoS.
La estructura del paquete RR es:
(a)
3.Paquete Extended Reports (XR): el objetivo principal es transportar información adicional que comple-
mente los datos de los paquetes SR y RR.
Se definen en el RFC 3611 de 2003.
Su estructura es la siguiente:
(a)
10
El apartado de report blocks tiene la siguiente forma :
(a)
(a)
(a)
5.Paquete BYE:indica la finalización de un participante en una sesión RTP. Algunas veces y opcionalmente
dando una razón para abandonar la sesión.
(a)
11
6.Paquete de APP:paquete específico para una aplicación en concreto. Una vez un paquete RTP APP funciona
correctamente , debe ser registrado con el IANA (Internet Assigned Numberrs Authority) como un tipo de paquete
original.
(a)
12
3.3. RTSP
RTP está diseñado para el transporte de media , pero no provee de todas las funcionalidades . De proveer estas
funciones se encarga el protocolo RTSP (Real Time Streaming Protocol).
RTSP está definido en la norma RFC-2326 de 1998. Se describe como un mando a distancia a través de la red para
servidores multimedia.
Como RTSP no está orientado a conexión , el servidor mantiene una sesión asociada a un identificador .
Normalmente se implementa sobre TCP (por lo que es independiente al flujo de datos), con puerto por defecto el
554 ( también se puede usar UDP para latencias bajas).
El protocolo es similar a HTTP, también basado en texto . Difiere ,entre otras cosas , en los nuevos métodos que
emplea para establecimiento y control de una o más sesiones multimedia y del protocolo de transporte .
Permite también el control de la reproducción mediante operaciones VCR-like (play , stop , ...)
Antes de que se inicie una sesión RTSP , el cliente obtiene información sobre el tipo de media con el que va a
trabajar ("Descripción de la Presentación") .
Para ilustrar el funcionamiento de RTSP se ve de manera ilustrativa en las siguientes figuras:
(a)
13
Como se observa en la figura , RTSP es independiente del flujo de media como se dijo anteriormente .El Brow-
ser/Navegador y el Player/Reproductor es lo que se entiende como Cliente , mientras que el Web Server/Servidor
Web y el Media Server/Servidor de Media es lo que se conoce como Servidor.
La comunicación para el protocolo RTSP se realiza mediante métodos definidos de los cuales , unos obligatorios y
otros optativos, los más habituales son:
(a)
14
4. Conclusión:
RTP , que nació del esfuerzo académico e impulsado por el IEFT , se ha convertido actualmente en una de las
principales alternativas para el transporte de media a través de Internet y , junto con el RTCP , nos proporciona
monitoreo de Calidad de Servicio (QoS) .
Pese a estas ventajas , el principal problema es el ancho de banda y el empaquetamiento IP/RTP/UDP.
También se han visto las herramientas proporcionadas por el protocolo RTSP , el cual complementa los anteriores
y que se envía separado del flujo de datos .
La mejora de los equipos permite el manejo de las operaciones necesarias en RTP para el procesamiento de multi-
media con mucha mayor facilidad.
Inicialmente se comenzó para multidifusión (pero también hay casos de unidifusión).
De los documentos RFC (Request for Comments , publicaciones del grupo de trabajo de ingeniería de internet que
regulan protocolos de internet ) las referentes a RTP son 7 :
15
5. Referencias
1.https://en.wikipedia.org/wiki/Real-time_Transport_Protocol
2.https://tools.ietf.org/html/rfc1889
3.https://tools.ietf.org/html/rfc3550
4.https://www.dit.upm.es/~david/TAR/trabajos/2001/07-RTP-RTCP-RTSP-William-Diaz.pdf
5.https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
6.https://books.google.es/books?id=5fms2DW7mMUC&pg=PA42
7.J.F. Kurose, K.W. Ross, Computer networking: a top-down approach featuring the Internet
9.https://datatracker.ietf.org/doc/html/rfc3611
10. https://datatracker.ietf.org/doc/html/rfc7941
11. https://repositorio.utb.edu.co/bitstream/handle/20.500.12585/1137/0035902.pdf?isAllowed=y&sequence=
1
12. https://datatracker.ietf.org/doc/html/rfc6184
13. https://datatracker.ietf.org/doc/rfc3640/
14. https://datatracker.ietf.org/doc/html/rfc7826
16