Documentos de Académico
Documentos de Profesional
Documentos de Cultura
transmisión.
Resumen—En este trabajo se da una breve descripción de las El protocolo TCP soluciona las consecuencias de la pérdida
principales características de los mecanismos de corrección de de paquetes a través de retransmisiones de los mismos, lo cual
errores FEC (Forward Error Correction) y del protocolo de requiere un mecanismo de notificación de recepción: cuando el
transmisión de datos multimedia RTP (Real-time Transport
Protocol). Estos dos ámbitos se tratan por separado y en conjunto,
emisor no recibe reconocimientos en un cierto tiempo, reenvía
discutiendo la aplicación de técnicas FEC sobre RTP. Además, se los paquetes implicados. De nuevo, esta característica resulta
describe la implementación de un simulador que modela una red inviable en una transmisión de datos multimedia en tiempo
imperfecta (con errores de transmisión) sobre la que se evalúa la real, ya que el retardo adicional de una retransmisión
eficacia de las técnicas de corrección de errores, utilizando excedería muy probablemente las restricciones temporales
diferentes variantes de FEC y múltiples tasas de error. preestablecidas. En este sentido, las técnicas de inclusión de
redundancia son las que sustituyen a las retransmisiones. Las
técnicas FEC, descritas en la siguiente sección, son las más
I. INTRODUCCIÓN
ampliamente utilizadas para este propósito, hasta el punto de
datos redundantes que permiten al receptor detectar y corregir codificadores algebraicos como convolucionales. Sin embargo,
errores sin la necesidad de solicitar de nuevo los datos. La en cualquier caso, la codificación global se procesa en
principal ventaja de este mecanismo reside en la elusión de bloques, cuyo tamaño viene dictado por un codificador
retransmisiones, a costa de incrementar el volumen de datos intermediario (interleaver), que separa a cada uno de los
enviados (y por tanto el ancho de banda necesario). componentes.
Las técnicas FEC son una alternativa a la corrección de Los bits de información son codificados por el primer
errores en medios donde la retransmisión es demasiado componente codificador directamente, mientras que el segundo
costosa, como por ejemplo aplicaciones en tiempo real, o componente codificador opera con una versión desordenada de
imposible, como soportes físicos de almacenamiento (CD, ellos. Con ello producimos los bits de paridad del primer y el
memorias FLASH, etc). segundo codificador. La señal a enviar por el canal estará
El volumen de información redundante y su disposición formada por los bits sistemáticos que coinciden con los de
determina el código FEC, que puede variar según las información y los bits de paridad de ambos componentes
condiciones del medio de transmisión. Asimismo, el código codificadores.
FEC determina el número máximo de errores que se pueden En recepción, la turbo decodificación iterativa está formada
corregir. por dos componentes decodificadores convolucionales en
paralelo que decodifican los bits recibidos por su
1) Evolución de técnicas FEC correspondiente componente codificador. El primer
La primera técnica FEC que se publicó [1] utilizaba componente decodificador produce además cierta información
codificación algebraica. En este caso, el codificador interpone no relacionada con los bits de entrada, que permite al segundo
bits de paridad entre la secuencia de datos utilizando un componente decodificar los mismos bits recibidos con una tasa
algoritmo algebraico determinado. de error menor. El proceso se reitera hasta que se obtiene la
Una técnica FEC posterior fue la conocida como tasa de error deseada, teniendo en cuenta que por cada
codificación convolucional [2], que trabaja sobre flujos de iteración se aumenta el grado de complejidad del turbo
datos, en lugar de hacerlo sobre bloques. La principal decodificador convolucional.
característica de estos códigos FEC es que la codificación de El método de la turbo codificación ha pasado a formar parte
una secuencia de bits está altamente influenciada por bits de estándares, como UTRA (UMTS Terrestrial Radio Access),
anteriores, por lo que el algoritmo de decodificación los tiene debido a su gran potencia de recuperación de errores en
en cuenta para estimar la secuencia más probable de bits comunicaciones.
correctos a la hora de recomponer la secuencia original.
Originalmente, la decodificación convolucional tenía el
B. Real-Time Transport Protocol (RTP)
inconveniente de ser espacialmente costosa, y generalmente
ocasionaba desbordamiento de buffers en implementaciones El protocolo RTP define un formato estándar de paquetes
deficientes. para transmitir audio y vídeo en Internet. Fue publicado
Más tarde, A. Viterbi desarrolló una técnica de originalmente en el RFC 1889 y, más tarde, en el RFC 3550
decodificación convolucional [3] que supuso a partir de [5], dejando obsoleta la primera versión. El estándar define el
entonces el estándar de decodificación FEC. Este algoritmo uso de RTP bien con conexiones TCP en un puerto arbitrario,
compara los bits recibidos con los bits que podrían haberse o bien con conexiones UDP en puertos pares. En este último
generado para cada posible transición desde estados previos caso, el siguiente puerto impar se utiliza para comunicaciones
del decodificador. Basado en métricas de similitud, se escoge de control con RTCP (RTP Control Protocol).
la secuencia más cercana a que podría ser la original, la cual se Inicialmente, RTP se diseñó como un protocolo multicast,
devuelve como flujo de bits decodificado. El algoritmo de pero ha acabado utilizándose en muchas aplicaciones unicast,
Viterbi, basado en programación dinámica, tiene la ventaja de principalmente en streaming de audio/vídeo (junto con el
hacer un uso eficiente de la memoria utilizada, desechando protocolo RTSP) y videoconferencias. Las aplicaciones que
flujos de bits anteriores que tienen poca probabilidad de ser utilizan RTP son poco sensibles a la pérdida de paquetes, pero
reutilizados. sí lo son a los retardos de la comunicación, por lo que la
implementación de RTP sobre el protocolo de transporte UDP
2) Turbo-Coding es una opción más sensata que sobre TCP.
En 1993, C. Berrou desarrolló la técnica FEC más potente Los paquetes RTP dan información sobre el tipo de
hasta el momento, llamada turbo-coding [4]. Con esta técnica, contenido multimedia que se está transmitiendo, números de
los sistemas de comunicación pueden alcanzar el límite secuencia de paquetes, marca de tiempo real que representa el
máximo teórico de la capacidad de los canales, caracterizada instante de presentación de los datos (time-stamping) y
anteriormente por Shannon, y considerada inalcanzable monitorización de entrega.
durante mucho tiempo. En sí mismo, el protocolo RTP no garantiza calidad de
Una de las características de tubo-coding es que el servicio, entrega de paquetes a tiempo u ordenación de
codificador debe incluir combinaciones de, como mínimo, dos paquetes a la llegada. Sin embargo, el protocolo asociado
codificadores FEC. Entre ellos se pueden encontrar tanto RTCP da información de la calidad de recepción, con lo que la
MÁSTER EN INGENIERÍA DE COMPUTADORES – TRANSMISIÓN DE DATOS MULTIMEDIA 3
tasa de transmisión de datos puede ajustarse a los parámetros servidor, utilizando órdenes similares al VCR (play, pause…).
de la red monitorizada. También soporta el acceso basado en tiempo a los ficheros
A continuación se pasa a describir brevemente los multimedia del servidor.
protocolos RTCP y RTSP, ambos estrechamente ligados a Las órdenes RTSP tienen una sintaxis similar a HTTP, con
RTP: la principal diferencia de que el servidor RTSP mantiene
información de sesión. Para ello, existe un mecanismo de
1) Real Time Control Protocol (RTCP) asignación de identificadores de sesión, que permite cerrar y
El protocolo RTCP [5] está ligado a cualquier conexión abrir conexiones conservando información entre ellas, incluso
RTP, y da información sobre la utilización de la red por la que eludiendo el protocolo TCP. Las órdenes principales de RTSP
se transmiten los datos multimedia. Los paquetes RTCP no son las siguientes:
transportan datos en sí mismos, sino que se envían • DESCRIBE: Una petición de este tipo incluye una URL
periódicamente a todos los participantes de una sesión de (rtp://…) y obtiene como respuesta la descripción del
streaming multimedia, de forma que todos obtengan pistas contenido asociado.
sobre la calidad del servicio que la red está proporcionando a • SETUP: Especifica cómo se transportarán los datos que
sus demandas. se enviarán. Para ello, se incluye típicamente el puerto
RTCP recoge estadísticas de una conexión multimedia, tales local de recepción RTP y metainfomación RTCP. La
como el número de bytes enviados, paquetes perdidos, jitter respuesta del servidor confirma los parámetros y añade
(variación del retardo), etc. Las aplicaciones de envío pueden otros, como el puerto RTP del servidor.
hacer uso de esta información ajustando la calidad de los datos • PLAY: Comienza la reproducción del medio
enviados, bien cambiando la resolución de las imágenes o la especificado. Esta orden puede desencadenar la
tasa de bits del audio, o bien ajustando los parámetros de transmisión de uno o más flujos multimedia.
compresión del codificador. • PAUSE: Para temporalmente la reproducción,
reanudándola con la orden PLAY siguiente.
2) Real Time Streaming Protocol (RTSP) • RECORD: Utilizada para enviar un flujo al servidor, de
El protocolo RTSP, publicado en el RFC 2326 [6], se utiliza forma que éste lo almacene.
asimismo generalmente junto con RTP, y permite que los • TEARDOWN: Terminación de la sesión actual. Para todos
clientes controlen el flujo de datos multimedia generado por el los flujos asociados a esta sesión y libera los datos de la
sesión en el servidor. que permite evaluar la eficacia de las técnicas FEC a la hora
de corregir errores sobre un flujo de datos RTSP real. Con este
objetivo, se ha seguido la siguiente metodología:
C. FEC sobre RTP
El RFC 2733 [7] propone la aplicación de técnicas FEC • En primer lugar, se ha capturado tráfico RTSP real.
sobre el protocolo RTP. Este protocolo está destinado a Para ello, se ha descargado el software libre
funcionar sobre cualquier tipo de redes IP, incluyendo las QuickTime, reproductor de vídeo de Apple, y se ha
redes de área amplia (WAN). Es en estas redes donde existe introducido la siguiente URL, que hace referencia a un
un gran riesgo de pérdida de paquetes, debido principalmente flujo de datos RTSP: rtsp://stsv01.st.ehu.es/MSR.mov
a posibles congestiones de notos intermedios. Por otra parte, la
• A continuación, hemos descargado el software, también
transmisión de datos multimedia (por ejemplo, voz) tiene
libre, Ethereal, una aplicación que permite capturar,
restricciones temporales que no permiten solicitud de
analizar y clasificar el tráfico que atraviesa la tarjeta de
retransmisión en caso de pérdidas.
red local. Con Ethereal, seleccionamos el tráfico RTSP
RTP es, por tanto, un protocolo muy susceptible de
entrante, correspondiente al vídeo recibido con
incorporar técnicas FEC, que añaden redundancia al flujo de
QuickTime, y lo volcamos en un fichero.
datos enviado, compensando así la imposibilidad de aplicar el
• Este fichero sirve como entrada a la herramienta
mecanismo de reenvíos.
construida, que simula tres elementos principales: i) un
La aplicación de FEC sobre RTP consiste en escoger un
emisor de datos con capacidad de incluir redundancia
conjunto de paquetes RTP y combinarlos utilizando la
FEC, ii) una red imperfecta que introduce errores de
operación xor. Para ello, se deben extender los datos de los
transmisión y iii) un receptor capaz de reconstruir los
paquetes RTP originales de forma que alcancen una longitud
paquetes recibidos, siempre que la información FEC lo
igual a la del paquete más largos. Las cabeceras de los
permita.
paquetes RTP se combinan de forma selectiva, aunque también
utilizando la operación xor. Este proceso queda detallado en la
El objetivo de este estudio es analizar varios códigos FEC
sección 6 del RFC.
actuando sobre datos RTSP que se transmiten sobre una red
El estándar deja la libertad de escoger un código FEC libre
cuya tasa de fallos puede especificarse en cada experimento.
según la implementación. Se llama código a las combinaciones
Variando la redundancia FEC y la frecuencia con que ocurren
específicas de paquetes RTP que se utilizan para construir la
los errores en el medio de transmisión, mediremos el grado de
secuencia de paquetes FEC. El código FEC puede variar
pérdida de datos en forma de bytes erróneos y paquetes
incluso dinámicamente, adaptándose a características variables
erróneos.
del medio de transmisión. Para la especificar qué paquetes
A continuación, se detalla este proceso y se describe la
RTP están asociados a un paquete FEC, este último incorpora
herramienta desarrollada, así como los resultados obtenidos a
una cabecera de 24 bits, de los cuales, el bit i indica que el
partir de ella.
paquete RTP con número de secuencia N+i se utilizó en la
operación xor, siendo N el número de secuencia del propio
paquete FEC. A. Captura de tráfico RTSP
En este RFC, se propone enviar el flujo de paquetes FEC de Para generar tráfico RTSP entrante, escogemos una URL
forma independiente respecto al flujo RTP original, con la aleatoria, obtenida en Google, y la introducimos en
ventaja de que los usuarios que no implementen FEC sean QuickTime. Por otra parte, iniciamos una captura de tráfico
capaces de ignorar la información redundante y conservar la con Ethereal, como se muestra en la Figura 1.
original. Sin embargo, el flujo de datos original puede Adicionalmente, Ethereal permite filtrar el tráfico
reconstruirse únicamente a partir de paquetes FEC, evitando el capturado. Al encontrarnos en una máquina con más
envío de los paquetes RTP, pero obligando al receptor a aplicaciones abiertas que comparten tarjeta de red, e incluso
implementar este estándar. una misma aplicación generando diferentes tipos de tráfico,
Las diferentes secciones del RFC 2733 enumeran la debemos seleccionar únicamente el tráfico RTSP. Esta acción
nomenclatura utilizada a lo largo de la especificación, se consigue introduciendo en el campo Filter la siguiente
describen la metodología de incorporación de redundancia, cadena:
incorporan una serie de ejemplos de códigos FEC y fijan el ip dst eq 192.168.123.100 and rtsp
formato de los paquetes FEC. Adicionalmente, las secciones 9 De esta forma, indicamos que sólo queremos visualizar
y 10 añaden un posible algoritmo a implementar en el receptor tráfico que tenga como IP destino la de nuestra máquina, y que
(incluyendo el código en C) y dan un ejemplo de sesión RTP además sea tráfico RTSP. El resultado de la aplicación del
en el que se aplica el protocolo especificado en sus secciones filtro lo almacenamos en un nuevo fichero, de nombre
anteriores. stream.cap.
Una vez disponemos del flujo de datos sobre el que
III. ENTORNO EXPERIMENTAL experimentar con técnicas FEC, debemos volcarlo en un
fichero cuyo formato sea analizable por nuestra aplicación.
Para este trabajo, se ha perfilado un entorno experimental
MÁSTER EN INGENIERÍA DE COMPUTADORES – TRANSMISIÓN DE DATOS MULTIMEDIA 5
RTSP/FEC no afectado por ningún error que permita 100%) para paliar completamente el problema. Sin embargo,
reconstruir un determinado paquete RTSP original. un aumento de redundancia se traduce en una disminución
La tasa de error de 10-2 es muy agresiva, ya que provoca una agresiva del número de errores observados por el receptor.
alta probabilidad de que incluso caigan varios errores en un Para tasas de error de 10-3, redundancias razonables
mismo paquete. En este caso, la redundancia FEC no obtiene simplemente reducen suavemente el total de errores
prácticamente ningún beneficio, puesto que en todos los casos percibidos, mientras que una tasa de 10-2 se traduce en una
se obtiene prácticamente un 1% de bytes perdidos (igual a la transmisión irreparable mediante FEC.
tasa de error). Como trabajo futuro, se puede proponer la extensión de la
herramienta diseñada para modelar los retardos de los
2) Porcentaje de paquetes perdidos: paquetes, así como el jitter dependiente de los diferentes tipos
En la primera de las cuatro gráficas de la Figura 3, podemos de redes. Con estas ampliaciones podría evaluarse la forma en
realizar la misma observación que en la monitorización del que afectan las citadas variables a un flujo de datos
porcentaje de bytes perdidos: para tasas de errores pequeñas, multimedia, como por ejemplo, la medida en que un jitter
el código FEC 1 ya soluciona todos los problemas de determinado afecta al retardo mínimo que deben sufrir los
transmisión. paquetes (y por tanto el tamaño de los buffers en el receptor)
La red con tasa de fallos de 10-3 es la que muestra más dependiendo también del tamaño de los paquetes. En este y
beneficios con un aumento de la redundancia FEC. otros estudios, la captura de los datos multimedia realizada
Observando la gráfica correspondiente, podemos ver que, si no mediante Ethereal podría ser reutilizable.
se introdujera ninguna técnica de recuperación de errores, los
paquetes perdidos ascenderían al 42%. Sin embargo, una
redundancia FEC del 100% es capaz de disminuir el REFERENCIAS
porcentaje de paquetes perdidos al 17%.
Por último, la última de las cuatro gráficas no aporta [1] C. E. Shannon. “A Mathematical Theory of Communication”. The Bell
información adicional respecto a las cuatro anteriores. De ella System Technical Journal, Vol. 27, pp. 379–423, 623–656, July,
se desprende de nuevo que una tasa de errores de 10-2 es October, 1948.
[2] P. Elias, “Coding for noisy channels”, IRE Convention Record, pt.4,
demasiado alta como para compensarla con técnicas FEC. pp.37-47, 1955
[3] Andrew J. Viterbi. Error bounds for convolutional codes and an
3) Conclusión asymptotically optimum decoding algorithm. IEEE Transactions on
Information Theory 13(2):260–269, April 1967.
De entre las dos métricas utilizadas, la segunda de ellas [4] Berrou C., Glavieux A., and Thitimajshima P. (1993). “Near Shannon
(porcentaje de paquetes perdidos) es la que tiene sentido en limit error-correcting coding and decoding: Turbo-Codes,” ICC’93,
una transmisión de datos convencionales, por ejemplo Geneva, Switzerland, pp. 1064-1070, May.
[5] RFC 1889 and 3550 - RTP: A Transport Protocol for Real-Time
ficheros. En este caso, un paquete erróneo deja de superar la Applications.
prueba del checksum y es descartado por el propio protocolo [6] RFC 2326 - Real Time Streaming Protocol (RTSP).
TCP/IP. [7] RFC 2733 - An RTP Payload Format for Generic Forward Error
Sin embargo, en una transmisión de datos multimedia, Correction.
IV. CONCLUSIONES
En este trabajo, se ha construido una herramienta de
simulación de redes con diferentes tasas de errores y se ha
estudiado la influencia que tiene la aplicación de diferentes
códigos FEC sobre cada una de ellas.
Los resultados han demostrado que, para redes con una tasa
de errores de 10-5, un código FEC de baja redundancia
soluciona los errores de transmisión en su totalidad. Como
término medio, redes con tasa de error de 10-4 necesitan
aumentar en gran medida la redundancia (incluso superando el