SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Análisis de los protocolos de tiempo real en
              Ethernet RTP, RTCP y RTSP.
                                                  Manuel Flores Vivas
                            Sistemas en Tiempo Real, curso 2006/2007 – E.T.S.I. Informática
                                                 Universidad de Málaga
                                         e-mail: manuelfloresv{at}gmail{.}com


Resumen— En este documento se estudian los diferentes               En la sección II se hará un breve repaso a la historia del
protocolos de tiempo real para el envío y recepción de          transporte de audio y vídeo sobre Internet.
contenidos multimedia en tiempo real a través de
                                                                   La sección III profundizará en la pareja de protocolos
Internet.                                                       RTP (Real Time Protocol) y RTCP (Real Time Control
                       I. INTRODUCCIÓN                          Protocol).
    Desde que la informática se introdujo en el hogar y            En la sección IV se analizará el protocolo RTSP (Real
aparecieron las primeras GUIs (Interfaces Gráficas de           Time Streaming Protocol).
Usuario) los contenidos multimedia han estado presentes            En la sección V, se estudiarán                  diferentes
tanto en equipos domésticos como en estaciones de trabajo.      implementaciones: Hardware, Software y APIs.
Y desde hace unos años, también en teléfonos móviles,
reproductores portátiles o videoconsolas.                           Y por último, la sección VI expone las conclusiones de
                                                                este trabajo.
   ¿Como se representan audio y vídeo en el ordenador? [6]
    Los archivos de audio se almacenan comprimidos por                                   II.HISTORIA
medio de algoritmos basados en la técnica PNS (norma de
percepción del ruido), es decir, aprovechan ciertas                 Los primeros esfuerzos en transmitir audio sobre
frecuencias que el ser humano no reconoce y otras que           Internet sobre los protocolos IP y ST-II se remontan a los
reconoce mejor.                                                 años 70.

    La compresión de sonido elimina frecuencias                     Se hacen demostraciones entre USC/ISI (University of
imperceptibles sin alterar de forma significativa lo que se     Southern California), MIT/LL (Lincoln Laboratory,
escucha, pero reduciendo considerablemente el tamaño del        Massacchusetts Institute of Tecnology), CHI y SRI. Y
fichero.                                                        comienzan a aparecer las primeras patentes sobre paquetes
                                                                de transmisión de voz.
   Entre los formatos mas comunes, se encuentran: AAC
(Advanced Audio Coding), WAV, AU (Audio for Unix),                  A comienzos de los años 90 se crea DARTnet, una red
WMA (Windows Media Audio), MIDI (Musical Instrument             internacional formada por unos doce centros de
Digital Interface), MPEG (Moving Pictures Experts Group),       investigación, donde se hacen experimentos con MBONE,
AC3, RealAudio, RealVideo, OGG Vorbis, ATRAC                    RTP y vat.
(Adaptive TRansform Acoustic Coding) o AVI (Audio                   Estos experimentos usaban hardware de propósito
Video Interleave).                                              específico y codificadores como el LPC, pero el interés de
    Hasta aquí se ha hablado de ficheros multimedia para ser    Sun Microsystems en transmitir voz sobre redes de paquetes
almacenados en diferentes soportes; pero desde la creación      dio lugar a un codec de audio dentro del SPARCstation 1.
de Internet, y con el aumento en el número de nodos y de la     Además, entre el software disponible para las estaciones de
velocidad de la red, han aparecido tecnologías como la radio    trabajo de Sun estaban incluidos vt y vtalk.
por Internet, videoconferencias, vídeo bajo demanda, VoIP          En noviembre de 1995, RTP es aprobado por el IESG
(voz sobre IP), televisión por Internet o emisiones en          como estándar.
directo. Y todos estos servicios requieren que el envío y la
recepción de los datos se produzcan en tiempo real, para así        Netscape anuncia en enero de 1996 Netscape
poder ser reproducidos al momento y sin interrupciones.         LiveMedia, un framework basado en estándares para dar
                                                                soporte de audio y vídeo en tiempo real a la plataforma de
    Para que estas transmisiones puedan realizarse en tiempo    Netscape. Estaba basado en RTP (RFC 1889) y otros
real, se necesita de nuevos protocolos, formatos, estándares,   estándares como MPEG, H.261 y GSM.
algoritmos y aplicaciones en los que se profundizará en las
siguientes secciones.                                              Intel, Microsoft, y un consorcio de más de cien empresas
                                                                de tecnología pretenden construir una plataforma abierta
basada en los estándares existentes para hacer                      RTP soporta transferencia de datos a múltiples destinos
comunicaciones de audio, vídeo y datos sobre Internet tan       usando distribución multicast si lo proporciona la red sobre
fácil como una llamada de teléfono. La implementación           la que se usa.
incluía las especificaciones T.120, H.323, RTP/RTCP y
RTSP. Microsoft dijo que incorporaría esas capacidades              Este protocolo, por si solo no proporciona ningún
como parte de la tecnología ActiveX en futuras versiones        mecanismo para asegurar un envío a tiempo ni garantiza
del sistema operativo Windows.                                  calidad de servicio; confía en que un servicio de una capa
                                                                inferior lo haga. Esto no garantiza que lleguen los datos ni
   En mayo de 1996, Microsoft afirma que su software de         que lleguen en orden. Los números de secuencia incluidos
conferencias, NetMeeting, soporta RTP.                          en RTP permiten al receptor reconstruir la secuencia de
                                                                paquetes del emisor.
    El protocolo de streaming en tiempo real (RTSP) fue
propuesto por una coalición de 38 industrias [7], que               RTP ha sido diseñado principalmente para multimedia,
anunció un nuevo estándar de audio y vídeo que permitía a       pero no esta limitado a esa aplicación, y también se puede
las compañías que usan internet competir con la radio y         aplicar a almacenamiento de datos continuos, simulaciones
televisión tradicionales. Un estándar que permitía transmitir   distribuidas e interactivas o aplicaciones de control.
flujos de información digital a ordenadores personales.
                                                                   El estándar RTP es producto del AVT del Internet
    El grupo liderado por Netscape Communications y             Engineering Task Force (IETF), y queda recogido en el
Progressive Networks, incluía a IBM, Apple Computer, Sun        RFC 3550 [3], que es una revisión del RFC 1889 donde no
Microsystems, Digital Equipment, Hewlett-Packard y              hay cambios en el formato del paquete, solo en las reglas y
Silicon Graphics, pero no a Microsoft. La ausencia de           algoritmos que gobiernan como es usado el protocolo.
Microsoft en el grupo era otra indicación de la rivalidad
entre la compañía de Redmond y la nueva Netscape. Pero
finalmente, tras conversaciones, Microsoft aceptó el nuevo
protocolo.                                                      A. Protocolo de transferencia de datos RTP
                                                                Propósitos:
                         III.RTP Y RTCP                         – Es ligero respecto a especificación e implementación.
                                                                – Flexible en el sentido de que proporciona mecanismos.
    RTP, protocolo de transporte en tiempo real,
                                                                – Neutral al protocolo: funciona sobre UDP/IP, ST-II,
proporciona funciones para redes de extremo a extremo
                                                                – IPX, ATM, etc.
