Control de Congestión n en TCP



Documentos relacionados
Gestión de cola. Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 3º

Redes de Computadores. Capa de Red. 1

Gestión de cola. Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 3º

ALB-W sp WHITE PAPER. White Paper. Medida del throughput con transmisiones sobre TCP. Septiembre Medida del throughput sobre TCP

Análisis de Rendimiento. Carlos Vicente Servicios de Red Universidad de Oregon

TCP y control de congestión en Internet

Introducción. 100 Mbps

ÍNDICE TEMÁTICO I. ARQUITECTURA TCP/IP

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Jhon Jairo Padilla Aguilar, PhD.

Fundamentos de Redes de Computadoras

8 TCP en Enlaces Asimétricos

16.36: Ingeniería de sistemas de comunicación. Clase 15: ProtocolosARQ. Eytan Modiano

Control de Congestión en TCP Teoría de la Comunicaciones. 21 de Mayo de 2014

TEMA 12 RETRANSMISIÓN DE TRAMAS. FRAME RELAY.

Estudio y simulación de TCP en redes de conmutación óptica de ráfagas (OBS)


Performance de redes de Telecomunicaciones. Objetivo del curso

Examen Parcial II de Sistemas Telemáticos I 2 o Ingeniería de Telecomunicación

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP.

Medición de demanda y de capacidad en redes IP

Datos de usuario. Tipos de paquetes de la arquitectura TCP/IP. Telnet, FTP, , etc Aplicación. TCP, UDP Transporte. IP, ICMP, IGMP Red

Redes de Datos 1er parcial año 2010

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

Congestión y rendimiento de TCP

Universidal del Valle, Cali. Febrero, 2004

Escola Tècnica Superior d Enginyeria Informàtica Universitat Politècnica de València

Control de Congestión en TCP Teoría de la Comunicaciones. 05 de Junio de 2013

Tema 3: El protocolo TCP

TCP Control de Congestión Teoría de la Comunicaciones. 05 de Junio de 2012

Introducción a redes Ing. Aníbal Coto Cortés

Transporte en Internet

Arquitectura de Redes

Redes de computadores. Práctica 3

15/06/14. Principios del Control de la Congestión. Causas y Costos de la Congestión. Escenario 1: 2 emisores, 1 enrutador con buffer infinito.

Redes de Ordenadores Curso º Ingenieria Superior Informática Campus Ourense- Universidad de Vigo

Problemas de Arquitectura de Redes, Sistemas y Servicios 2 o Grado en Ingeniería en Tecnologías de Telecomunicación Conjunto de problemas 6

Versión final 8 de junio de 2009

Redes de Ordenadores Control de congestión en TCP. Mikel Izal Azcárate

2 El protocolo TCP 2.1 INTRODUCCIÓN

GPRS: General Packet Radio Service

Necesidad, Ámbito y Aéreas de Aplicación: Clientes Potenciales

Diseño y Operación de Redes Telemá>cas

ATEL ASESORES C.A IP Multimedia Subsystem Prof. Diógenes Marcano

WAN y Enrutamiento WAN

CELERINET ENERO-JUNIO 2013 ESPECIAL

Examen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0503.doc) 28 de febrero de 2005

Andres Arcia Moret 1 Algunas láminas y/o gráficos son tomandos exactamente del laminario K-R

CONTROL DE FLUJO. Control de flujo: mecanismo extremo a extremo para regular el tráfico entre el origen y el destino

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

Capítulo 6: Conclusiones

Transporte de Datos. Profesora María Elena Villapol. Comunicación de Datos

Tema 3: Nivel Enlace.

ARQUITECTURA DE REDES Laboratorio

Principios del Control de Congestión

Introducción a las Redes de Computadoras

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 3) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas

Redes de Computadores I

Top-Down Network Design. Tema 13

TCP sobre enlaces wireless Problemas y algunas posibles soluciones existentes

5 Compresión de Cabeceras de Van Jacobson

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE INGENIERÍA ELÉCTRICA

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking

