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

38
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

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

Un nuevo protocolo de transporte SCTP-RRJulio Kriger

Director: Dr. Claudio Righetti

Jurado: Dra. Patricia Borensztejn

Dr. Marcelo Risk

Universidad de Buenos AiresDepartamento de Computación

Facultad de Ciencias Exactas y Naturales

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.

Los problemas, la congestión y SCTP Los problemasReordenamiento 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.

Los problemas, la congestión y SCTP El impacto de los problemasReordenamiento 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).

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.

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.

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]).

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).

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.

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.

Los problemas, la congestión y SCTP Protocolo SCTP

– Flexibilidad para agregar nuevos Chunk de control.– Chunk de Hearbeat mantiene vivas las asociaciones.

Los problemas, la congestión y SCTP Protocolo SCTP

Servicios o Características SCTP TCP

Transmisión de datos full duplex Si Si

Orientado a conexión Si Si

Transmisión de datos confiables Si Si

Transmisión de datos parcialmente confiables Opcional No

Envío de datos fuera de orden Si No

Control de flujo y congestión Si Si

Soporte para notificación explícita de congestión (ECN) Si Si

Ack selectivos Si Opcional

Preservación de límite de mensajes Si No

Soporte de PMTU Discovery Si Si

Fragmentación de datos de aplicación Si Si

Multistreaming Si No

Protección contra ataques de SYN flooding Si No

Multihoming Si No

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)).

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

– Formato de Sack Chunk.– Data Chunk identificados

por TSN.

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.

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.

Los problemas, la congestión y SCTPProtocolo 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 recuperael valor de SSThresh previo, para evitar Slow Start.

Los problemas, la congestión y SCTPLibrerí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.

Los problemas, la congestión y SCTPEmulador 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).

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).

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).

Algoritmo SCTP-RR– Tres módulos independientes

Detección de Fast Retransmit 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:

1. Conocer TSN de la última retransmisión (Dos TRL, una para último evento de retransmisión, otra para histórico).

2. Manatener los TSN posibles de recibir reporte de duplicados (problema de crecimiento infinito de la TRL eliminar TSN menores al Cumulative TSN Ack Point).

Algoritmo SCTP-RRDetección de Fast Retransmit y Timeout espurios

– Puede ocurrir Fast Restransmit dentro de Fact Recovery (no se modifican CWnd ni SSThresh, hasta no salir de Fact Recovery todo Fast Restransmit 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 Almacenamiento3 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.

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.

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.

Algoritmo SCTP-RR Adaptación dinámica del DupThreshActualizació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

Algoritmo SCTP-RR Adaptación dinámica del DupThreshActualizació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.

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 unasubclase. Usan filtros para tomardecisión de encolado.

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.

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

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.

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.

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.

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.

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.

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.

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

Preguntas