adecuadas para aplicaciones que transmiten datos en tiempo
real, como audio, vídeo, o datos provenientes de una            – Escalable.
simulación, sobre redes unicast o multicast. El transporte de   – Separa control y datos.
datos es acompañado por un protocolo de control (RTCP)          – Y es seguro: soporta cifrado y posibilidad de
que permite monitorizar el envío de datos de forma                  autenticación.
escalable en redes multicast.
                                                                Funciones:
    RTP y RTCP (en la capa de aplicación) han sido              – Segmentación y composición hecha por UDP (o
diseñados para ser independientes de las capas de transporte       similar).
y red sobre las que funcionen. RTP corre normalmente            – Resecuenciación (si es necesaria).
sobre UDP para hacer uso de sus servicios de
                                                                – Detección de perdidas para poder estimar la calidad.
multiplexación y detección de errores. Sin embargo, RTP
                                                                – Sincronización entre flujos (sincronización de labios
puede ser usado sobre otros protocolos de transporte y de
red, incluso IPv6. Todo esto queda recogido en la figura 1.        entre audio y vídeo y control de retrasos).
                                                                – Realimentación de la calidad de servicio y adaptación
Figura 1. Posibles protocolos bajo RTP y RTCP.                     de la calidad.
                                                                – Identificación de la fuente (emisor).

                                                                Mezcladores (mixers):
                                                                    Combinan varios flujos en uno nuevo con una
                                                                codificación nueva. Aparecen como una nueva fuente, con
                                                                su propio identificador y usan un nuevo SSRC.

                                                                    Se pueden usar en redes con un ancho de banda
                                                                reducido (como las conexiones vía módem). Un mezclador
                                                                puede cambiar el formato de los datos (codificación) y
                                                                combinar flujos a la vez. Y encontramos un ejemplo en la
                                                                figura 2 (derecha) donde se mezclan dos flujos GSM en
                                                                uno nuevo.
Traductores (translators):                                           comprobar en la figura 3. Se trata de un mecanismo
   Trabajan con un único flujo multimedia y pueden                   para implementaciones específicas o nuevos formatos
cambiar la codificación de este (por razones de ancho de             de payload que requieran de más información
banda) o cambiar el protocolo usado (para cortafuegos).              adicional en la cabecera del paquete RTP. Esto permite
Además, los datos pueden pasar a través de un traductor y            que una implementación que no soporte dicha
quedar intactos.                                                     extensión pueda trabajar con parte de la información
                                                                     del paquete.
    A diferencia de los mezcladores, se mantiene la fuente           Se puede ver en detalle en la sección 5.3.1 de [3].
(SSRC). Se puede apreciar un ejemplo en la figura 2
(izquierda) donde el flujo DVI4 se traduce a GSM; y el L16       –   CSRC Count (CC). Indica el número de fuentes que
también.                                                             contribuyen.

                                                                 –   Marker (M). La interpretación exacta de este bit queda
                                                                     establecida por los perfiles (profiles). Se usa para
                                                                     notificar de eventos significativos como un cambio de
                                                                     cámara (frame boundaries).
                                                                     Un perfil puede añadir más bits de marcas o decir que
                                                                     este no es un bit de marca cambiando el tamaño del
                                                                     siguiente campo.

                                                                 –   Payload type (PT): Identifica el formato del payload, o
Figura 2. (Izquierda) Traductor. (Derecha) Mezclador.                método de codificación del audio/vídeo. Puede
                                                                     cambiar durante la sesión, pero no hay que usarlo para
                                                                     multiplexar varios flujos multimedia.
Cabecera del paquete:                                                Por último, un receptor debe de ignorar los paquetes
    La cabecera de un paquete RTP esta formada por los               con un PT que no entiende.
siguiente campos:
                                                                 –   Sequence number. Este campo se incrementa en una
                                                                     unidad para cada paquete RTP que es enviado. Y le
                                                                     sirve al receptor para detectar pérdidas de paquetes si
                                                                     encuentra saltos, o para reordenar la secuencia de
                                                                     paquetes.
                                                                     El valor inicial debe de ser aleatorio para dificultar
                                                                     ataques basados en conocimiento de texto plano,
                                                                     incluso si una fuente no cifra, porque más tarde un
                                                                     traductor puede hacerlo.

                                                                 –   Timestamp: Refleja el instante de la muestra del primer
                                                                     octeto en un paquete de datos, esto es, una marca de
                                                                     tiempo. Ese instante debe ser calculado con un reloj
Figura 3. Cabecera RTP.                                              que incremente de forma monótona y lineal para
                                                                     permitir sincronización.
–    Version (V): Identifica la versión del protocolo. La            El valor inicial debe de ser aleatorio, e incrementa en
     versión 2 corresponde al estándar actual, la versión 1 al       función del tiempo cubierto en el contenido del
     primer borrador, y el valor 0 era usado por el protocolo        paquete.
     implementado inicialmente en la herramienta “vat”.              A diferencia del número de secuencia, varios paquetes
                                                                     RTP pueden tener el mismo timestamp si son imágenes
–    Padding (P): Se usa para algoritmos de cifrado que              del mismo frame.
     requieren de un tamaño fijo de bloque. Si P es
     establecido, el paquete contiene uno o más octetos al       –   Syncronization source identifier (SSRC): Identifica a la
     final, que no forman parte del payload, el último de            fuente con la que se sincroniza, también debe ser
     estos octetos indica cuantos octetos deben de ser               elegido aleatoriamente con la intención de que no haya
     ignorados (incluido él).                                        dos fuentes en la misma sesión que tengan el mismo
                                                                     identificador SSRC. Sin embargo, todas las
–    Extension (X): Si el bit de extensión esta activado, la         implementaciones de RTP deben estar preparadas para
     cabecera debe de ir seguida de otra cabecera de                 detectar y resolver colisiones.
     extensión (header extension) como se puede
–    Contributing source identifiers (CSRC): Identifica a       –   RR: Receiver report. Son generados por participantes
     las fuentes que contribuyen al payload. El número de           que no son emisores. Contienen la calidad con la que
     identificadores viene dado por el campo CC y esta              los datos han sido recibidos, número de paquetes
     comprendido entre 0 y 15.                                      recibidos y perdidos, y timestamps para calcular el
     Los identificadores CSRC son insertados por los                retraso entre emisor y receptor.
     mezcladores, usando los identificadores SSRC de las
     diferentes fuentes. Por ejemplo, para paquetes de          –   SR: Sender report. Estos son generados por los
     audio, los SSRC de los emisores que van a ser                  emisores de la sesión. Además de los datos RR,
     mezclados son listados en el paquete, permitiendo al           incluye una sección de información del emisor con
     receptor identificar quien habla.                              información     de     sincronización,    contadores
                                                                    acumulativos de paquetes y número de bytes enviados.