Tema 4.1: - TRANSPORTE-

Conmutación. Conmutación telefónica. Justificación y definición.

Redes de Computadoras Junio de Teoría y problemas (75 %)

Experimente la red tal como lo hacen sus clientes: Cómo disminuir la brecha de activación

Efectos de los dispositivos de Capa 2 sobre el flujo de datos Segmentación de la LAN Ethernet

CAPITULO 4 Capa de Transporte del modelo OSI

Capítulo 5. Recomendaciones

Redes conmutadas y de área local

Quality of Service MODULO I FUNDAMENTOS DE NETWORKING 14/04/2012. Ing. Nelwi Báez P. Msc. Página 0

El Núcleo de Red. Apartado 1.3

Control de Tráfico y Administración de Ancho de Banda en Linux con tcng

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 6: Estándares en LAN

I. Verdadero o Falso (16 puntos)

Un método para el ajuste de la velocidad de transmisiones cortas de datos en redes TCP/IP: Un enfoque por simulación

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz Jonathan Porta Matías Contreras

Simulación de Algoritmos de Control de Congestión en TCP bajo User Mode Linux

Es un conjunto de dispositivos interconectados entre si que comparten recursos y/o servicios como video, voz y datos a través de medios guiados, no

Las empresas dependen de las redes para funcionar correctamente todos los días.

UNIVERSIDAD NACIONAL DEL COMAHUE

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla?

Conceptos básicos de redes TCP/IP

Práctica de laboratorio: Uso de Wireshark para examinar una captura de UDP y DNS

Arquitectura de sistema de alta disponibilidad

IBM Systems and Technology Backup y recuperación confiables y eficientes para IBM i en los servidores IBM Power Systems

WDM. Wavelength Division Multiplexing Comunicación Multicanal Vía Fibra Óptica

Módulo 03 La Capa de Transporte (Pt. 1)

Arquitectura de seguridad OSI (ISO )

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte C. Nivel de red

Qué equilibra la importancia del tráfico y sus características con el fin de administrar los datos? Estrategia QoS

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

Protocolo PPP PPP Protocolo de Internet de línea serie (SLIP)

Unidad I: La capa de Red

Transcripción:

Control de Congestión n en TCP

Congestión Qué es Congestión y por qué se produce? Controlar / Evitar Control de Flujo / Control de Congestion TCP - Control de Congestion en TCP TAHOE, RENO, NewRENO, D-SACK, VEGAS, BIC, CUBIC ECN, AQM

Que es Congestión Congestión es la condición que se produce cuando la cantidad de paquetes siendo transmitidos se aproxima a la capacidad de transporte de la red. Congestión suave: Existe tiempo de espera en cola Congestión severa: Existe pérdida de paquetes. Control de Congestion es el mecanismo para prevenir estos problemas. Regulando la tasa de transferencia por debajo de un cierto nivel a partir del cual la performance cae estrepitosamente throughput load

Por que se produce? Baja capacidad de los enlaces: La tasa de arribo de paquetes excedo o al menos se aproxima a la capacidad de salida del enlace. Se encolan paquetes. Procesador lento: La tasa de arribo de paquetes excede la capacidad de ruteo de la Red. Se encolan paquetes. Memoria insuficiente. Los buffers de recepción no son lo suficientemente grandes para almacenar los paquetes que arriban. Se descartan paquetes. Naturaleza estadística del tráfico: Tráfico de ráfagas de paquetes de tamaño variable.

Controlar o Evitar la Congestión? n? Estrategia de TCP Controlar congestión una vez que esta ocurre Repetidamente incrementar la carga en un intento de encontrar el punto al cual la congestión ocurre y luego retroceder Estrategia Alternativa Predecir cuando la congestión está a punto de ocurrir Reducir la tasa antes que empiecen a descartarse paquetes

