| Made possible by PowerDNS | ||
|---|---|---|
| Anterior | Capítulo 14. Disciplinas de cola avanzadas y poco conocidas | Siguiente |
Esta sección pretende ser una introducción al encaminamiento en «backbones» (N. del T.: espinas dorsales, las vías más anchas y rápidas de Internet), que a menudo implica anchos de banda de <100 megabits, lo que precisa de un enfoque diferente que para el módem ADSL de casa.
El comportamiento normal de las colas de router en la Internet se denomina "tail-drop". El tail-drop (descarte de últimos) funciona encolando hasta una cierta cantidad, y descartando después todo el tráfico que "se rebose". Esto es bastante poco justo, y lleva a sincronización de retransmisión. Cuando sucede esta sincronización, la súbita ráfaja de descartes del router que ha llegado a su tope causa una ráfaga retardada de retransmisiones, que vuelve a llenar en exceso el router congestionado.
Para copar con la congestión transitoria de los enlaces, los router de backbone a menudo implementan grandes colas. Desafortunadamente, mientras que estas colas están bien para la transferencia, pueden incrementar sustancialmente la latencia y causar que las conexiones TCP se comporten a ráfagas durante la congestión.
Los problemas de tail-drop están empezando a ser cada vez más acuciantes en Internet debido al uso creciente de aplicaciones poco amigables para las redes. El núcleo de Linux nos ofrece RED, abreviatura de Random Early Detect (detección aleatoria temprana), también denominada Random Early Drop (descarte aleatorio temprano), ya que es así como funciona.
RED no es un remedio milagroso para todo esto, y las aplicaciones que no implementen esperas tras colisión (backoff) exponenciales seguirán llenando una porción demasiado grande del ancho de banda, pero con RED no causan tanto daño a la transferencia y la latencia de otras conexiones.
RED descarta paquetes de los flujos estadísticamente antes de que lleguen a un límite absoluto (hard). Esto hace que un enlace congestionado en un backbone reduzca la marcha de una manera más elegante, y evita la sincronización de retransmisiones. También ayuda a TCP a encontrar su velocidad "correcta" más rápido permitiendo que algunos paquetes caigan pronto manteniendo bajo el tamaño de las colas y la latencia bajo control. La probabilidad de que se descarte un paquete de una conexión particular es proporcional a su uso de ancho de banda en lugar de al número de paquetes que transmite.
RED es una buena cola para backbones, donde no te puedes permitir la complejidad de supervisar el estado por sesión que se necesita para un encolado correcto.
Para usar RED, debe decidir tres parámetros: Min, Max, y burst. Min establece el tamaño mínimo de la cola en bytes antes de que empiecen los descartes, Max es un máximo preventivo (soft) bajo el que intenta mantenerse el algoritmo, y burst especifica el número máximo de paquetes que pueden "pasar en ráfaga".
Debería establecer min calculando la latencia básica más alta aceptable que desea en las colas, multiplicándola por el ancho de banda. Por ejemplo, en mi enlace RDSI de 64kbit/s, querría una latencia base de cola de 200ms de manera que pongo un mínimo de 1600 bytes. Poner un min demasiado pequeño degradará la transferencia y demasiado grande degradará la latencia. Poner un min pequeño no es un reemplazo de la reducción de la MTU en un enlace lento para mejorar la respuesta interactiva.
Debería poner un max de al menos el doble que min para evitar la sincronización. En enlaces lentos con Min pequeño quizá fuera más sensato hacer max cuatro o cinco veces más grande que min.
Burst controla cómo responde el algoritmo RED a las ráfagas. Burst se debe hacer más grande que min/avpkt. De forma experimental he establecido que (min+min+max)/(3*avpkt) funciona bien.
Además, necesita indicar limit y avpkt. Limit es un valor de seguridad, y tras pasar la cola de limit bytes, RED "se pone en modo" tail-drop. Normalmente pongo el límite en ocho veces max. Avpkt debería ser el tamaño medio de los paquetes. 1000 funciona BIEN en enlaces de Internet de alta velocidad con una MTU de 1500.
Lea el documento sobre colas RED de Sally Floyd y Van Jacobson si de sea información técnica.