stringtranslate.com

Bloqueo de cabecera de línea

El bloqueo de cabecera de línea ( bloqueo HOL ) en redes de computadoras es un fenómeno que limita el rendimiento y ocurre cuando una cola de paquetes es retenida por el primer paquete de la cola. Esto ocurre, por ejemplo, en conmutadores de red con búfer de entrada , entrega desordenada y solicitudes múltiples en la canalización HTTP .

Conmutadores de red

Ejemplo de bloqueo de cabecera de línea: el primer y tercer flujo de entrada compiten para enviar paquetes a la misma interfaz de salida. En este caso, si la estructura de conmutación decide transferir el paquete desde el tercer flujo de entrada, el primer flujo de entrada no se puede procesar en el mismo intervalo de tiempo. Tenga en cuenta que el primer flujo de entrada está bloqueando un paquete para la interfaz de salida 3, que está disponible para su procesamiento.

Un conmutador puede estar compuesto por puertos de entrada con búfer , una estructura de conmutador y puertos de salida con búfer. Si se utilizan buffers de entrada primero en entrar, primero en salir (FIFO), solo el paquete más antiguo estará disponible para reenviar. Si el paquete más antiguo no se puede transmitir debido a que la salida de destino está ocupada, los paquetes más recientes no se pueden reenviar. La salida puede estar ocupada si hay contención de salida .

Sin el bloqueo HOL, los recién llegados podrían potencialmente ser reenviados alrededor del paquete más antiguo atascado a sus respectivos destinos. El bloqueo HOL puede producir efectos que degradan el rendimiento en sistemas con búfer de entrada.

Este fenómeno limita el rendimiento de los conmutadores. Para los buffers de entrada FIFO, un modelo simple de celdas de tamaño fijo para destinos distribuidos uniformemente, hace que el rendimiento se limite al 58,6% del total a medida que aumenta el número de enlaces. [1]

Una forma de superar esta limitación es mediante el uso de colas de salida virtuales . [2]

Sólo los interruptores con buffer de entrada pueden sufrir bloqueo HOL. Con suficiente ancho de banda interno, el almacenamiento en búfer de entrada es innecesario; todo el almacenamiento en búfer se maneja en las salidas y se evita el bloqueo HOL. Esta arquitectura sin búfer de entrada es común en conmutadores Ethernet de tamaño pequeño y mediano .

Entrega fuera de orden

La entrega desordenada ocurre cuando los paquetes secuenciados llegan desordenados. Esto puede suceder debido a diferentes rutas tomadas por los paquetes o a que los paquetes se descarten y se reenvíen. El bloqueo HOL puede aumentar significativamente la reordenación de paquetes. [3] [4]

La transmisión confiable de mensajes a través de una red con pérdidas entre una gran cantidad de pares es un problema difícil. Si bien los algoritmos de transmisión atómica resuelven el problema del punto único de falla de los servidores centralizados, esos algoritmos introducen un problema de bloqueo de cabecera de línea. [5] El algoritmo Bimodal Multicast, un algoritmo aleatorio que utiliza un protocolo de chismes , evita el bloqueo del encabezado de línea al permitir que algunos mensajes se reciban desordenados. [6]

En HTTP

Una forma de bloqueo HOL en HTTP/1.1 es cuando se agota la cantidad de solicitudes paralelas permitidas en el navegador y las solicitudes posteriores deben esperar a que se completen las anteriores. HTTP/2 soluciona este problema mediante la multiplexación de solicitudes, que elimina el bloqueo de HOL en la capa de aplicación, pero HOL todavía existe en la capa de transporte (TCP). [7] [8]

En flujos de bytes confiables

