Skip to content

S12: Arquitecturas de red para Multimedia

Juan Gonzalez-Gomez edited this page Apr 8, 2019 · 35 revisions

Sesión 12: Comunicación multimedia (II)

  • Tiempo: 50min + 50min
  • Fecha: Martes, 9 de Abril
  • Objetivos:
    • Mostrar las posibilidades a nivel de Arquitectura para las aplicaciones multimedias
    • Mostrar el funcionamiento de dos protocolos concretos:
      • WebRTC: Aplicaciones interactivas
      • MPEG-DASH: Streaming adaptativo

Contenido

Introducción

La información que está disponible en esta wiki es una guía para el profesor. Los contenidos se desarrollan más a fondo en las clases presenciales

Arquitectura Cliente-servidor

  • Ya la conocemos muy bien
  • Cliente envía solicitudes y obtiene respuestas
  • Web: Clientes independientes. No hay comunicación entre ellos
  • Arquitectura de protocolos: IP/TCP/HTTP
  • ¿Cómo haríamos una aplicación de un chat interactivo entre varios clientes?

Aplicación de chat interactivo

  • Es una de las prácticas que se hacen en la asignatura de cuarto curso: LTAW
  • Los clientes no son independientes: El servidor los relaciona
  • Aplicaciones en clientes: un javascript corriendo en el navegador
  • Comunicación por WebSockets
  • Arquitectura de protocolos: IP/TCP/HTTP (la misma que antes)
  • En las aplicaciones multimedia interactivas nos interesaría tener comunicación directa entre dos clientes, sin pasar por el servidor

Arquitectura de igual a igual (peer-to-peer)

  • Las dos aplicaciones intercambian información directamente (sin un servidor mediador)
  • Una arquitectura posible es IP/TCP. Sobre esa pila se implementa nuestra aplicación. Esto es válido para aplicaciones no interactivas
  • Para aplicaciones interactivas necesitamos IP/UDP y sobre ellas RTP: Protocolo de transporte en tiempo real

RTP

  • Capa de transporte en tiempo real, para multimedia
  • diseñado para poder ir sobre TCP, pero se usa sobre UDP
  • En realidad son dos protocolos que funcionan en paralelo:
    • El propio RTP: para la información multimdia (es el "Gordo")
    • El protocolo RTCP: RTP Control Protocol. Lleva la señalización y la medida de la calidad del servicio, para implementar aplicaciones adaptativas
  • Información que lleva RTP:
    • Marca de tiempo (para sincronización)
    • Número de secuencia (para reordenar y colocar los paquetes)
    • Formato de la información multimedia

WebRTC

  • Queremos comunicar dos aplicaciones usando una arquitectura igual a igual, para intercambiar información multimedia
  • Típicamente los fabricantes han hechos sus propias aplicaciones: Ej. skype
  • ¿No sería genial poder conectarse directamente usando dos navegadores? --> Para eso nació WebRTC: conjunto de APIs javascript para que dos navegadores se puedan conectar directamente e intercambiar información multimedia en tiempo real, sin necesidad de usar plugins
  • Proyecto Opensource

Señalización

  • ¿Cómo informa el cliente A al B que quiere establecer una comunicación con él?
  • Esto es la señalización. Para la señalización SÍ necesitamos un servidor intermedio
  • Un servidor intermedio se usa como mediador: es el que provee el servicio de contacto
  • Los clientes están conectados a este servidor (Ej. WhatsApp)
  • El cliente A le dice al servidor que quiere establecer una conexión con el cliente B y le pasa sus datos
  • El servidor le informa al cliente B que A quiere conectar con él
  • B acepta
  • B envía sus datos al servidor
  • El servidor le da los datos a A
  • Se establece una conexión DIRECTA entre los dos clientes

MPEG-DASH

  • Aplicaciones de streaming: MPEG-DASH. Ej. Youtube, Netflix
  • DASH: Dynamic Adaptive Streaming over HTTP. Streaming adaptativo basado en HTTP
  • Es un estándar abierto
  • Arquitectura: Cliente-servidor. TCP/HTTP
  • Objetivo: Simplificar y unificar
  • Puerto 80: llega a todos sitios
  • El contenido esta dividido en segmentos de corta duración
  • Hay diferentes calidades (bitstreams)
  • El cliente solicita los segentos mediante HTTP GET, según el ancho de banda solicita una calidad u otra

Ejemplo de funcionamiento

  • El cliente solicita el índice (.mpd)
  • Mediante HTTP GET se descargan los segmentos

Bibliografía y enlaces

  • Real-Time Communication with WebRTC, by Simon Pietro Romano, Salvatore Loreto
  • How does the webRTC works?. Vídeo en youtube (Inglés) de la Fullstack academy of code
  • MPEG-DASH. UPV

El rincón friki

TODO

Autor

Creditos

  • Creado a partir del contenido generado por el profesor Jose María Cañas y otros profesores del departamento GSYC

Licencia

Enlaces

Clone this wiki locally