Skip to content

S10: Comunicación multimedia (I)

Juan Gonzalez-Gomez edited this page May 3, 2021 · 4 revisions

Sesión 10: Comunicación Multimedia (I)

  • Tiempo: 2h (50 + 50min)
  • Fecha: Martes, 4-Mayo-2021
  • Objetivos de la sesión:
    • Aprender los principios básicos para poder transmitir información multimedia por Internet
    • Playout time

Contenido

Introducción

En las próximas sesiones vamos a trabajar con este escenario: Un emisor emite paquetes multimedia a través de internet hacia un receptor. Los datos multimedia pueden ser cualquiera, aunque en los ejemplos utilizaremos normalmente audio

Sin embargo, internet es una red especializada en el tráfico de datos. Entonces, el problema a resolver es el siguiente: ¿Cómo enviar tráfico multimedia en redes concebidas para datos? ¿Qué alternativas tenemos?

Aplicaciones multimedia

Las aplicaciones multimedia son especiales. Tienen unos requerimentos muy distintos al del tráfico de datos

Tráfico multimedia vs tráfico de datos

El tráfico multimedia está pensado para enviarse por redes multimedia, que tienen las siguientes características:

  • No se pueden congestionar. Típicamente realizan un control de la admisión. Si todos los recursos están ocupados NO permiten acceder a más usuarios.
  • Garantizan la calidad. Una vez que estás dentro, tienen garantizada una calidad mínima

Internet es una red especializada en el tráfico de datos, y como tal, NO tiene los mecanismos que requieren las aplicaciones multimedia. En internet ocurre que:

  • Se puede congestionar. Implica que los datos llegarán, pero les llevará más tiempo
  • No se garantiza la calidad. El ancho de banda utilizable depende de cuánto tráfico haya. No está garantizado un mínimo de ancho de banda
  • No tiene control de la admisión. Cualquier aplicación puede enviar paquetes

¿Cómo hacemos entonces para enviar tráfico multimedia por Internet? El enfoque que se sigue es trabajar a nivel de aplicación. Se adaptan las aplicaciones para incorporar los mecanismos posibles para minimizar el impacto de que internet sea una red de datos

Se trabaja a nivel de aplicación porque no podemos cambiar la arquitectura de internet (aunque gradualmente se está haciendo)

Tipos de aplicaciones multimedia

Las aplicaciones multimedia las dividimos en dos grandes grupos:

  • Aplicaciones interactivas: (Video conferencias, voz sobre IP, etc...) Son bidireccionales. Los retardos tiene que ser muy pequeños. Son las más restricticas. Requesito de diseño: El retardo debe cumplir la siguiente condición: 150ms < Retardo < 450ms. NO puede haber interrupciones

  • Streamig: Reproducción en el receptor los contenidos multimedia emitidos desde el emisor. Los requisitos no son tan estrictos. Requisito de diseño: 1s < Retardo < 10s. No puede haber interrupciones

Aplicación Interactiva Streaming
Requisito diseño: 150ms < Retardo < 450ms 1s < Retardo < 10s
Interrupciones NO NO

Retardo: Tiempo desde que se emite hasta que se recibe. Está compuesto por el retardo de propagación (fijo) más el retardo de encolamiento (variable)

Internet

Internet es una red diseñada para datos, que se modela como un modelo de colas

Modelo Best Effort

Internet es una red de datos, que sigue el model "Best effort". Esto significa que se hace el mejor esfuerzo posible para entregar los paquetes, pero NO se garantiza la calidad del servicio. Es decir, que el ancho de banda varía. Por ejemplo, la velocidad de descarga de un fichero es relativa. A veces irá rápido, otras más lenta, aunque tengamos una conexión muy rápida con nuestro proveedor

Si hay mucho tráfico, hay congestión y la calidad baja. No hay mecanismos de limitación del número de usuarios

Internet se modela como una red de colas. Es importante entender esto para compronder la naturaleza del los problemas con el tráfico multimedia

Modelo de colas

