Articulo de referencia

Congestión de la red

La congestión de red en la teoría de redes informáticas y colas es la reducción de la calidad del servicio que se produce cuando un nodo o enlace de red soporta o procesa una ca...

La congestión de red en la teoría de redes informáticas y colas es la reducción de la calidad del servicio que se produce cuando un nodo o enlace de red soporta o procesa una carga superior a su capacidad. Los efectos típicos incluyen retrasos en la cola , pérdida de paquetes o el bloqueo de nuevas conexiones. Una consecuencia de la congestión es que un incremento gradual de la carga ofrecida conlleva un pequeño aumento o incluso una disminución del rendimiento de la red . [ 1 ]

Los protocolos de red que utilizan retransmisiones agresivas para compensar la pérdida de paquetes debido a la congestión pueden aumentar la congestión, incluso después de que la carga inicial se haya reducido a un nivel que normalmente no habría provocado congestión en la red. Estas redes presentan dos estados estables bajo el mismo nivel de carga. El estado estable con bajo rendimiento se conoce como colapso congestivo .

Las redes utilizan técnicas de control y prevención de la congestión para evitar el colapso. Estas incluyen: reducción de ventana en TCP y colas equitativas en dispositivos como enrutadores y conmutadores de red . Otras técnicas para abordar la congestión incluyen esquemas de prioridad, que transmiten algunos paquetes con mayor prioridad que otros, y la asignación explícita de recursos de red a flujos específicos mediante el control de admisión .

Capacidad de la red

Los recursos de red son limitados, incluyendo el tiempo de procesamiento del enrutador y el rendimiento del enlace . La contención de recursos puede ocurrir en las redes en varias circunstancias comunes. Una LAN inalámbrica se llena fácilmente con una sola computadora personal. [ 2 ] Incluso en redes informáticas rápidas, la red troncal puede congestionarse fácilmente con unos pocos servidores y PC cliente. Los ataques de denegación de servicio por parte de botnets son capaces de llenar incluso los enlaces de red troncal de Internet más grandes , generando una congestión de red a gran escala. En las redes telefónicas, un evento de llamadas masivas puede saturar los circuitos telefónicos digitales, en lo que también puede definirse como un ataque de denegación de servicio.

Colapso congestivo

El colapso por congestión se produce cuando la congestión impide o limita la comunicación útil. Generalmente, ocurre en puntos críticos de la red, donde el tráfico entrante supera el ancho de banda saliente. Los puntos de conexión entre una red de área local y una red de área amplia son puntos críticos comunes. Cuando una red se encuentra en esta situación, se estabiliza en un estado donde la demanda de tráfico es alta, pero el rendimiento útil es bajo, lo que provoca retrasos y pérdidas de paquetes, y una calidad de servicio extremadamente deficiente.

El colapso congestivo se identificó como un posible problema en 1984. [ 3 ] Se observó por primera vez en los inicios de Internet en octubre de 1986, [ 4 ] cuando la red troncal NSFNET fase I cayó tres órdenes de magnitud de su capacidad de 32  kbit/s a 40  bit/s, [ 5 ] lo que continuó hasta que los nodos finales comenzaron a implementar el control de congestión de Van Jacobson y Sally Floyd entre 1987 y 1988. [ 6 ] Cuando se enviaban más paquetes de los que podían manejar los enrutadores intermedios, estos descartaban muchos paquetes, esperando que los puntos finales de la red retransmitieran la información. Sin embargo, las primeras implementaciones de TCP tenían un comportamiento de retransmisión deficiente. Cuando ocurría esta pérdida de paquetes, los puntos finales enviaban paquetes adicionales que repetían la información perdida, duplicando la tasa de entrada.

Control de congestión

El control de congestión modula la entrada de tráfico a una red de telecomunicaciones para evitar el colapso por congestión resultante de la sobrecarga. [ 7 ] Esto se logra típicamente reduciendo la tasa de paquetes. Mientras que el control de congestión impide que los remitentes saturen la red , el control de flujo impide que el remitente sature al receptor .