Como se obtienen conclusiones? No hay simulación ni medición exhaustiva No se puede probar la eficiencia de un protocolo o mecanismo Pero se puede demostrar los problemas de cada implementación. Fairness (entre flujos similares) Friendliness (contra el TCP nativo) Efficiency (uso de la capacidad disponible de la Red). Responsiveness (Velocidad de respuesta a los cambios en las condiciones de la Red, ej. nuevos flujos iniciando o cerrando)

Control de Congestión n vs. Control de Flujo Control de congestion: interviene cuando la Red se encuentra congestionada o sobrecargada. Debido al flujo entre los dispositivos origen y la Red. Conocido como Control de Flujo de Origen Control de Flujo: Interviene cuando el receptor se encuntra saturado. Debido a no poder procesar los paquetes que arriban a la velocidad que arriban. Conocido como Control de Flujo de Destino S1 S2. D S D Sn

TCP Transmission Control Protocol TCP provee un servicio de transmisión confiable, orientado a la conexión, de flujo de bytes. TCP considera que las capas inferiores no ofrecen servicios confiables. Servicios de TCP Identificación unívoca de procesos que se comunican Esquema CLIENTE - SERVIDOR Protocolo orientado a la Conexión Transmisión Confiable Control de Flujo explícito Control de Congestión implícito

Control de Congestión n en TCP El origen determina el valor de cwnd a partir de indicios de congestion en la red Usa reglamentación implícita Indicadores de Congestión Pérdidas Demoras Marcas TCP asume red de mejor esfuerzo (routers FIFO o FQ) cada fuente determina por si misma la capacidad de la red. ACKs regulan el paso de transmisión. Cuando llega un ACK implica que un paquete salió de la red (self-clocking). Diversos algoritmos para calcular cwnd Tahoe, Reno, Vegas, BIC-TCP, CUBIC

Control de Congestión n en TCP Control de Flujo en el Receptor Evitar sobrecargar al destino Explícitamente establecido por el destino awnd: (advertised) window Control de Flujo en el Origen Evitar sobrecargar a la red Establecido por quien transmite A partir de estimar la capacidad disponible de la red cwnd: congestion window sea W = min (cwnd, awnd)

Algoritmos de Control de Congestión Tahoe (Jacobson 1988) Slow Start Congestion Avoidance Fast Retransmit Reno (Jacobson 1990) Fast Recovery NewReno (Jacobson 1990) Fast Recovery Mejoras Vegas (Brakmo & Peterson 1994) Evitar congestión a partir del RTT de la red SACK, D-SACK (M. Mathis 1996) Detección de retrasmiciones innecesarias. BIC-TCP (L. Xu 2004) Binary Increase Congestion Control CUBIC (I. Rhee 2007) Cubic function instead of a linear window increase

TCP TAHOE Slow Start Inicialmente cwnd = 1 (slow start) ssthresh = Max. W (65535) Por cada ACK exitoso incrementar cwnd (MSS) cwnd cnwd + 1 Crecimiento exponencial de cwnd por cada RTT: cwnd 2 x cwnd Ingresar en CA cuando cwnd >= ssthresh 1 RTT sender cwnd 1 2 3 4 data packet ACK receiver CA = Congestion Avoidance 5 6 78

TCP TAHOE Congestion Avoidance Comienza cuando cwnd ssthresh Por cada ACK correcto: cwnd cwnd + 1/cwnd Crecimiento Lineal de cwnd 1 cada RTT: cwnd cwnd + cwnd 1 2 data packet ACK 1 RTT sender 3 4 receiver

TCP TAHOE: Fast Retransmist - Detectando Congestión Se Asume: Pérdida de paquetes indica congestión. Pérdida de paquetes debida a errores < 1% La pérdida de paquetes puede ser detectado a partir: TimeOuts de retransmición (RTO timer) ACKs Duplicados (al menos 3) Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Retransmit packet 3 Sender Receiver ACK 1 ACK 2 ACK 2 ACK 2 ACK 2 ACK 6