–    Payload. Hace referencia a los datos transportados por
     un paquete RTP. Por ejemplo muestras de audio o            –   SDES: Source description. Contiene información para
     vídeo comprimido.                                              describir al emisor. Nombre, email, localización,
     Un perfil (profile) es un documento que define un              CNAME (Canonical name).
     conjunto de codigos payload type y los respectivos
     formatos de codificación. También puede definir            –   BYE: Explicit leave. Indica el fin de una participación.
     extensiones o modificaciones para una clase particular
     de aplicaciones. Un perfil para audio y vídeo puede ser    –   APP: Extensions. Definidos por la aplicación (aún
     encontrado en el RFC 3551 [4].                                 ninguno).
     Por otro lado tenemos documentos que especifican el
     formato de un payload, los cuales definen como una             Una descripción detallada del formato de cada paquete
     codificación concreta de audio o de vídeo tiene que ser    se puede ver a partir de la sección 6.4.2 del RFC 3550 [3].
     transportada en RTP.
     En la tabla 1 se presentan algunos de los payloads.

    Estándar     Título
    RFC 2190     RTP Payload Format for H.263 Video
                 Streams
                                                                    Figura 4. Tráfico RTCP.
    RFC 2250     RTP Payload Format for MPEG1/MPEG2
                 Video                                              Estos paquetes de control nos ofrecen los siguientes
    RFC 3016     RTP Payload Format for MPEG-4                  servicios:
                 Audio/Visual Streams
                                                                – Monitorización de la calidad de servicio y control de la
    RFC 3119     A More Loss-Tolerant RTP Payload Format
                 for MP3 Audio                                       congestión. Es la función principal de RTCP,
    RFC 3497     RTP Payload Format for Society of Motion            proporcionando la calidad de la distribución de los
                 Picture and Television Engineers (SMPTE)            datos. Es útil tanto para emisores, como receptores,
                 292M Video                                          como terceras partes. El emisor puede ajustar la
    RFC 4103     RTP Payload for Text Conversation                   transmisión en función del informe recibido; los
    RFC 4184     RTP Payload Format for AC-3 Audio                   receptores pueden determinar cuando la congestión es
    RFC 4587     RTP Payload Format for H.261 Video                  local, regional o global; y los administradores de red
                 Streams                                             pueden evaluar el rendimiento de la red en una
Tabla 1. Ejemplos de payloads.
                                                                     distribución multicast.

   Por último, en una red, RTP y RTCP no tienen un              –   Identificación de la fuente. En los paquetes RTP los
puerto fijo, pero se usa la siguiente regla: el puerto RTP es       emisores son identificados por un número de 32 bits
un número par, y el puerto RTCP es el siguiente número.             generado aleatoriamente, que no son adecuados para
                                                                    las personas. Los paquetes RTCP SDES contienen
B. Protocolo de control RTP                                         información textual como el CNAME que se trata de
                                                                    un identificador único para un participante en la sesión.
    Es el protocolo de control diseñado para trabajar en            Además pueden incluir nombre, número de teléfono y
conjunción con RTP. En una sesión RTP, los participantes            otra información.
envían periódicamente paquetes RTCP con información
referente a la calidad de los datos recibidos.                  –   Sincronización entre flujos. Un RTCP sender report
                                                                    contiene una indicación de tiempo real y el
    Se definen cinco tipos de paquetes para reportar                correspondiente timestamp del RTP. Esto puede usarse
información de control:                                             para sincronización entre flujos multimedia como
                                                                    sincronización entre labios y vídeo.
IV.RTSP
–   Información de control escalable. Los paquetes RTCP              El protocolo de streaming en tiempo real (RTSP) fue
    son enviados periódicamente por los participantes, y         desarrollado por RealNetworks, Netscape Communications
    cuando el número de estos incrementa es necesario un         y Columbia University y está publicado en el RFC 2326 [5],
    equilibrio entre tener información de control                es un protocolo a nivel de aplicación para el envío de datos
    actualizada y limitar el tráfico de control. RTP limita el   con propiedades de tiempo real que puede trabajar junto a
    tráfico de control a un máximo del 5% de todo el             otros protocolos como RTP y RSVP. Proporciona un
    tráfico de la sesión.                                        entorno para el envío de datos de tiempo real bajo demanda,
                                                                 como lo son el audio y el vídeo. Las fuentes de datos pueden
                                                                 incluir tanto datos en directo, como almacenados. Este
C. Protocolo RSVP                                                protocolo puede funcionar sobre UDP, UDP multicast y
    Protocolo de reservación de recursos (Resource               TCP.
ReSerVation Protocol). Permite que el receptor de datos
                                                                     El servidor proporciona el contenido multimedia, los
acuerde una calidad de servicio determinada extremo a
                                                                 clientes solicitan continuamente datos al servidor; y RTSP
extremo para el flujo.                                           se comporta como un mando a distancia entre un cliente y el
    Las aplicaciones en tiempo real usan RSVP para               servidor, que permite:
reservar los recursos necesarios en routers durante la
transmisión que se va a llevar a cabo.                           –   Conseguir datos del servidor. El cliente le pide al
    En el diseño de RSVP han formado parte: Xerox Corp.'s            servidor que configure una sesión para que le envíe los
(PARC), MIT, y el Information Sciences Institute of                  datos solicitados.
University of California (ISI).                                  –   Invitar a un servidor a una conferencia.
    En cuanto a su funcionamiento, el receptor precisa de        –   Añadir datos a una presentación existente. El cliente o
calidad de servicio para su transferencia; y RSVP es                 el servidor pueden notificarle a la otra parte sobre
responsable de las negociaciones de parámetros de                    datos que se encuentran disponibles.
conexión con los routers, y de mantener la situación para
proporcionar el servicio requerido.                                  RTSP intenta dar los mismos servicios para audio y
                                                                 vídeo que HTTP hace para texto y gráficos; y ha sido
                                                                 diseñado intencionadamente para que tenga una sintaxis y
D. Protocolos SRTP y SRTCP                                       operaciones similares. Cada flujo esta identificado por una
    El Secure Real-time Transport Protocol o (SRTP)              URL RTSP. Cada presentación y sus propiedades
define un perfil de RTP, para proporcionar cifrado,              multimedia quedan recogidas en un fichero de descripción
autenticación de mensajes e integridad, además de                de la presentación, y este fichero puede ser obtenido por los
protección contra reenvíos de los datos RTP tanto en             clientes vía HTTP, por email o cualquier otro medio.
aplicaciones unicast como multicast. Fue desarrollado por
un pequeño equipo del protocolo IP y expertos en                     Pero RTSP difiere de HTTP en algunos aspectos:
criptografía de Cisco y Ericsson. Fue publicado por el IETF      mientras que HTTP es un protocolo sin estados, un servidor
como el RFC 3711 [9].                                            RTSP tiene que mantener los estados de las sesiones para
                                                                 hacer corresponder pedidos y flujos. Y además, HTTP es
   SRTP esta relacionado con el protocolo Secure RTCP            un protocolo asimétrico donde el cliente hace peticiones y
(SRTCP), que añade características de seguridad al               el servidor responde, mientras que en RTSP ambos pueden
protocolo de control.                                            hacer peticiones.

    Utilizando esta nueva pareja de protocolos, cada una de          Los servicios y operaciones soportados son los
las características que proporcionan (cifrado, autenticación     siguientes:
e integridad) son opcionales; excepto en SRTCP que es            – OPTIONS: El cliente o el servidor le comunican a la
obligatoria la autenticación de los mensajes.                         otra parte que opciones aceptan.
                                                                 – DESCRIBE: El cliente consigue una descripción de un
    Para cifrar y descifrar flujos de datos (proporcionando           contenido identificado por una URL RTSP.
confidencialidad) hace uso del algoritmo simétrico de            – ANNOUNCE: Actualiza la descripción en tiempo real.
cifrado de bloques AES (también conocido como Rijndael).         – SETUP: El cliente le pregunta al servidor donde
                                                                      conseguir los datos.
    Para la autenticación de mensajes y proteger la              – PLAY: El cliente le pide al servidor que comience a