El bloqueo de cabecera de línea puede ocurrir en flujos de bytes confiables : si los paquetes se reordenan o se pierden y necesitan ser retransmitidos (y por lo tanto llegan desordenados), los datos de las partes secuencialmente posteriores del flujo pueden recibirse antes que las partes secuencialmente anteriores. del arroyo; sin embargo, los datos posteriores normalmente no se pueden utilizar hasta que se hayan recibido los datos anteriores, lo que genera latencia en la red . Si se encapsulan y multiplexan varios mensajes independientes de nivel superior en un único flujo de bytes confiable, entonces el bloqueo de cabecera de línea puede hacer que el procesamiento de un mensaje completamente recibido que se envió más tarde espere la entrega de un mensaje que se envió anteriormente. [9] Esto afecta, por ejemplo, a HTTP/2 , que enmarca múltiples pares de solicitud-respuesta en una sola secuencia; HTTP/3 , que tiene un diseño de entramado de capa de aplicación y utiliza datagramas en lugar de transporte de flujo, evita este problema. [10] [11] La degradación de la latencia debido al bloqueo de cabecera de línea depende de la tasa de pérdida de paquetes subyacente y del tiempo de ida y vuelta , y las pérdidas más altas producen una peor latencia. [12] [13] Sin cambiar la abstracción del flujo, reducir la pérdida de paquetes puede reducir el daño causado por el bloqueo de cabecera de línea; una alternativa es implementar el flujo de bytes confiable utilizando la corrección de errores hacia adelante para enviar datos redundantes de modo que se pueda tolerar una cierta cantidad de pérdida sin incurrir en retransmisiones. [9]

Ver también

Referencias

  1. ^ M. Karo; M. Hluchyj; S. Morgan (diciembre de 1987). "Cola de entrada versus salida en un conmutador de paquetes por división de espacio". Transacciones IEEE sobre Comunicaciones . 35 (12): 1347-1356. doi :10.1109/TCOM.1987.1096719.
  2. ^ Nick McKeown ; Adisak Mekkittikul ; Venkat Anantharam; Jean Walrand (agosto de 1999). "Lograr un rendimiento del 100 % en un conmutador en cola de entrada" (PDF) . Transacciones IEEE sobre Comunicaciones . 47 (8): 1260–1267. CiteSeerX 10.1.1.18.7529 . doi : 10.1109/26.780463. 
  3. ^ Jon CR Bennett; Craig Perdiz; Nicholas Shectman (diciembre de 1999). "La reordenación de paquetes no es un comportamiento patológico de la red". Transacciones IEEE/ACM en redes . 7 (6): 789–798. CiteSeerX 10.1.1.461.7629 . doi : 10.1109/90.811445. S2CID  26573611. 
  4. ^ Bennett, JCR; Perdiz, C.; Shectman, N. (abril de 2000). Sarisky, Dan (ed.). "La reordenación de paquetes no es un comportamiento patológico de la red [diapositivas]" (PDF) . Investigación SC N. Archivado desde el original (PDF) el 20 de agosto de 2017 . Consultado el 19 de agosto de 2017 .
  5. ^ Defago, X.; Schiper; A., Urbano, P. (2004). "Algoritmos de multidifusión y difusión de orden total: taxonomía y encuesta" (PDF) . Encuestas de Computación ACM . 36 (4): 372-421. doi :10.1145/1041680.1041682. S2CID  207155989.{{cite journal}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  6. ^ Tyler McMullen (2015). "Probablemente funcione". Cola ACM .
  7. ^ Grigorik, Ilya (octubre de 2013). "Hacer la Web más rápida con HTTP 2.0". Cola ACM . 11 (10): 40. doi : 10.1145/2542661.2555617 . S2CID  34623442 . Consultado el 10 de junio de 2019 .
  8. Javier Garza (octubre de 2017). "¿Cómo resuelve HTTP/2 el problema del bloqueo del encabezado de línea (HOL)?".
  9. ^ ab Briscoe et al. 2016, págs. 29-30.
  10. ^ Langley y col. 2017, págs.184, 186.
  11. ^ Marx y otros. 2018, págs. 22-23.
  12. ^ Nowlan, Wolinsky y Ford 2013, pág. 6.
  13. ^ Heijligers 2021, pag. sesenta y cinco.

Bibliografía