Teoría del control de la congestión

La teoría del control de la congestión fue desarrollada por Frank Kelly , quien aplicó la teoría microeconómica y la optimización convexa para describir cómo los individuos que controlan sus propias tarifas pueden interactuar para lograr una asignación óptima de tarifas en toda la red. Ejemplos de asignación óptima de tarifas son la asignación justa max-min y la propuesta de Kelly de asignación proporcionalmente justa , aunque existen muchas otras posibilidades.

Dejarincógnitai{\displaystyle x_{i}}sea ​​la tasa de flujoi{\displaystyle i},dol{\displaystyle c_{l}}ser la capacidad de enlacel{\displaystyle l}, yrli{\displaystyle r_{li}}ser 1 si fluyei{\displaystyle i}utiliza enlacel{\displaystyle l}y 0 en caso contrario. Seaincógnita{\displaystyle x},do{\displaystyle c}yR{\displaystyle R}sean los vectores y la matriz correspondientes.U(incógnita){\displaystyle U(x)}sea ​​una función creciente y estrictamente cóncava , llamada utilidad , que mide cuánto beneficio obtiene un usuario al transmitir a una tasaincógnita{\displaystyle x}La asignación de tasas óptima satisface entonces

máximoincógnitaiU(incógnitai){\displaystyle \max \limits _{x}\sum _{i}U(x_{i})}
de tal manera queRincógnitado{\displaystyle Rx\leq c}

El dual de Lagrange de este problema se desacopla de modo que cada flujo establece su propia tasa, basándose únicamente en un precio señalado por la red. La capacidad de cada enlace impone una restricción, que da lugar a un multiplicador de Lagrange .pagl{\displaystyle p_{l}}. La suma de estos multiplicadores,yi=lpaglrli,{\displaystyle y_{i}=\sum _{l}p_{l}r_{li},}es el precio al que responde el flujo.

El control de congestión se convierte entonces en un algoritmo de optimización distribuida. Muchos algoritmos de control de congestión actuales pueden modelarse en este marco, conpagl{\displaystyle p_{l}}siendo la probabilidad de pérdida o el retraso de la cola en el enlacel{\displaystyle l}Una debilidad importante es que asigna el mismo precio a todos los flujos, mientras que el control de flujo de ventana deslizante provoca irregularidades que hacen que diferentes flujos experimenten diferentes pérdidas o retrasos en un enlace determinado.

Clasificación de algoritmos de control de congestión

Entre las formas de clasificar los algoritmos de control de congestión se encuentran:

  • Según el tipo y la cantidad de retroalimentación recibida de la red: Pérdida; retardo; señales explícitas de un bit o de varios bits.
  • Mediante la implementación incremental: Solo el emisor necesita modificación; el emisor y el receptor necesitan modificación; solo el enrutador necesita modificación; el emisor, el receptor y los enrutadores necesitan modificación.
  • Desde el punto de vista del rendimiento: redes con alto producto ancho de banda-retardo; enlaces con pérdidas; equidad; ventaja para flujos cortos; enlaces de velocidad variable.
  • Según el criterio de equidad: equidad máxima-mínima; proporcionalmente equitativa; retardo controlado.

Mitigación

Se han inventado mecanismos para prevenir la congestión de la red o para hacer frente a un colapso de la misma:

El comportamiento correcto del punto final suele ser repetir la información perdida, pero reduciendo progresivamente la frecuencia de repetición. Si todos los puntos finales hacen esto, la congestión se elimina y la red vuelve a su comportamiento normal. [ 5 ] Otras estrategias, como el inicio lento, garantizan que las nuevas conexiones no saturen el enrutador antes de que se inicie la detección de congestión.