integridad se utiliza el algoritmo HMAC-SHA1 (funciones               mandarle los flujos configurados en SETUP.
hash criptográficas en combinación con una clave secreta),       – PAUSE: El cliente detiene el envío sin liberar los
calculado sobre el payload y algunos campos de la                     recursos en el servidor.
cabecera, como el número de secuencia.
–    TEARDOWN: El cliente solicita al servidor que               Inicialmente solo se podía compilar para Mac OS X,
     detenga el envío del flujo especificado y libere todos   pero a día de hoy funciona sobre Linux, FreeBSD, Solaris,
     los recursos asociados a él.                             Tru-64 Unix, Mac OS 9 y Windows.
–    GET_PARAMETER: Consigue el valor de un
     parámetro de una presentación o flujo.                                              VI.CONCLUSIONES
–    SET_PARAMETER: Establece el valor de un
                                                                  Hemos visto como ha evolucionado el transporte de
     parámetro de una presentación o flujo.
                                                              contenidos multimedia en Internet, las empresas implicadas,
–    REDIRECT: El servidor informa al cliente de que debe     estándares usados y algunas aplicaciones finales.
     conectarse al servidor indicado en la cabecera.
–    RECORD: El cliente comienza a grabar datos de la             Gracias a estos estándares es posible la compatibilidad
     presentación.                                            entre clientes y servidores de distintas plataformas y
                                                              sistemas operativos.
   Las peticiones RTSP son enviadas normalmente por un            Hemos pasado de usar la red telefónica para conectarse a
canal independiente al canal de los datos. Estos últimos      Internet, a usar esta red para telefonía IP o televisión por
pueden ser transmitidos por otro tipo de conexión.            Internet.
                                                                 Y a medio plazo podremos ver todas estas tecnologías
                                                              funcionar sobre el protocolo IPv6 en las variantes unicast,
                       V.IMPLEMENTACIONES                     multicast, y también anycast.
    Existen diferentes implementaciones de los protocolos
vistos anteriormente, a nivel de hardware o de software;                                   REFERENCIAS
entre ellas podemos encontrar:
                                                              [1]    RTP: About RTP and the Audio-Video Transport Working Group
                                                                     http://www.cs.columbia.edu/~hgs/rtp/
A. Cámaras IP                                                 [2]    rtsp.org: Real Time Streaming Protocol Information and Updates
   Podemos encontrar en el mercado cámaras de vídeo con              http://www.rtsp.org
un puerto RJ-45 o wireless y que implementan servidores       [3]    RFC 3550 “ RTP: A Transport Protocol for Real-Time Applications”
RTP o RTSP. Por ejemplo, el modelo 210 de Axis [15], que             http://tools.ietf.org/html/rfc3550
funciona con un sistema operativo empotrado Linux 2.4 y       [4]    RFC 3551 “RTP Profile for Audio and Video Conferences with
soporta los protocolos RTP y RTSP entre otros.                       Minimal Control”
                                                                     http://tools.ietf.org/html/rfc3551
                                                              [5]    RFC 2326 “Real Time Streaming Protocol (RTSP)”
                                                                     http://tools.ietf.org/html/rfc2326
                                                              [6]    Formatos de audio y video
                                                                     http://www.monografias.com/trabajos17/formatos-audio/formatos-
                                                                     audio.shtml
                                                              [7]    Computer Makers to Announce Audio, Video, Data Standard
                                                                     http://www.nytimes.com/library/cyber/week/1014standards.html
                                                              [8]    Secure Real-time Transport Protocol
                                                                     http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol
Figura 5. Cámara de red Axis 210                              [9]    RFC 3711 “The Secure Real-time Transport Protocol (SRTP)”
                                                                     http://tools.ietf.org/html/rfc3711
B. Java Media Framework                                       [10]   Real-Time Transport Protocol (RTP)
   Java Media Framework [16] (JMF) permite añadir                    http://www.cs.columbia.edu/~coms6181/slides/7/rtp.pdf
audio, vídeo y otros contenidos con tiempo a aplicaciones y   [11]   Multimedia Over IP: RSVP, RTP, RTCP, RTSP
applets hechos en Java. Pudiendo capturar, reproducir,               http://www.cs.wustl.edu/~jain/cis788-97/ftp/ip_multimedia.pdf
enviar y traducir múltiples formatos multimedia (AVI,         [12]   Real-time Transport Protocol
MPEG, QuickTime, Sun Audio, etc). Esta API da soporte de             http://www.lab.dit.upm.es/~labscom/almacen/sld/rtp.pdf
RTP para clientes y servidores. Y recientemente se ha
                                                              [13]   RTP/RTCP and RTSP multimedia protocols for the Internet
obtenido soporte para RTSP.
                                                                     http://planete.inrialpes.fr/~roca/doc/ecole_ete_pdms01_v6.pdf
                                                              [14]   Axis Communications
C. Darwin Streaming Server
                                                              [15]   http://www.axis.com/
    Darwin Streaming Server [17] es el primer servidor de     [16]   Java Media Framework API (JMF)
streaming de código abierto que soporta RTP y RTSP con               http://java.sun.com/products/java-media/jmf/
variedad de formatos entre los que se encuentran H.264,
                                                              [17]   Apple Darwin Streaming Server
MPEG-4 y 3GPP. Fue desarrollado por Apple, es el
                                                                     http://developer.apple.com/opensource/server/streaming/index.html
equivalente al QuickTime Streaming Server, y se basa en su
código fuente.                                                [18]   Darwin Streaming Server
                                                                     http://en.wikipedia.org/wiki/Darwin_Streaming_Server

Contenu connexe

Tendances

Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes. Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes.
Miguel Diaz
 
Arquitecturas de protocolos
Arquitecturas de protocolosArquitecturas de protocolos
Arquitecturas de protocolos
mplr1590
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetes
Jarvey Gonzalez
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
laura1352
 
Protocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiProtocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osi
Wilfredo Matheu
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
Eduardo J Onofre
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
aeross
 

Tendances (20)

Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes. Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes.
 
1. introducción a las redes de computadoras 2016 (1)
1. introducción a las redes de computadoras 2016 (1)1. introducción a las redes de computadoras 2016 (1)
1. introducción a las redes de computadoras 2016 (1)
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracer
 
Rsvp
RsvpRsvp
Rsvp
 
Ancho de banda
Ancho de bandaAncho de banda
Ancho de banda
 
Arquitecturas de protocolos
Arquitecturas de protocolosArquitecturas de protocolos
Arquitecturas de protocolos
 
Introduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosIntroduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidos
 
Tipos de multiplexacion
Tipos de multiplexacionTipos de multiplexacion
Tipos de multiplexacion
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetes
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
X.25 y frame relay
X.25 y frame relayX.25 y frame relay
X.25 y frame relay
 
CAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSICAPA DE TRANSPORTE DEL MODELO OSI
CAPA DE TRANSPORTE DEL MODELO OSI
 
Protocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiProtocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osi
 
Modelo osi
Modelo   osiModelo   osi
Modelo osi
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Tecnologías WAN
Tecnologías WANTecnologías WAN
Tecnologías WAN
 
Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
 
Redes de conmutación
Redes de conmutaciónRedes de conmutación
Redes de conmutación
 
Capa de aplicación
Capa de aplicaciónCapa de aplicación
Capa de aplicación
 
Arquitectura MPLS
Arquitectura MPLSArquitectura MPLS
Arquitectura MPLS
 

En vedette

Conceptos sobre Streaming
Conceptos sobre StreamingConceptos sobre Streaming
Conceptos sobre Streaming
Francesc Perez
 

En vedette (20)