Internet se modela como una red de colas. Una cola es una zona de almacenamiento temporal donde se van guardando los paquetes que llegan, hasta que se puedan enviar al siguiente nodo. Cada nodo intermdio tiene una cola asociada a cada una de sus interfaces de salida. En un momento determinado, en un nodo intermdeio habrá paquetes en espera y espacios libres para recibir más paquetes

Pero puede ocurrir que un nodo reciba muchos paquetes y su cola se llene. En ese caso no hay espacio para almacer más. Por tanto, los paquetes que lleguen NO se almacenarán y se descartarán (se perderán). Esta es una de las razones por las que internet "pierde paquetes"

Así, cada nodo intermedio funciona de la siguiente manera:

  • Los paquetes que recibe los va metiendo en la cola de salida
  • Hay una cola por cada interfaz de salida
  • Si la cola está llena, los paquetes que llegan se descartan (y por tanto se pierden)

En esta figura vemos el estado de 4 nodos intermedios en un momento determinado. El nodo 4 tiene su cola llena, por lo que descartará los paquetes que lleguen. El nodo 1 está conectado a dos nodos, por lo que tiene dos colas de salida. Una de ellas está vacía, la otra tiene cuatro paquetes esperando

El tiempo desde que llega un paquete hasta que se envía se llama tiempo de encolamiento. Este tiempo depende del estado de las colas. Los paquetes llegarán con retardos diferentes debido al tiempo de encolamiento, y también porque van por rutas diferentes

Jitter

Vamos a estudiar este modelo de colas de internet, de una forma intuitiva. Supondremos que hay dos nodos intermedios, cada uno con su cola. Desde el emisor se envía el paquete A, ¿Cuanto tiempo tarda en llegar al receptor?

La respuesta es: DEPENDE. No tendremos en cuenta el retardo de propagación ni el de transmisión. Vamos a pensarlo según el tamaño de las colas. Usaremos como unidad de tiempo relativa el número de paquetes que hay en la cola. Cada paquete introduce una unidad de retardo. Así, el retardo en la primer cola es de 3 (porque hay 3 paquetes esperando) y en la segunda de 1 (hay 1 paquete esperando). Por tanto, nuestro paquete tardaría 4 unidades. Tiene un retardo de 4 unidades, debido a los tiempo de espera en la cola

Ahora suponemos que se envía un paquete exactamente igual, del mismo tamaño, pero ahora las colas tiene otras logintudes

La cola del nodo 1 está vacía. Así el retardo de este paquete será de 1 unidad. Por tanto, esta es la situación. El emisor ha enviado el mismo paquete al receptor, en la misma red. Pero una vez ha tardado 4 unidades y otra vez 1. ¡¡El retardo es variable!!

Esta fluctuación en el retardo de los paquetes se denomina Jitter. Y esta es la causa de los problemas de transmisión multimedia en Internet

El modelo es similar al del tráfico de coches en una ciudad. Si vas de tu casa al trabajo en coche, todas las mañanas, y yendo siempre a la misma velocidad máxima, ¿tardarías todos los días exactamente lo mismo en ellegar?. No. Unas veces te tocará un semáforo en rojo, otras no. Algunas veces habrá más coches. En algunos cruces o rotandas a veces irás muy rápido pero otras tendrás muchos coches delante y tardarás en cruzarlas. ES MUY VARIABLE. Lo único que puedes garantizar es que más o menos, en condiciones normales, tardas aproximadamente 20 minutos. A veces tardas 5 minutos más, otras 5 minutos menos. Hay una orquilla en tu retardo

Analizando los problemas

Haremos ejemplos para enteder bien la naturaleza de los problemas. Partimos de un escenario en el que hay un emisor y un receptor multimedia:

  • El emisor está constantemente enviando paquetes (tasa constante)
  • Todos los paquetes son iguales, de longitud fija (por ejemplo 20ms)
  • Queremos que la reproducción en destino sea continua (y no a saltos)
  • Supondremos que el retardo de propagación es 0 (los bytes llegan instantáneamente de un nodo a otro)

