90 likes | 278 Views
Transmisión de Datos Multimedia. Estudio y evaluación de técnicas FEC para la recuperación frente a errores Rafael Ubal Tena. Introducción. Redes IPv4 No ofrecen QoS: No hay reserva de ancho de banda. Pérdida de paquetes. Protocolo TCP: Suple carencias de protocolos inferiores.
E N D
Transmisión de Datos Multimedia Estudio y evaluación de técnicas FEC para la recuperación frente a errores Rafael Ubal Tena
Introducción • Redes IPv4 • No ofrecen QoS: • No hay reserva de ancho de banda. • Pérdida de paquetes. • Protocolo TCP: • Suple carencias de protocolos inferiores. • Inviable en aplicaciones de tiempo real. • Protocolos • No garantiza entrega en tiempo real. • Monitoriza y cambia parámetros de transmisión. • RTP no admite retransmisión de paquetes. • FEC las evita mediante la redundancia. • Estándar RFC 2733. • Motivación • Tipos de redes: LAN, MAN, WAN, Wireless… • Simulación de tasas de error. • Evaluación de efectividad de FEC sobre RTP. RTP FEC RTP+ FEC
Protocolos RTP y FEC • Protocolo RTP • Implementación sobre UDP. • Paquetes RTP (Real-Time Protocol): • Contenido multimedia. • Paquetes RTCP (Real-Time Transport Protocol): • Envío periódico a todos los participantes. • Paquetes enviados, recibidos, jitter, etc. • Paquetes RTSP (Real-Time Streaming Protocol): • Control del flujo en el servidor. • Órdenes DESCRIBE, SETUP, PLAY, PAUSE… • Protocolo FEC • Evolución de técnicas FEC (Forward Error Correction) • Codificación algebraica. • Codificación convolucional (algoritmo de Viterbi). • Turbo-codificación. • Idea: • Por ejemplo, si enviamos: a, b, c=f(a,b), … • c=f(a,b), a=f(b,c), b=f(a,c).
Metodología • Adquisición de tráfico RTSP: • Herramienta QuickTime Player. • Herramienta Ethereal. • Simulación de la red imperfecta: • Herramienta propuesta. • Emisión, transmisión, recepción. URL: rtsp://… Análisis de resultados stream.send Adquisición de tráfico RTSP Simulación de la red imperfecta
Adquisición de tráfico RTSP QuickTime Player Reproduciendo URL rtsp://stsv01.st.ehu.es/MSR.mov Ethereal Durante la reproducción de QuickTime, capturamos el tráfico RTSP. Filtro Esta orden filtra tráfico entrante a la máquina local de tipo RTSP. En Ethereal: Botón derecho → Follow TCP stream → C Arrays char peer0_0[] = { 0x24, 0x02, 0x01, 0xd7, 0x80, 0xe1, 0xe8, 0x82… } char peer0_1[] = { 0x24, 0x02, 0x01, 0xd7, 0x80, 0xe1, 0xe8, 0x82… } ...
Simulación • stream.py send • Envío de paquetes RTSP a través de la red. • Envío de redundancia FEC dependiendo de un código FEC parametrizable. • Simulación de errores en la red a partir de una tasa de error parametrizable. • stream.py recv • Recepción de paquetes RTSP y FEC. • Recuperación de lo posible a partir de la redundancia. • stream.py comp • Comparación del flujo RTSP original y el obtenido por el receptor. • Extracción de estadísticas. • Script en Python con tres partes diferenciadas: • send, recv y comp. stream.py recv stream.py send Salida de Ethereal en formato de C Arrays stream.send stream.net stream.recv stream.py comp
Resultados (1) Medición del porcentaje de bytes perdidos Código FEC 0 – 0% 1 – 25% 2 – 50% 3 – 100%
Resultados (2) Medición del porcentaje de paquetes perdidos Código FEC 0 – 0% 1 – 25% 2 – 50% 3 – 100%
Conclusiones • Construcción de simulador con resultados en dos métricas: • Paquetes perdidos – datos convencionales. • Bytes perdidos – datos multimedia. • Análisis de resultados: • Gran utilidad de FEC para bajas tasas de error. • Tanto en bytes como paquetes perdidos. • Trabajo futuro: • Modelado de retardo de los paquetes. • Cómo afecta jitter a retardo mínimo (tamaño buffers). • Reutilización de capturas de tráfico RTSP.