Los mecanismos comunes para evitar la congestión en los enrutadores incluyen la asignación equitativa de colas y otros algoritmos de planificación , así como la detección temprana aleatoria, donde los paquetes se descartan al azar cuando se detecta congestión. Esto activa de forma proactiva la reducción de la velocidad de transmisión en los dispositivos finales antes de que se produzca un colapso por congestión.

Algunos protocolos de extremo a extremo están diseñados para comportarse bien en condiciones de congestión; TCP es un ejemplo bien conocido. Las primeras implementaciones de TCP para manejar la congestión se describieron en 1984, [ 8 ] pero la inclusión por parte de Van Jacobson de una solución de código abierto en la Berkeley Standard Distribution UNIX (" BSD ") en 1988 proporcionó por primera vez un buen comportamiento.

UDP no controla la congestión. Los protocolos basados ​​en UDP deben gestionarla de forma independiente. Los protocolos que transmiten a una velocidad fija, independientemente de la congestión, pueden presentar problemas. Los protocolos de transmisión en tiempo real, incluidos muchos protocolos de Voz sobre IP , poseen esta característica. Por lo tanto, deben adoptarse medidas especiales, como la calidad de servicio, para evitar la pérdida de paquetes en presencia de congestión.

Prevención práctica de la congestión de la red

Los protocolos orientados a la conexión , como el ampliamente utilizado protocolo TCP, monitorean la pérdida de paquetes o el retraso en la cola para ajustar su tasa de transmisión. Diversos procesos de prevención de la congestión de la red admiten diferentes compensaciones. [ 9 ]

Prevención de congestión TCP/IP

El algoritmo de prevención de congestión TCP es la base principal para el control de congestión en Internet. [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ]

Los problemas surgen cuando los flujos TCP concurrentes experimentan pérdidas de paquetes al final de la cola , especialmente cuando hay saturación del búfer . Esta pérdida de paquetes retardada interfiere con la prevención automática de la congestión de TCP. Todos los flujos que experimentan esta pérdida de paquetes inician un reentrenamiento TCP al mismo tiempo; esto se denomina sincronización global TCP .

Gestión activa de colas

La gestión activa de colas (AQM) consiste en la reordenación o el descarte de paquetes de red dentro de un búfer de transmisión asociado a un controlador de interfaz de red (NIC). Esta tarea la realiza el planificador de red .

detección temprana aleatoria

Una solución es utilizar la detección temprana aleatoria (RED) en la cola de salida del equipo de red. [ 15 ] [ 16 ] En puertos de hardware de red con más de una cola de salida, se puede utilizar la detección temprana aleatoria ponderada (WRED).

RED señala indirectamente al emisor y receptor TCP descartando algunos paquetes, por ejemplo, cuando la longitud media de la cola es superior a un umbral (por ejemplo, 50 %) y elimina lineal o cúbicamente más paquetes, [ 17 ] hasta por ejemplo el 100 %, a medida que la cola se llena más.

Detección temprana aleatoria robusta

El algoritmo de detección temprana aleatoria robusta (RRED) se propuso para mejorar el rendimiento de TCP frente a ataques de denegación de servicio (DoS), en particular los ataques de denegación de servicio de baja tasa (LDoS). Los experimentos confirmaron que los algoritmos similares a RED eran vulnerables a los ataques LDoS debido a la oscilación del tamaño de la cola TCP causada por dichos ataques. [ 18 ]

WRED basado en flujo

Algunos equipos de red están equipados con puertos que pueden seguir y medir cada flujo y, por lo tanto, pueden señalar un flujo de ancho de banda excesivo según alguna política de calidad de servicio. Dicha política podría entonces dividir el ancho de banda entre todos los flujos según ciertos criterios. [ 19 ]

Notificación explícita de congestión

Otro enfoque es utilizar la Notificación Explícita de Congestión (ECN). [ 20 ] La ECN se utiliza únicamente cuando dos hosts indican que desean utilizarla. Con este método, se utiliza un bit de protocolo para señalar la congestión explícita. Esto es mejor que la notificación indirecta de congestión señalada por la pérdida de paquetes mediante los algoritmos RED/WRED, pero requiere el soporte de ambos hosts. [ 21 ] [ 15 ]