RTP & RTCP
RTP & RTCPRTP & RTCP
RTP & RTCP
 
RIP RTCP RTSP
RIP RTCP RTSPRIP RTCP RTSP
RIP RTCP RTSP
 
RTCP (RTP control protocol)
RTCP (RTP control protocol)RTCP (RTP control protocol)
RTCP (RTP control protocol)
 
RTP
RTPRTP
RTP
 
Streaming en windows media (servidor windows 2003 server)
Streaming en windows media (servidor windows 2003 server)Streaming en windows media (servidor windows 2003 server)
Streaming en windows media (servidor windows 2003 server)
 
Rtp
RtpRtp
Rtp
 
Familias pvdm
Familias pvdmFamilias pvdm
Familias pvdm
 
Streaming en windows media (windows media encoder v.9)
Streaming en windows media (windows media encoder v.9)Streaming en windows media (windows media encoder v.9)
Streaming en windows media (windows media encoder v.9)
 
Conceptos sobre Streaming
Conceptos sobre StreamingConceptos sobre Streaming
Conceptos sobre Streaming
 
Curso SMTP
Curso SMTPCurso SMTP
Curso SMTP
 
Smtp
SmtpSmtp
Smtp
 
Sesion7 enumeration smtp
Sesion7 enumeration smtpSesion7 enumeration smtp
Sesion7 enumeration smtp
 
