1 / 38

Un nuevo protocolo de transporte SCTP-RR Julio Kriger Director: Dr. Claudio Righetti Jurado:

Un nuevo protocolo de transporte SCTP-RR Julio Kriger Director: Dr. Claudio Righetti Jurado: Dra. Patricia Borensztejn Dr. Marcelo Risk Universidad de Buenos Aires Departamento de Computación Facultad de Ciencias Exactas y Naturales. Introducción

merry
Download Presentation

Un nuevo protocolo de transporte SCTP-RR Julio Kriger Director: Dr. Claudio Righetti Jurado:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Un nuevo protocolo de transporte SCTP-RR Julio Kriger Director: Dr. Claudio Righetti Jurado: Dra. Patricia Borensztejn Dr. Marcelo Risk Universidad de Buenos Aires Departamento de Computación Facultad de Ciencias Exactas y Naturales

  2. Introducción • Stream Control Transmission Protocol (SCTP) Los problemas • Reorden de paquetes. • Cambios bruscos del RTT. Objetivos • Mejorar SCTP bajo ciertas condiciones de red. • Emular una red (condiciones de red en ambiente real y controlado). Contribuciones del trabajo • Análisis de trabajos anteriores. • Análisis de herramientas para emulación. • Experimentos y resultados.

  3. Los problemas, la congestión y SCTP Los problemas Reordenamiento de Paquetes Causas: • Ruteo multi-camino a nivel de paquete (por balanceo de carga). • Route fluttering (función de ruteo por costo por retraso y congestión). • Paralelismo inherente en routers modernos de alta velocidad (creación de banda de paquete para reducir costos). • Retransmisiones a nivel de la capa de enlace (Router wireless). • Treguas (actualización de tablas de ruteo). Cambios Bruscos del RTT • El rendimiento inversamente proporcional al RTT.

  4. Los problemas, la congestión y SCTP El impacto de los problemas Reordenamiento de Paquetes • Retransmisiones espurias. • Ventana de congestión innecesariamente pequeña. • Pérdida de Reloj Ack. Cambios Bruscos del RTT • Calculo del RTT. • Timeout de Retransmisión (RTO).

  5. Los problemas, la congestión y SCTP Congestión en redes globales • Congestión es el estado sostenido de sobrecarga de una red donde la demanda de recursos (ancho de banda y buffer) se encuentra al límite o excede la capacidad de los mismos. • Una red se dice que está congestionada desde la perspectiva de un usuario si la calidad de servicio percibida por el usuario disminuye debido a un aumento en la carga de la red. Control de congestión y asignación de recursos • Se asignan principalmente de buffer y ancho de banda (Router y Host). • El objetivo de control de congestión es el uso eficiente de la red, hay que prevenir la congestión. • Sobreprovisionamiento (ISP) • Ancho de banda barato. • Facilidad de administración. • Preparado para más cantidad de clientes.

  6. Los problemas, la congestión y SCTP Congestión en redes globales Esquema de funcionamiento de los Router • Cuellos de botella • Procesar paquetes entrantes. • Tiempo de espera en buffer.

  7. Los problemas, la congestión y SCTP Congestión en redes globales Clasificación de asignación de recursos Principales mecanismos: • Centrada en los Router vs. Centrada en los Host (decisión de los Router o Host se adapta a la red). • Basada en Reserva vs. Basada en Retroalimentación [explicita o implicita] (se reservan recursos en Router o Host se adapta). • Basado en Ventana vs. Basado en Tasa (se informa tamaño de ventana/espacio de buffer entre origen y destino, o se regula la tasa de transmisión [bytes por segundo]).

  8. Los problemas, la congestión y SCTP Congestión en redes globales Modelo de red Principales características de la arquitectura de red: • Redes de conmutación de paquetes (Router que intercambian paquetes). • Flujos no orientados a conexión (diferencia entre orientados a conexión y no orientados a conexión, uso de soft/hard state, flujos implícitos [Router inteligente para paquetes con mismo nodo de origen y destino] o explícitos [por mensaje de inicialización]). • Modelo de servicio mejor esfuerzo (todo paquete es tratado igual, hay limitado QoS).

  9. Los problemas, la congestión y SCTP Congestión en redes globales Congestión en redes de conmutación de paquetes no orientadas a conexión • Como afecta la congestión en el rendimiento de la red.

  10. Los problemas, la congestión y SCTP Protocolo SCTP • Entrega de datos fuera de orden confiable (entrega rápida de datos). • Preservación de los límites de mensaje (identificar partes de varios mensajes). • Soporte para múltiples flujos de datos independientes (múltiples flujos en una misma conexión). • Multihoming (múltiples direcciones IP por conexión). • Confiabilidad parcial (definir que tan persistente debe se la entrega de mensajes). • Soporta four-way-handshake (para evita ataques de Denial of Service). • Un paquete tiene una cabecera común (12 bytes) y múltiples Chunk (de control o datos). • Mismos concepto de puerto que TCP y UDP. • Checksum de 32 bits. • Dos tag de verificación de 32 bits.

  11. Los problemas, la congestión y SCTP Protocolo SCTP • Flexibilidad para agregar nuevos Chunk de control. • Chunk de Hearbeat mantiene vivas las asociaciones.

  12. Los problemas, la congestión y SCTP Protocolo SCTP

  13. Los problemas, la congestión y SCTP Protocolo SCTP Definiciones • Sender Maximum Segment Size (Smss): tamaño máximo de envío de segmento en un momento dado. • CWnd: Limita la cantidad de datos que TCP puede enviar. • SSThresh: Limite para usar Slow Start, luego usar Congestion Avoidance. • Desconocimiento inicial de las condiciones de la red (CWnd = 2*Smss). • Uso de Slow Start cuando CWnd < SSThresh (crecimiento exponencial, incrementa CWnd hasta Smss por cada Ack de datos nuevos). • Uso de Congestion Avoidance cuando CWnd > SSThresh (crecimiento lineal, incrementa CWnd = CWnd + Smss * (Smss / CWnd)).

  14. Los problemas, la congestión y SCTP Protocolo SCTP SCTP y la congestión • Formato de Sack Chunk. • Data Chunk identificados por TSN.

  15. Los problemas, la congestión y SCTP Protocolo SCTP SCTP y la congestión • Protocolo de ventana deslizante mediante Advertised Receiver Window Credit. • Usa Slow Start. • Usa Congestion Avoidance. • Mantiene las variables de CWnd y SSThresh para cada dirección destino. • No se retransmiten los TSN confirmados por Gap Ack Block.

  16. Los problemas, la congestión y SCTP Protocolo SCTP Medición del Round Trip Time • Sirve para calcular el Timeout de Retransmisión (RTO) (igual que TCP). • No se toman retransmisiones. • Distintos RTT en LAN y WAN.

  17. Los problemas, la congestión y SCTP Protocolo SCTP Fast Retransmit y Fast Recovery • Algoritmos heurísticos que generan retransmisión antes de Timeout. • Basados en Ack duplicado. • Uso del Gap Ack Block y algoritmo Highest TSN Newly Acked (HTNA). • Se espera hasta DupTresh Ack duplicados para entrar en Fast Retransmit. • Se disminuyen las variables SSThresh y CWnd. • Se retransmite el paquete “perdido”. • Una vez que Fast Retransmit resolvió la perdida de paquetes, Fast Recovery recupera el valor de SSThresh previo, para evitar Slow Start.

  18. Los problemas, la congestión y SCTP Librería SCTP • Desarrollada por Siemens, Univ. Essen y Univ. Münster. • Ejecuta en el espacio de usuario. • Fácil de extemder y depurar. Conceptos generales • API basada en Callbacks. • Uso de socket raw. • Eventos de Timer. • Función bloqueante sctp_eventLoop. • Función no bloqueante sctp_getEvents.

  19. Los problemas, la congestión y SCTP Emulador Emulador de red • Técnica para emular distintas condiciones de red. Métodos de emulación • Introducción de dispositivo dentro de una red. Emulación y simulación • Simulación (basada en un modelo matemático). • Emulación (reproducción precisa de comportamiento).

  20. Trabajos Relacionados Mejoras a SCTP • Implementrar Scalable TCP (mejora al esquema de control de congestión). • Implementar Timestamp en cabecera de SCTP similar a Eifel (detecta más rápido transmisiones espurias). • Implementar F-RTO (modifica comportamiento después de Timeout). • Implementar Rhein cuando hay cambio de caminos (ataca problemas de transmisiones espurias y crecimiento no amigable a TCP del CWnd). • Implementar Changeover aware congestion control (previene crecimiento incorrecto del CWnd eliminando Fast Retransmit espurios). Viene en 2 “sabores”: Conservative CACC (reorden por cambio de camino no incrementa reporte de paquetes perdidos) y Split Fast Retransmit CACC (utiliza SAck selectivamente para aplicar Fast Retransmit).

  21. Trabajos Relacionados Emulación de red • Simuladores de red más populares: NS2, OMNeT++, NetSim, OPNET, Modeler y QualNet. • Umlsim, híbrido entre simulación y emulación. • Dispositivos dedicados: Simena, PacketStorm, Gambit, Anue. Emulación por Software: • Dummynet (FreeBSD, autocontenido). • NIST Net (Linux, dificil de extender). • NetEm (Linux). • WANEM (basado en NetEm).

  22. Algoritmo SCTP-RR • Tres módulos independientes Detección de FastRetransmit y Timeout espurios • Basado en reporte de TSN duplicados del SAck. • Evento de retransmisión. • TRL con TSN retransmitidos • Si para todos los TSN en la TRL llega un reporte de duplicado, entonces la retransmisión fue espuria. • Solo detecta del último evento de retransmisión (por desambiguación). • Basado en 2 condiciones: • Conocer TSN de la última retransmisión (Dos TRL, una para último evento de retransmisión, otra para histórico). • Manatener los TSN posibles de recibir reporte de duplicados (problema de crecimiento infinito de la TRL  eliminar TSN menores al Cumulative TSN Ack Point).

  23. Algoritmo SCTP-RR Detección de FastRetransmit y Timeout espurios • Puede ocurrir FastRestransmit dentro de FactRecovery (no se modifican CWnd ni SSThresh, hasta no salir de FactRecovery todo FastRestransmit se considera único evento de retransmisión). • Se ejecuta por cada destino. • Los TSN retransmitidos se guardan en la TRL del destino original. • Por cada TSN duplicado  eliminar el TSN de la TRL del destino original. Costo Computacional y de Almacenamiento 3 etapas: • Evento de retransmisión (mover TRL último evento a TRL histórico, mantenimiento de TRL histórico), costo lineal. • Retransmisión de TSN (agregar TSN a TRL), costo constante. • Recepción reporte TSN duplicado (eliminar TSN de TRL), costo lineal.

  24. Algoritmo SCTP-RR Recovery • Ante Timeout y Fast Retransmit se disminuyen el SSThresh y CWnd (costo de Timeout más caro que costo de Fast Retransmit). • Almacenar valores de SSThresh y CWnd antes de evento de retransmisión (por dirección). • Si el evento fue espurio, actualizar SSThresh al valor previo de CWnd para entrar en Slow Start. • En pocos RTT se recuperar CWnd y el rendimiento: • Sin el algoritmo  SSThresh = CWnd previo / 2 • Con el algoritmo  SSThresh = CWnd previo • Retransmisiones anidadas reduciran SSThresh y CWnd. • Se restaurarán las variables del último evento de retransmisión. Costo computacional y de almacenamiento • 8 bytes. • Costo constante.

  25. Algoritmo SCTP-RR Adaptación dinámica del DupThresh • Para evitar Fast Retransmit espurios, Dupthresh debe ser mayor que la media de reportes de TSN faltantes (generados por reorden). • Contador de reporte de faltantes (CRF) por cada TSN transmitido. • Fast Retransmit retransmitirá los TSN con CRF mayor que 3. • Fijar el DupThresh según reorden de la red trae problemas: • Si el Dupthresh es alto (disparará Timeout cuando Fast Retransmit lo habría corregido). • Si el Dupthresh es bajo (disparará muchos Fast Retransmit). Medición y seguimiento del contador de reporte de faltantes • Uso de histograma de CRF de TSN retransmitidos. • Agregar el TSN al histograma si: • el CRF del TSN es mayor o igual que 4. • se recibió un reporte de TSN duplicado (el TSN no se perdió). • el TSN pertenece al último evento de retransmisión.

  26. Algoritmo SCTP-RR Adaptación dinámica del DupThresh Actualización del DupThresh • El histograma guarda la distribución del reorden de la red. • No variar el DupThresh (ejemplo del 90%), sino utilizar un percentil variable. • Uso de “percentil para evitar Fast Restransmit” (PEF) para variar el DupThresh según corresponda. • Cambiar el PEF según costo de: • Timeout espurio: W * (T / R + log2(W) - 2) + 1. • Fast Restransmit espurio: (k * (W - k + 1) / 2). • W = Cantidad máxima de paquetes que se pueden enviar en un momento dado. • R = Smoothed RTT. • T = Duración de la retransmisión de paquetes durante un Timeout. • k = Duración de Fast Retrsnamit espurio divido por R

  27. Algoritmo SCTP-RR Adaptación dinámica del DupThresh Actualización del PEF • Sea S la medida axiomática (un valor fijo) para adaptar el PEF. • S debe ser pequeño para un ajuste fino del Dupthresh. • Después de un Fast Transmit espurio  incrementar PEF en S. • Después de un Timeout espurio  decrementar PEF en (Costo (Timeout) / Costo(Fast Retransmit)) * S . Costo computacional y de almacenamiento • 8K por histograma de CRF por dirección. • Mantenimiento del histograma de CRF (agregar CRF y eliminar CRF según su Timestamp) costo lineal. • Cálculo del PEF (según funciones de costos) costo constante. • Actualización del DupThresh (calcular percentil según PEF, ordenar histograma según CRF con quicksort costo [n * log(n)], actualizar Dupthresh), costo constante.

  28. Las herramientas de Linux Disciplina de colas (qdics) Colas y disciplinas de cola • Algoritmo que controla la cola de un dispositivo (de entrada o salida). • Shaping/modelado de tráfico solo en el egreso. Disciplinas de cola simples, sin clases • Aceptan datos y se limitan a reordenarlos, retrasarlos, descartarlos, etc. Ajustan el tráfico de una interfaz entera. Disciplinas de cola con clases • Clasifican el tráfico entrante para dar tratamiento especial en una subclase. Usan filtros para tomar decisión de encolado.

  29. Las herramientas de Linux NetEm • Emula condiciones de red (demora, perdida, duplicación, corrupción y reorden). • Disciplina de cola sin clases. • Tiene dos colas internas TFIFO, ordenadas por Timestamp de los paquetes. • Se agrego la opción fixed_delay. tc • Pertenece al paquete Iproute2. • Permite configurar qdisc. • Se agrego la opción fixed_delay.

  30. Emulando condiciones de red Reordenamiento de paquetes • Demora promedio de X ms y un gap de Y paquetes. • Demora promedio de X ms y un desvío estándar Y ms. • Demora promedio de X ms y un porcentaje Y % de reorden. Cambios bruscos de Round Trip Time • Determinística y controlada. • Aleatoria o no determinística Integrando las herramientas • tc qdisc add dev eth1 root netem limit 999999 \ delay 15ms 5ms 90% reorder 90% fixed_delay 50ms

  31. Experimentos Configuración del hardware Escenarios • Dos objetivos: • Medir el rendimiento en tiempo. • Medir el rendimiento en bytes por segundo. • Para cada objetivo hubieron tres tipos de condiciones.

  32. Experimentos Escenarios • Demora fija más demora variable por porcentaje de reorden: Demora fija de 50, 100, 200 y 300 ms, y el 0, 5, 10 y 15 % con demora variable de 100, 200 y 300 ms. • Ejemplo demora fija de 200 ms más demora variable de 100 ms para porcentajes de reorden.

  33. Experimentos Escenarios • Demora fija más demora variable: Demora fija de 100, 200, 300 ms, más variable de 50, 100, 150 ± 50, 100, 150 ms. • Ejemplo demora fija de 300 ms más demora variable de 100 ms ± varianza del Jitter.

  34. Experimentos Escenarios • Demoras fijas por cambio de tiempo: cada 250, 500, 750 y 1000 ms cambio de demora fija de 1 ms a 200 ms, 100 ms a 300 ms y de 200 ms a 400 ms. • Ejemplo cambio de tiempo de cada 500 ms para distintos RTT.

  35. Experimentos Análisis • Medición del rendimiento en tiempo. • Medición del rendimiento en bytes por segundo. • Nivelación de los gráficos. • Mejor rendimiento de SCTP-RR sobre SCTP.

  36. Conclusiones • Algoritmo para mejorar rendimiento de SCTP ante cambios bruscos de RTT y reordenamiento de paquetes. • Módulo de detección de Timeout y Fast Retransmit espurios. • Módulo de recupero de variables de control de congestión. • Módulo de adaptación dinámica del DupThresh. • Implementación sobre librería de SCTP. • Modificaciones a NetEm y tc. • Emulación de distintas condiciones de red. • Mejora del rendimiento.

  37. Trabajo Futuro • Realizar distintas aplicaciones (servidor Web, FTP, etc.) • Uso de hardware especializado. • Implementar sobre LKSCTP.

  38. Preguntas

More Related