Cuando un enrutador recibe un paquete marcado como compatible con ECN y prevé congestión, activa el indicador ECN, notificando al remitente de dicha congestión. El remitente debe responder reduciendo su ancho de banda de transmisión, por ejemplo, disminuyendo su tasa de envío mediante la reducción del tamaño de la ventana TCP o por otros medios.

El protocolo L4S es una versión mejorada de ECN que permite a los remitentes colaborar con los dispositivos de red para controlar la congestión. [ 22 ]

modelado de ventana TCP

La prevención de la congestión se puede lograr de manera eficiente reduciendo el tráfico. Cuando una aplicación solicita un archivo, gráfico o página web de gran tamaño, suele anunciar una ventana de entre 32 KB y 64 KB. Esto provoca que el servidor envíe una ventana completa de datos (siempre que el archivo sea mayor que la ventana). Cuando muchas aplicaciones solicitan descargas simultáneamente, estos datos pueden generar un punto de congestión en un proveedor de nivel superior. Al reducir el anuncio de la ventana, los servidores remotos envían menos datos, reduciendo así la congestión. [ 23 ] [ 24 ]

ECN inverso

El ECN inverso (BECN) es otro mecanismo de notificación de congestión propuesto. Utiliza mensajes de extinción de origen ICMP como mecanismo de señalización IP para implementar un mecanismo ECN básico para redes IP, manteniendo las notificaciones de congestión en el nivel IP y sin requerir negociación entre los puntos finales de la red. Las notificaciones de congestión efectivas pueden propagarse a protocolos de la capa de transporte, como TCP y UDP, para realizar los ajustes pertinentes. [ 25 ]

Efectos secundarios de la prevención del colapso congestivo

Los protocolos que evitan el colapso por congestión generalmente asumen que la pérdida de datos se debe a la congestión. En redes cableadas, los errores durante la transmisión son poco frecuentes. Las redes Wi-Fi , 3G y otras redes con capa de radio son susceptibles a la pérdida de datos debido a interferencias y pueden experimentar un rendimiento deficiente en algunos casos. Las conexiones TCP que se ejecutan sobre una capa física basada en radio detectan la pérdida de datos y tienden a creer erróneamente que se está produciendo una congestión.

Conexiones de corta duración

El protocolo de inicio lento tiene un rendimiento deficiente para conexiones cortas. Los navegadores web antiguos creaban muchas conexiones efímeras y las abrían y cerraban para cada archivo. Esto mantenía la mayoría de las conexiones en el modo de inicio lento. El rendimiento inicial puede ser deficiente y muchas conexiones nunca salen de este modo, lo que aumenta significativamente la latencia. Para evitar este problema, los navegadores modernos abren varias conexiones simultáneamente o reutilizan una sola conexión para todos los archivos solicitados a un servidor específico.

Control de admisión

El control de admisión es cualquier sistema que requiere que los dispositivos reciban autorización antes de establecer nuevas conexiones de red. Si la nueva conexión conlleva el riesgo de generar congestión, se puede denegar la autorización. Algunos ejemplos son las Oportunidades de Transmisión sin Contención (CFTXOP) del estándar ITU-T G.hn para redes domésticas sobre cableado antiguo, el Protocolo de Reserva de Recursos para redes IP y el Protocolo de Reserva de Flujo para Ethernet .

Véase también