Ejemplo 1: Transmisión de un paquete

Tenemos la siguiente red:

El emisor envía un paquete al receptor, siguiendo la ruta que pasa por los nodos 1 y 3. Los tiempo de encolamiento en 1 y 3 son de 5ms (el mismo en ambos). Hacer el diagrama de tiempos de la comunicación y calcular el retardo

Ejercicio 1

Suponer que el paquete ahora va por la ruta 1 -> 2 -> 3, que los tiempos de encolamiento en 1 y 3 son iguales que en el ejemplo y el tiempo de encolamiento en 2 es de 1 ms. Hacer el diagrama de tiempos y calcular el nuevo retardo

Ejemplo 2: Transmisión de dos paquetes

La red que tenemos ahora es esta. Sólo hay un nodo intermedio entre el emisor y el receptor

El emisor envía dos paquetes seguidos y el tiempo de encolamiento en el nodo intermedio es de 2ms para ambos. Hacer el diagrama de tiempos y calcular el retardo

Los dos paquetes se reciben uno detras de otro (tasa constante). Esto es lo que ocurriría en una red determinista, en el que la ruta de los paquetes es conocida y los recursos se asignan en el inicio. La calidad queda garantizada

Sin embargo, NO es el caso de Internet, donde los tiempos de encolamiento son variables y no deterministas

Ejemplo 3: Transmisión de 2 paquetes. Diferentes tiempos de encolamiento

Veremos lo que sucede si ahora los tiempos de encolamiento en el nodo intermedio son diferentes. Supongamos que es de 1ms para el paquete 1 y de 2ms para el 2 (Antes de llegar el 2 al nodo, hay un pico de tráfico en ese nodo, y la cola ha aumentado)

Los dos paquetes salen uno detrás del otro en el receptor, pero debido a los tiempos de encolamiento variables NO llegan seguidos, sino que hay una interrupción entre medias. La reproducción en destino no puede ser continua. ¿Qué podemos hacer?

Tiempo de Playout

Se define el tiempo de playout (Playout time) como el que transcurre desde que se envía el primer paquete multimedia hasta que empieza su reproducción en el destino. El contenido multimedia tiene la característica de que una vez que se comienza su reproducción, hay que evitar los parones: todo debe fluir. Por ello hay que calcular adecuadamente este tiempo de playout para garantizar la máxima calidad

En el caso del ejemplo 2, el tiempo mínimo de playout es el mostrado en la siguiente figura:

Nada más recibir el paquete 1 se puede empezar a reproducir, dado que el segundo se está recibiendo de forma continua: no hay saltos. Este es el ejemplo de una red determinista, donde la calidad se puede garantizar

En una red como internet, los tiempos de encolamiento difieren, como en el ejemplo 3. En esos casos los paquetes no llegan de forma continua al receptor, por lo que la reproducción NO puede empezar en cuanto se reciba el paquete 1, sino que hay que almacenarno en un buffer hasta que se puede garantizar una reproducción continua. En este ejemplo se empieza a reproducir al comienzo de la recepción del paquete 2 (sería el tiempo de playout mínimo)

Si nos fijamos en la línea de reproducción, no hay saltos. Hemos conseguido solucionar el problema, introduciendo un buffer para retrasar la reproducción

Ejercicios

  • Ejercicio 2: Se tiene una red en la que entre el emisor y el receptor sólo hay un nodo. Se envían dos paquetes. Los paquetes son de 20ms. El tiempo de encolamiento del paquete 1 es de 2ms. El del paquete 2 de 30ms. ¿Cual es el tiempo de playout mínimo?

  • Ejercicio 3: Mismo escenario anterior. Los paquetes son de 10ms. El tiempo de encolamiento del paquete 1 es de 5ms y el del segundo de 20ms. ¿Cuál es el playout mínimo? Si tienes que programar la aplicación que se encargue de la reproducción, ¿Qué tiempo real de playout usarías?

Descargas

El rincón Friki

TODO

Autor

Creditos

Licencia

Enlaces

Clone this wiki locally