Smtp (protocolo simple de
Smtp (protocolo simple deSmtp (protocolo simple de
Smtp (protocolo simple de
 
Spanning Tree Protocol
Spanning Tree ProtocolSpanning Tree Protocol
Spanning Tree Protocol
 
Soluciones de telefonia ip
Soluciones de telefonia ipSoluciones de telefonia ip
Soluciones de telefonia ip
 
CCNA Voice - Integración entre CUCM y CUC
CCNA Voice - Integración entre CUCM y CUCCCNA Voice - Integración entre CUCM y CUC
CCNA Voice - Integración entre CUCM y CUC
 
Stp
StpStp
Stp
 
Líneas Troncales, RDSI y SIP Trunk
Líneas Troncales, RDSI y SIP TrunkLíneas Troncales, RDSI y SIP Trunk
Líneas Troncales, RDSI y SIP Trunk
 
56780834 b-e-v-t-a
56780834 b-e-v-t-a56780834 b-e-v-t-a
56780834 b-e-v-t-a
 
Protocolos de E-mail (SMTP, POP e IMAP)
Protocolos de E-mail (SMTP, POP e IMAP)Protocolos de E-mail (SMTP, POP e IMAP)
Protocolos de E-mail (SMTP, POP e IMAP)
 

Similaire à Análisis de los protocolos de tiempo real RTP, RTCP y RTSP

[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
Ashnard.Magnus
 
4 tema de exposicion
4 tema de exposicion 4 tema de exposicion
4 tema de exposicion
JuanNoa9
 
Present rec 04_bre
Present rec 04_brePresent rec 04_bre
Present rec 04_bre
eri_ben_rod
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
maxicarri
 

Similaire à Análisis de los protocolos de tiempo real RTP, RTCP y RTSP (20)

Protocolos enrutamiento rip y rpt
Protocolos enrutamiento rip y rptProtocolos enrutamiento rip y rpt
Protocolos enrutamiento rip y rpt
 
0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)
 
[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
[11] TALLER - GENERALIDADES DEL MODELO TCP/IP. HISTORIA Y CAPAS DEL MODELO
 
Redes neldo
Redes neldoRedes neldo
Redes neldo
 
IP-TV.pptx
IP-TV.pptxIP-TV.pptx
IP-TV.pptx
 
Pstn ngn-1 part
Pstn ngn-1 partPstn ngn-1 part
Pstn ngn-1 part
 
Voip
VoipVoip
Voip
 
Modelo osi i tcp
Modelo osi i tcpModelo osi i tcp
Modelo osi i tcp
 
Modelo osi i tcp
Modelo osi i tcpModelo osi i tcp
Modelo osi i tcp
 
Internet protocol-television
Internet protocol-televisionInternet protocol-television
Internet protocol-television
 
Fundamentos del tcp
Fundamentos del tcpFundamentos del tcp
Fundamentos del tcp
 
Modelo tcp ip
Modelo tcp ipModelo tcp ip
Modelo tcp ip
 
4 tema de exposicion
4 tema de exposicion 4 tema de exposicion
4 tema de exposicion
 
Present rec 04_bre
Present rec 04_brePresent rec 04_bre
Present rec 04_bre
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Expo9
Expo9Expo9
Expo9
 
Redes ii
Redes iiRedes ii
Redes ii
 
atm_tcp-ip.ppt
atm_tcp-ip.pptatm_tcp-ip.ppt
atm_tcp-ip.ppt
 
Plan de estudios
Plan de estudiosPlan de estudios
Plan de estudios
 
Cuestionario Unidad 3
Cuestionario Unidad 3Cuestionario Unidad 3
Cuestionario Unidad 3
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Dernier (15)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Análisis de los protocolos de tiempo real RTP, RTCP y RTSP

  • 1. Análisis de los protocolos de tiempo real en Ethernet RTP, RTCP y RTSP. Manuel Flores Vivas Sistemas en Tiempo Real, curso 2006/2007 – E.T.S.I. Informática Universidad de Málaga e-mail: manuelfloresv{at}gmail{.}com Resumen— En este documento se estudian los diferentes En la sección II se hará un breve repaso a la historia del protocolos de tiempo real para el envío y recepción de transporte de audio y vídeo sobre Internet. contenidos multimedia en tiempo real a través de La sección III profundizará en la pareja de protocolos Internet. RTP (Real Time Protocol) y RTCP (Real Time Control I. INTRODUCCIÓN Protocol). Desde que la informática se introdujo en el hogar y En la sección IV se analizará el protocolo RTSP (Real aparecieron las primeras GUIs (Interfaces Gráficas de Time Streaming Protocol). Usuario) los contenidos multimedia han estado presentes En la sección V, se estudiarán diferentes tanto en equipos domésticos como en estaciones de trabajo. implementaciones: Hardware, Software y APIs. Y desde hace unos años, también en teléfonos móviles, reproductores portátiles o videoconsolas. Y por último, la sección VI expone las conclusiones de este trabajo. ¿Como se representan audio y vídeo en el ordenador? [6] Los archivos de audio se almacenan comprimidos por II.HISTORIA medio de algoritmos basados en la técnica PNS (norma de percepción del ruido), es decir, aprovechan ciertas Los primeros esfuerzos en transmitir audio sobre frecuencias que el ser humano no reconoce y otras que Internet sobre los protocolos IP y ST-II se remontan a los reconoce mejor. años 70. La compresión de sonido elimina frecuencias Se hacen demostraciones entre USC/ISI (University of imperceptibles sin alterar de forma significativa lo que se Southern California), MIT/LL (Lincoln Laboratory, escucha, pero reduciendo considerablemente el tamaño del Massacchusetts Institute of Tecnology), CHI y SRI. Y fichero. comienzan a aparecer las primeras patentes sobre paquetes de transmisión de voz. Entre los formatos mas comunes, se encuentran: AAC (Advanced Audio Coding), WAV, AU (Audio for Unix), A comienzos de los años 90 se crea DARTnet, una red WMA (Windows Media Audio), MIDI (Musical Instrument internacional formada por unos doce centros de Digital Interface), MPEG (Moving Pictures Experts Group), investigación, donde se hacen experimentos con MBONE, AC3, RealAudio, RealVideo, OGG Vorbis, ATRAC RTP y vat. (Adaptive TRansform Acoustic Coding) o AVI (Audio Estos experimentos usaban hardware de propósito Video Interleave). específico y codificadores como el LPC, pero el interés de Hasta aquí se ha hablado de ficheros multimedia para ser Sun Microsystems en transmitir voz sobre redes de paquetes almacenados en diferentes soportes; pero desde la creación dio lugar a un codec de audio dentro del SPARCstation 1. de Internet, y con el aumento en el número de nodos y de la Además, entre el software disponible para las estaciones de velocidad de la red, han aparecido tecnologías como la radio trabajo de Sun estaban incluidos vt y vtalk. por Internet, videoconferencias, vídeo bajo demanda, VoIP En noviembre de 1995, RTP es aprobado por el IESG (voz sobre IP), televisión por Internet o emisiones en como estándar. directo. Y todos estos servicios requieren que el envío y la recepción de los datos se produzcan en tiempo real, para así Netscape anuncia en enero de 1996 Netscape poder ser reproducidos al momento y sin interrupciones. LiveMedia, un framework basado en estándares para dar soporte de audio y vídeo en tiempo real a la plataforma de Para que estas transmisiones puedan realizarse en tiempo Netscape. Estaba basado en RTP (RFC 1889) y otros real, se necesita de nuevos protocolos, formatos, estándares, estándares como MPEG, H.261 y GSM. algoritmos y aplicaciones en los que se profundizará en las siguientes secciones. Intel, Microsoft, y un consorcio de más de cien empresas de tecnología pretenden construir una plataforma abierta
  • 2. basada en los estándares existentes para hacer RTP soporta transferencia de datos a múltiples destinos comunicaciones de audio, vídeo y datos sobre Internet tan usando distribución multicast si lo proporciona la red sobre fácil como una llamada de teléfono. La implementación la que se usa. incluía las especificaciones T.120, H.323, RTP/RTCP y RTSP. Microsoft dijo que incorporaría esas capacidades Este protocolo, por si solo no proporciona ningún como parte de la tecnología ActiveX en futuras versiones mecanismo para asegurar un envío a tiempo ni garantiza del sistema operativo Windows. calidad de servicio; confía en que un servicio de una capa inferior lo haga. Esto no garantiza que lleguen los datos ni En mayo de 1996, Microsoft afirma que su software de que lleguen en orden. Los números de secuencia incluidos conferencias, NetMeeting, soporta RTP. en RTP permiten al receptor reconstruir la secuencia de paquetes del emisor. El protocolo de streaming en tiempo real (RTSP) fue propuesto por una coalición de 38 industrias [7], que RTP ha sido diseñado principalmente para multimedia, anunció un nuevo estándar de audio y vídeo que permitía a pero no esta limitado a esa aplicación, y también se puede las compañías que usan internet competir con la radio y aplicar a almacenamiento de datos continuos, simulaciones televisión tradicionales. Un estándar que permitía transmitir distribuidas e interactivas o aplicaciones de control. flujos de información digital a ordenadores personales. El estándar RTP es producto del AVT del Internet El grupo liderado por Netscape Communications y Engineering Task Force (IETF), y queda recogido en el Progressive Networks, incluía a IBM, Apple Computer, Sun RFC 3550 [3], que es una revisión del RFC 1889 donde no Microsystems, Digital Equipment, Hewlett-Packard y hay cambios en el formato del paquete, solo en las reglas y Silicon Graphics, pero no a Microsoft. La ausencia de algoritmos que gobiernan como es usado el protocolo. Microsoft en el grupo era otra indicación de la rivalidad entre la compañía de Redmond y la nueva Netscape. Pero finalmente, tras conversaciones, Microsoft aceptó el nuevo protocolo. A. Protocolo de transferencia de datos RTP Propósitos: III.RTP Y RTCP – Es ligero respecto a especificación e implementación. – Flexible en el sentido de que proporciona mecanismos. RTP, protocolo de transporte en tiempo real, – Neutral al protocolo: funciona sobre UDP/IP, ST-II, proporciona funciones para redes de extremo a extremo – IPX, ATM, etc. adecuadas para aplicaciones que transmiten datos en tiempo real, como audio, vídeo, o datos provenientes de una – Escalable. simulación, sobre redes unicast o multicast. El transporte de – Separa control y datos. datos es acompañado por un protocolo de control (RTCP) – Y es seguro: soporta cifrado y posibilidad de que permite monitorizar el envío de datos de forma autenticación. escalable en redes multicast. Funciones: RTP y RTCP (en la capa de aplicación) han sido – Segmentación y composición hecha por UDP (o diseñados para ser independientes de las capas de transporte similar). y red sobre las que funcionen. RTP corre normalmente – Resecuenciación (si es necesaria). sobre UDP para hacer uso de sus servicios de – Detección de perdidas para poder estimar la calidad. multiplexación y detección de errores. Sin embargo, RTP – Sincronización entre flujos (sincronización de labios puede ser usado sobre otros protocolos de transporte y de red, incluso IPv6. Todo esto queda recogido en la figura 1. entre audio y vídeo y control de retrasos). – Realimentación de la calidad de servicio y adaptación Figura 1. Posibles protocolos bajo RTP y RTCP. de la calidad. – Identificación de la fuente (emisor). Mezcladores (mixers): Combinan varios flujos en uno nuevo con una codificación nueva. Aparecen como una nueva fuente, con su propio identificador y usan un nuevo SSRC. Se pueden usar en redes con un ancho de banda reducido (como las conexiones vía módem). Un mezclador puede cambiar el formato de los datos (codificación) y combinar flujos a la vez. Y encontramos un ejemplo en la figura 2 (derecha) donde se mezclan dos flujos GSM en uno nuevo.
  • 3. Traductores (translators): comprobar en la figura 3. Se trata de un mecanismo Trabajan con un único flujo multimedia y pueden para implementaciones específicas o nuevos formatos cambiar la codificación de este (por razones de ancho de de payload que requieran de más información banda) o cambiar el protocolo usado (para cortafuegos). adicional en la cabecera del paquete RTP. Esto permite Además, los datos pueden pasar a través de un traductor y que una implementación que no soporte dicha quedar intactos. extensión pueda trabajar con parte de la información del paquete. A diferencia de los mezcladores, se mantiene la fuente Se puede ver en detalle en la sección 5.3.1 de [3]. (SSRC). Se puede apreciar un ejemplo en la figura 2 (izquierda) donde el flujo DVI4 se traduce a GSM; y el L16 – CSRC Count (CC). Indica el número de fuentes que también. contribuyen. – Marker (M). La interpretación exacta de este bit queda establecida por los perfiles (profiles). Se usa para notificar de eventos significativos como un cambio de cámara (frame boundaries). Un perfil puede añadir más bits de marcas o decir que este no es un bit de marca cambiando el tamaño del siguiente campo. – Payload type (PT): Identifica el formato del payload, o Figura 2. (Izquierda) Traductor. (Derecha) Mezclador. método de codificación del audio/vídeo. Puede cambiar durante la sesión, pero no hay que usarlo para multiplexar varios flujos multimedia. Cabecera del paquete: Por último, un receptor debe de ignorar los paquetes La cabecera de un paquete RTP esta formada por los con un PT que no entiende. siguiente campos: – Sequence number. Este campo se incrementa en una unidad para cada paquete RTP que es enviado. Y le sirve al receptor para detectar pérdidas de paquetes si encuentra saltos, o para reordenar la secuencia de paquetes. El valor inicial debe de ser aleatorio para dificultar ataques basados en conocimiento de texto plano, incluso si una fuente no cifra, porque más tarde un traductor puede hacerlo. – Timestamp: Refleja el instante de la muestra del primer octeto en un paquete de datos, esto es, una marca de tiempo. Ese instante debe ser calculado con un reloj Figura 3. Cabecera RTP. que incremente de forma monótona y lineal para permitir sincronización. – Version (V): Identifica la versión del protocolo. La El valor inicial debe de ser aleatorio, e incrementa en versión 2 corresponde al estándar actual, la versión 1 al función del tiempo cubierto en el contenido del primer borrador, y el valor 0 era usado por el protocolo paquete. implementado inicialmente en la herramienta “vat”. A diferencia del número de secuencia, varios paquetes RTP pueden tener el mismo timestamp si son imágenes – Padding (P): Se usa para algoritmos de cifrado que del mismo frame. requieren de un tamaño fijo de bloque. Si P es establecido, el paquete contiene uno o más octetos al – Syncronization source identifier (SSRC): Identifica a la final, que no forman parte del payload, el último de fuente con la que se sincroniza, también debe ser estos octetos indica cuantos octetos deben de ser elegido aleatoriamente con la intención de que no haya ignorados (incluido él). dos fuentes en la misma sesión que tengan el mismo identificador SSRC. Sin embargo, todas las – Extension (X): Si el bit de extensión esta activado, la implementaciones de RTP deben estar preparadas para cabecera debe de ir seguida de otra cabecera de detectar y resolver colisiones. extensión (header extension) como se puede
  • 4. Contributing source identifiers (CSRC): Identifica a – RR: Receiver report. Son generados por participantes las fuentes que contribuyen al payload. El número de que no son emisores. Contienen la calidad con la que identificadores viene dado por el campo CC y esta los datos han sido recibidos, número de paquetes comprendido entre 0 y 15. recibidos y perdidos, y timestamps para calcular el Los identificadores CSRC son insertados por los retraso entre emisor y receptor. mezcladores, usando los identificadores SSRC de las diferentes fuentes. Por ejemplo, para paquetes de – SR: Sender report. Estos son generados por los audio, los SSRC de los emisores que van a ser emisores de la sesión. Además de los datos RR, mezclados son listados en el paquete, permitiendo al incluye una sección de información del emisor con receptor identificar quien habla. información de sincronización, contadores acumulativos de paquetes y número de bytes enviados. – Payload. Hace referencia a los datos transportados por un paquete RTP. Por ejemplo muestras de audio o – SDES: Source description. Contiene información para vídeo comprimido. describir al emisor. Nombre, email, localización, Un perfil (profile) es un documento que define un CNAME (Canonical name). conjunto de codigos payload type y los respectivos formatos de codificación. También puede definir – BYE: Explicit leave. Indica el fin de una participación. extensiones o modificaciones para una clase particular de aplicaciones. Un perfil para audio y vídeo puede ser – APP: Extensions. Definidos por la aplicación (aún encontrado en el RFC 3551 [4]. ninguno). Por otro lado tenemos documentos que especifican el formato de un payload, los cuales definen como una Una descripción detallada del formato de cada paquete codificación concreta de audio o de vídeo tiene que ser se puede ver a partir de la sección 6.4.2 del RFC 3550 [3]. transportada en RTP. En la tabla 1 se presentan algunos de los payloads. Estándar Título RFC 2190 RTP Payload Format for H.263 Video Streams Figura 4. Tráfico RTCP. RFC 2250 RTP Payload Format for MPEG1/MPEG2 Video Estos paquetes de control nos ofrecen los siguientes RFC 3016 RTP Payload Format for MPEG-4 servicios: Audio/Visual Streams – Monitorización de la calidad de servicio y control de la RFC 3119 A More Loss-Tolerant RTP Payload Format for MP3 Audio congestión. Es la función principal de RTCP, RFC 3497 RTP Payload Format for Society of Motion proporcionando la calidad de la distribución de los Picture and Television Engineers (SMPTE) datos. Es útil tanto para emisores, como receptores, 292M Video como terceras partes. El emisor puede ajustar la RFC 4103 RTP Payload for Text Conversation transmisión en función del informe recibido; los RFC 4184 RTP Payload Format for AC-3 Audio receptores pueden determinar cuando la congestión es RFC 4587 RTP Payload Format for H.261 Video local, regional o global; y los administradores de red Streams pueden evaluar el rendimiento de la red en una Tabla 1. Ejemplos de payloads. distribución multicast. Por último, en una red, RTP y RTCP no tienen un – Identificación de la fuente. En los paquetes RTP los puerto fijo, pero se usa la siguiente regla: el puerto RTP es emisores son identificados por un número de 32 bits un número par, y el puerto RTCP es el siguiente número. generado aleatoriamente, que no son adecuados para las personas. Los paquetes RTCP SDES contienen B. Protocolo de control RTP información textual como el CNAME que se trata de un identificador único para un participante en la sesión. Es el protocolo de control diseñado para trabajar en Además pueden incluir nombre, número de teléfono y conjunción con RTP. En una sesión RTP, los participantes otra información. envían periódicamente paquetes RTCP con información referente a la calidad de los datos recibidos. – Sincronización entre flujos. Un RTCP sender report contiene una indicación de tiempo real y el Se definen cinco tipos de paquetes para reportar correspondiente timestamp del RTP. Esto puede usarse información de control: para sincronización entre flujos multimedia como sincronización entre labios y vídeo.
  • 5. IV.RTSP – Información de control escalable. Los paquetes RTCP El protocolo de streaming en tiempo real (RTSP) fue son enviados periódicamente por los participantes, y desarrollado por RealNetworks, Netscape Communications cuando el número de estos incrementa es necesario un y Columbia University y está publicado en el RFC 2326 [5], equilibrio entre tener información de control es un protocolo a nivel de aplicación para el envío de datos actualizada y limitar el tráfico de control. RTP limita el con propiedades de tiempo real que puede trabajar junto a tráfico de control a un máximo del 5% de todo el otros protocolos como RTP y RSVP. Proporciona un tráfico de la sesión. entorno para el envío de datos de tiempo real bajo demanda, como lo son el audio y el vídeo. Las fuentes de datos pueden incluir tanto datos en directo, como almacenados. Este C. Protocolo RSVP protocolo puede funcionar sobre UDP, UDP multicast y Protocolo de reservación de recursos (Resource TCP. ReSerVation Protocol). Permite que el receptor de datos El servidor proporciona el contenido multimedia, los acuerde una calidad de servicio determinada extremo a clientes solicitan continuamente datos al servidor; y RTSP extremo para el flujo. se comporta como un mando a distancia entre un cliente y el Las aplicaciones en tiempo real usan RSVP para servidor, que permite: reservar los recursos necesarios en routers durante la transmisión que se va a llevar a cabo. – Conseguir datos del servidor. El cliente le pide al En el diseño de RSVP han formado parte: Xerox Corp.'s servidor que configure una sesión para que le envíe los (PARC), MIT, y el Information Sciences Institute of datos solicitados. University of California (ISI). – Invitar a un servidor a una conferencia. En cuanto a su funcionamiento, el receptor precisa de – Añadir datos a una presentación existente. El cliente o calidad de servicio para su transferencia; y RSVP es el servidor pueden notificarle a la otra parte sobre responsable de las negociaciones de parámetros de datos que se encuentran disponibles. conexión con los routers, y de mantener la situación para proporcionar el servicio requerido. RTSP intenta dar los mismos servicios para audio y vídeo que HTTP hace para texto y gráficos; y ha sido diseñado intencionadamente para que tenga una sintaxis y D. Protocolos SRTP y SRTCP operaciones similares. Cada flujo esta identificado por una El Secure Real-time Transport Protocol o (SRTP) URL RTSP. Cada presentación y sus propiedades define un perfil de RTP, para proporcionar cifrado, multimedia quedan recogidas en un fichero de descripción autenticación de mensajes e integridad, además de de la presentación, y este fichero puede ser obtenido por los protección contra reenvíos de los datos RTP tanto en clientes vía HTTP, por email o cualquier otro medio. aplicaciones unicast como multicast. Fue desarrollado por un pequeño equipo del protocolo IP y expertos en Pero RTSP difiere de HTTP en algunos aspectos: criptografía de Cisco y Ericsson. Fue publicado por el IETF mientras que HTTP es un protocolo sin estados, un servidor como el RFC 3711 [9]. RTSP tiene que mantener los estados de las sesiones para hacer corresponder pedidos y flujos. Y además, HTTP es SRTP esta relacionado con el protocolo Secure RTCP un protocolo asimétrico donde el cliente hace peticiones y (SRTCP), que añade características de seguridad al el servidor responde, mientras que en RTSP ambos pueden protocolo de control. hacer peticiones. Utilizando esta nueva pareja de protocolos, cada una de Los servicios y operaciones soportados son los las características que proporcionan (cifrado, autenticación siguientes: e integridad) son opcionales; excepto en SRTCP que es – OPTIONS: El cliente o el servidor le comunican a la obligatoria la autenticación de los mensajes. otra parte que opciones aceptan. – DESCRIBE: El cliente consigue una descripción de un Para cifrar y descifrar flujos de datos (proporcionando contenido identificado por una URL RTSP. confidencialidad) hace uso del algoritmo simétrico de – ANNOUNCE: Actualiza la descripción en tiempo real. cifrado de bloques AES (también conocido como Rijndael). – SETUP: El cliente le pregunta al servidor donde conseguir los datos. Para la autenticación de mensajes y proteger la – PLAY: El cliente le pide al servidor que comience a integridad se utiliza el algoritmo HMAC-SHA1 (funciones mandarle los flujos configurados en SETUP. hash criptográficas en combinación con una clave secreta), – PAUSE: El cliente detiene el envío sin liberar los calculado sobre el payload y algunos campos de la recursos en el servidor. cabecera, como el número de secuencia.
  • 6. TEARDOWN: El cliente solicita al servidor que Inicialmente solo se podía compilar para Mac OS X, detenga el envío del flujo especificado y libere todos pero a día de hoy funciona sobre Linux, FreeBSD, Solaris, los recursos asociados a él. Tru-64 Unix, Mac OS 9 y Windows. – GET_PARAMETER: Consigue el valor de un parámetro de una presentación o flujo. VI.CONCLUSIONES – SET_PARAMETER: Establece el valor de un Hemos visto como ha evolucionado el transporte de parámetro de una presentación o flujo. contenidos multimedia en Internet, las empresas implicadas, – REDIRECT: El servidor informa al cliente de que debe estándares usados y algunas aplicaciones finales. conectarse al servidor indicado en la cabecera. – RECORD: El cliente comienza a grabar datos de la Gracias a estos estándares es posible la compatibilidad presentación. entre clientes y servidores de distintas plataformas y sistemas operativos. Las peticiones RTSP son enviadas normalmente por un Hemos pasado de usar la red telefónica para conectarse a canal independiente al canal de los datos. Estos últimos Internet, a usar esta red para telefonía IP o televisión por pueden ser transmitidos por otro tipo de conexión. Internet. Y a medio plazo podremos ver todas estas tecnologías funcionar sobre el protocolo IPv6 en las variantes unicast, V.IMPLEMENTACIONES multicast, y también anycast. Existen diferentes implementaciones de los protocolos vistos anteriormente, a nivel de hardware o de software; REFERENCIAS entre ellas podemos encontrar: [1] RTP: About RTP and the Audio-Video Transport Working Group http://www.cs.columbia.edu/~hgs/rtp/ A. Cámaras IP [2] rtsp.org: Real Time Streaming Protocol Information and Updates Podemos encontrar en el mercado cámaras de vídeo con http://www.rtsp.org un puerto RJ-45 o wireless y que implementan servidores [3] RFC 3550 “ RTP: A Transport Protocol for Real-Time Applications” RTP o RTSP. Por ejemplo, el modelo 210 de Axis [15], que http://tools.ietf.org/html/rfc3550 funciona con un sistema operativo empotrado Linux 2.4 y [4] RFC 3551 “RTP Profile for Audio and Video Conferences with soporta los protocolos RTP y RTSP entre otros. Minimal Control” http://tools.ietf.org/html/rfc3551 [5] RFC 2326 “Real Time Streaming Protocol (RTSP)” http://tools.ietf.org/html/rfc2326 [6] Formatos de audio y video http://www.monografias.com/trabajos17/formatos-audio/formatos- audio.shtml [7] Computer Makers to Announce Audio, Video, Data Standard http://www.nytimes.com/library/cyber/week/1014standards.html [8] Secure Real-time Transport Protocol http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol Figura 5. Cámara de red Axis 210 [9] RFC 3711 “The Secure Real-time Transport Protocol (SRTP)” http://tools.ietf.org/html/rfc3711 B. Java Media Framework [10] Real-Time Transport Protocol (RTP) Java Media Framework [16] (JMF) permite añadir http://www.cs.columbia.edu/~coms6181/slides/7/rtp.pdf audio, vídeo y otros contenidos con tiempo a aplicaciones y [11] Multimedia Over IP: RSVP, RTP, RTCP, RTSP applets hechos en Java. Pudiendo capturar, reproducir, http://www.cs.wustl.edu/~jain/cis788-97/ftp/ip_multimedia.pdf enviar y traducir múltiples formatos multimedia (AVI, [12] Real-time Transport Protocol MPEG, QuickTime, Sun Audio, etc). Esta API da soporte de http://www.lab.dit.upm.es/~labscom/almacen/sld/rtp.pdf RTP para clientes y servidores. Y recientemente se ha [13] RTP/RTCP and RTSP multimedia protocols for the Internet obtenido soporte para RTSP. http://planete.inrialpes.fr/~roca/doc/ecole_ete_pdms01_v6.pdf [14] Axis Communications C. Darwin Streaming Server [15] http://www.axis.com/ Darwin Streaming Server [17] es el primer servidor de [16] Java Media Framework API (JMF) streaming de código abierto que soporta RTP y RTSP con http://java.sun.com/products/java-media/jmf/ variedad de formatos entre los que se encuentran H.264, [17] Apple Darwin Streaming Server MPEG-4 y 3GPP. Fue desarrollado por Apple, es el http://developer.apple.com/opensource/server/streaming/index.html equivalente al QuickTime Streaming Server, y se basa en su código fuente. [18] Darwin Streaming Server http://en.wikipedia.org/wiki/Darwin_Streaming_Server