TCP TAHOE: Fast Retransmit Esperar por Timeout puede representar mucho tiempo => Retransmitir inmediatamente luego de recibir 3 dupacks sin esperar por Timeout Ajustar ssthresh flightsize = min(awnd, cwnd) ssthresh max(flightsize/2, 2) Pasar a Slow Start (cwnd = 1)

TCP RENO: Fast Recovery Evitar que `la tubería se vacie después de fast retransmit La congestion no es tan severa: Cada dupack indica que los paquetes continuan llegando al destino luego del paquete descartado No entrar en Slow Start, sino que pasar a CA Entrar en FR/FR Luego de 3 dupacks ssthresh max(flightsize/2, 2) Retransmitir el paquete perdido cwnd ssthresh + ndup (agrandar la ventana) Esperar hasta que W=min(awnd, cwnd) sea suficientemente grande y transmitir nuevos paquetes Cuando no se reciban más dupacks (1 RTT después), cwnd ssthresh (Reducir la ventana) Pasar a CA

Tahoe vs. Reno window TCP Tahoe SS CA time window TCP Reno SS CA CA CA time SS: Slow Start CA: Congestion Avoidance

Mejoras TCP NewReno Partial Ack: Infiere perdida múltiple de paquetes en una ventana. TCP SACK, D-SACK SACK (Selective Ack): Usar las opciones del header TCP para informar bloques de segmentos recibidos. Dual SACK: Extensión de SACK que indica que un bloque de datos ha sido recibido dos veces.

TCP NewReno Detectar pérdidas múltiples dentro de una ventana de trasmisión Partial ACK confirman la recepción de algunos pero no de todos los paquetes pendientes desde el inicio de FR Partial ACK hace que TCP Reno salga de FR, y reduzca su ventana El origen deberá esperar un timeout antes de retransmitir Cuando se reciben ACK parciales: Se permanece en FR/FR y se retransmite inmediatamente Se retransmite 1 paquete perdido por RTT hasta que todos los paquetes perdidos se hayan retransmitido => De esta forma se eliminan los timeouts Nota: La implementación de NewReno solamente aplica si las extenciones SACK no han sido negociadas.

TCP SACK, D-SACKD SACK: Que paquetes han sido recibidos? Que es lo que falta? SACK permite desacoplar el cúando y el qué enviar. TCP estandar de ACK acumulativo permite retransmitir solamente un paquete por cada RTT La extensión Duplicate-SACK (D-SACK) permite al receptor indicar la recepción de segmentos duplicados mediante el uso de los bloques de SACK. El origen puede detectar retrasmisiones innecesarias por haber considerado pérdidas de paquetes que no existieron. ej.: Reordenado de paquetes es una razón potencial para el reenvío no necesario de paquetes. Universidad de Buenos Aires

Performance en enlaces de alto BDP BDP (Bandwidth Delay Product) Los algoritmos de control de congestión presentados presentan un pobre desempeño en redes de alta Velocidad y alto RTT, donde la cwnd es muy grande. La ventana de congestión se reduce a la mitad y solamente es incrementada un MSS por cada RTT => Toma mucho tiempo recuperar el tamaño de la ventana luego de una condición de congestión. TCP BIC TCP CUBIC

TCP BIC La mejora en rendimiento de BIC se obtiene de: Crecimiento lento en la meseta Crecimiento lineal en Additive Increase y Max Probing En la meseta: TCP friendliness. BIC es más lento que TCP original. AIMD (additive increase multiplicative decrease) TCP Fairness: Reparto justo del ancho de banda entre otros flujos BIC. Incrementa la utilización de la Red. Wmax, Wmin -> Límites de búsqueda Smax -> define incremente lineasl Smin -> Condición de Convergencia

TCP CUBIC BIC es muy agresivo, sobretodo en redes de bajo RTT CUBIC Nueva función de crecimiento de ventana. (Cúbica) Nuevo modo friendly Detección de bajo uso Wmax es el tamaño de la ventana antes de la reducción T es el tiempo transcurrido desde la ultima reducción de ventana., beta es el factor de decrecimiento multiplicativo luego de un evento de pérdida de paquetes.

Evitar la Congestión Dos posibilidades Centradas en Host: TCP Vegas Centradas en Red: AQM (Active Queue Management) ECN (Explicit Congestion Notification)

TCP Vegas window SS CA time Convergencia, no hay retransmisiones con la condición de que los buffers sean suficientemente grandes

TCP Vegas por cada RTT { si W/BaseRTT W/RTT < a => W ++ si W/BaseRTT W/RTT > b => W -- } por cada paquete perdido W := W/2 Expected Sending Rate E = cwnd/basertt BaseRTT: RTT en condición de no congestión (en la práctica = min RTT) alpha: valor pequeño no-cero para obtener ventaja del ancho de banda disponible inmediatamente. ( = 1/BaseRTT) Indicador de Congestión = retardo de extremo a extremo En equilibrio No hay pérdida de paquetes Ventana estable con utilización maximizada Ocupación no-cero de colas Convergencia Converge si hay suficiente buffer En caso contrario oscila como Reno beta: beta-alpha no debe ser muy pequeño a fin de evitar oscilaciones. ( = 3/BaseRTT)

TCP Vegas Problemas comunes de algoritmos basados en retardo: Es el retardo un indicio confiable de congestión: Mediciones de retardo: Problemas de muestro: Baja correlación cuando hay pérdida de paquetes Influencia del retardo de camino inverso Muy difícil de medir el retardo en un solo sentido Variaciones en el RTT de referencia. Ej.: Enlaces wireless Específicos a TCP Vegas y algoritmos relacionados: Retardo no optimizado para ser pequeño Ocupación de colas crece significativamente con la cantidad de flujos Sobrecarga inevitable. El propio algoritmo hace difícil la medición del retardo (esp. basertt).

AQM (Active Queue Management) Routers en Internet deben implementar políticas de active queue management a fin de: Administrar el tamaño de las colas Reducir el retardo de extremo a extremo Reducir el descarte de paquetes Evitar lock-out (Sincronización Global) en Internet.

Control de Congestión n en TCP Implementaciones en Linux TCP Vegas se incluyó en la distribución oficial del Kernel Linux 2.6.6 A partir de Linux 2.6.13 se incluyo TCP BIC; y a partir de 2.6.19 TCP CUBIC es el estandar en la distribución Linux Actual Linux Implementation use the TCP protocol defined in RFC 793, RFC 1122 and RFC 2001 with the NewReno and SACK extensions.

Conclusiones Aplicar control de flujo es crítico para el desempeño de las redes. Fundamentalmente se utilizan técnicas de detección de congestión basadas en pérdida de paquetes. AQM ha demostrado ser un muy buen complemento a los algoritmos de Control de Congestión de TCP. Control de Flujo en TCP, área de investigación y desarrollo muy activa. Especialmente en Redes de Alto BDP

Referencias y Bibliografía W. Richard Stevens. TCP/IP Ilustrated Volume 1 Jon Postel. Transmission Control Protocol, September 1981, RFC 793. W. Stevens. TCP Slow Start, Congestion Avoidance, Fast M. Mathis, J. Mahdavi, S. Floyd, and A. Romanow. TCP Selective Acknowledgement Options, October 1996, RFC 2018. Retransmit, and Fast Recovery Algorithms, January 1997, RFC 2001. B. Braden. Recommendations on Queue Management and Congestion Avoidance in the Internet, April 1998, RFC 2309 M. Allman, V. Paxson, W. Stevens. TCP Congestion Control, April 1999, RFC 2581 S. Floyd and T. Henderson. The NewReno Modification to TCP sfast Recovery Mechanism, April 1999, RFC 2582. Steven Low. Equilibrium & Dynamics of TCP/AQM, Sigcomm August 2001 Reordering basics and how TCP handle it using SACK, D-SACK - Rajesh Patel BIC & CUBIC, http://netsrv.csc.ncsu.edu/twiki/bin/view/main/bic