Referencias

  1. (Al-Bahadili, 2012, p. 282) Al-Bahadili, H. (2012). Simulación en el diseño y modelado de redes informáticas: uso y análisis . Hershey, PA: IGI Global.
  2. den Hartog, F., Raschella, A., Bouhafs, F., Kempker, P., Boltjes, B., & Seyedebrahimi, M. (2017, noviembre). Un camino para resolver la tragedia del Wi-Fi en los espacios comunes de los bloques de apartamentos . En 2017 27th International Telecommunication Networks and Applications Conference (ITNAC) (pp. 1-6). IEEE.
  3. RFC 896 
  4. Fall, KR; Stevens, WR (2011). TCP/IP Ilustrado, Volumen 1: Los protocolos (2.ª ed.). Pearson Education. pág. 739. ISBN   9780132808187.
  5. 1 2 Van Jacobson; Michael J. Karels (noviembre de 1988), Prevención y control de la congestión (PDF) , En octubre del 86, Internet tuvo el primero de lo que se convertiría en una serie de "colapsos de congestión". Durante este período, el rendimiento de datos desde LBL a UC Berkeley (sitios separados por 400 yardas y dos saltos IMP) cayó de 32 Kbps a 40 bps. Nos fascinó esta repentina caída de un factor de mil en el ancho de banda y nos embarcamos en una investigación de por qué las cosas se habían puesto tan mal. En particular, nos preguntamos si el TCP 4.3BSD (Berkeley UNIX) estaba funcionando mal o si se podría ajustar para que funcionara mejor en condiciones de red pésimas. La respuesta a ambas preguntas fue "sí".
  6. Hafner, Katie (4 de septiembre de 2019). "Sally Floyd, quien ayudó a que las cosas funcionaran sin problemas en línea, muere a los 69 años" . New York Times . Consultado el 5 de septiembre de 2019 .
  7. Nanda, Priyadarsi (2000-11-01). "Un enfoque de teoría de control para el control de congestión en intranetwork" . Actas de la IFAC . 16.º Taller de la IFAC sobre Sistemas de Control de Computadoras Distribuidas (DCCS 2000), Sídney, Australia, 29 de noviembre-1 de diciembre de 2000. 33 (30): 91– 94. doi : 10.1016/S1474-6670(17)36735-6 . ISSN 1474-6670 . 
  8. Vinton G. Cerf; Robert E. Kahn (mayo de 1974). "Un protocolo para la intercomunicación de redes de paquetes" (PDF) . IEEE Transactions on Communications . 22 (5): 637– 648. doi : 10.1109/tcom.1974.1092259 . Archivado del original (PDF) el 4 de marzo de 2016.
  9. Lee, BP; Balan, RK; Jacob, L.; Seah, WKG; Ananda, AL (2000), "TCP Tunnels: Avoiding Congestion Collapse", Actas de la 25.ª Conferencia Anual IEEE sobre Redes de Computadoras Locales. LCN 2000 , págs. 408–417 , doi : 10.1109/LCN.2000.891077 , ISBN  0-7695-0912-6, S2CID 34447400 
  10. Van Jacobson , Michael J. Karels . Prevención y control de la congestión (1988). Actas del Simposio Sigcomm '88 , vol. 18(4): págs. 314-329 . Stanford, CA. Agosto de 1988. Este artículo dio origen a muchos de los algoritmos de prevención de la congestión utilizados en TCP/IP.
  11. RFC 2001 - Algoritmos de inicio lento, prevención de congestión, retransmisión rápida y recuperación rápida de TCP
  12. RFC 2581 - Control de congestión TCP
  13. RFC 3390 - TCP aumenta la ventana inicial de TCP
  14. "Evitación de la congestión TCP explicada mediante un diagrama de secuencia" (PDF) . Archivado del original (PDF) el 22/11/2010 . Consultado el 26/11/2010 .
  15. 1 2 Sally Floyd: Gestión de colas RED (detección temprana aleatoria)
  16. Sally Floyd, Van Jacobson. Puertas de enlace de detección temprana aleatoria para evitar la congestión (1993). IEEE/ACM Transactions on Networking , vol. 1(4): pp. 397-413 . Inventaron las puertas de enlace de detección temprana aleatoria (RED).
  17. Diseño de una función RED analítica que garantiza un comportamiento estable del sistema , CiteSeerX 10.1.1.105.5995 , ...La ventaja de esta función radica no solo en evitar oscilaciones fuertes, sino también en evitar la subutilización del enlace a bajas cargas. La aplicabilidad de la función derivada es independiente del rango de carga, no es necesario ajustar ningún parámetro. En comparación con la función de caída lineal original, la aplicabilidad se extiende mucho más... Nuestro ejemplo con parámetros de sistema realistas proporciona una función de aproximación del cubo del tamaño de la cola... 
  18. Zhang, Changwang; Yin, Jianping; Cai, Zhiping; Chen, Weifeng (2010). "RRED: Algoritmo RED robusto para contrarrestar ataques de denegación de servicio de baja tasa" (PDF) . IEEE Communications Letters . 14 (5). IEEE : 489–491 . doi : 10.1109/LCOMM.2010.05.091407 . S2CID 1121461 . 
  19. "Descripción general de la prevención de la congestión" . Cisco Systems . Consultado el 7 de agosto de 2020 .
  20. RFC 3168 - Adición de notificación explícita de congestión (ECN) a IP
  21. Estudio comparativo del control de velocidad RED, ECN y TCP (1999)
  22. "L4S" . Nokia Bell Labs . 14 de junio de 2023. Consultado el 31 de enero de 2025 .
  23. Publicidad de ventanas generalizada para el control de congestión TCP (PDF) , consultado el 13 de noviembre de 2020.
  24. Pop, O.; Moldován, I.; Simon, Cs.; Bíró, J.; Koike, A.; Ishii, H. (2000), "Control de flujo TCP basado en ventanas anunciadas en enrutadores", Telecommunication Network Intelligence , pp. 197–218 , doi : 10.1007/978-0-387-35522-1_12 , ISBN  978-1-4757-6693-6
  25. Una propuesta para ECN inverso para el Protocolo de Internet
  • John Evans; Clarence Filsfils (2007). Implementación de QoS IP y MPLS para redes multiservicio: teoría y práctica . Morgan Kaufmann. ISBN 978-0-12-370549-5.
  • Sally Floyd (septiembre de 2000). Principios de control de congestión . IETF . RFC 2914 . 
  • John Nagle (6 de enero de 1984). Control de congestión en IP/TCP . IETF . RFC 896 . 
  • Van Jacobson; Michael J. Karels (noviembre de 1988). "Prevención y control de la congestión" (PDF) .
  • Floyd, S. y K. Fall, Promoción del uso del control de congestión de extremo a extremo en Internet (IEEE/ACM Transactions on Networking, agosto de 1999)
  • Sally Floyd, Sobre la evolución del control de congestión de extremo a extremo en Internet: una visión idiosincrásica (Taller de la IMA sobre fenómenos de escala en redes de comunicación, octubre de 1999) ( formato pdf )
  • Término del diccionario de enlaces: Queuing (Cola) Archivado el 8 de marzo de 2003 en Wayback Machine
  • Pierre-Francois Quet, Sriram Chellappan, Arjan Durresi, Mukundan Sridharan, Hitay Ozbay, Raj Jain, "Directrices para optimizar ECN multinivel, utilizando el modelo TCP basado en flujo de fluidos"
  • Sally Floyd, Ratul Mahajan, David Wetherall: RED-PD: RED con Preferential Dropping. Archivado el 2 de abril de 2003 en Wayback Machine.
  • Un simulador RED genérico y sencillo con fines educativos, por Mehmet Suzen.
  • Enfoques para el control de la congestión en redes de paquetes
  • Artículos sobre control de la congestión
  • Página principal de detección temprana aleatoria
  • Página principal de notificación explícita de congestión
  • Página principal de TFRC
  • Página principal de AIMD-FC
  • Publicaciones recientes sobre ataques de denegación de servicio (DoS) de baja frecuencia
Obtenido de " https://en.wikipedia.org/w/index.php?title=Network_congestion&oldid=1362916181#Congestion_control "