Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract
Abstract
A medida que las velocidades de los centros de datos se escalan a 100 Gb / sy más, los algoritmos
tradicionales de control de congestión como TCP y RCP convergen lentamente a tasas de envío
constantes, lo que lleva a un rendimiento del usuario más pobre y menos predecible. Estos algoritmos
reactivos utilizan señales de congestión para realizar un descenso de gradiente para aproximarse a las
velocidades de envío ideales, lo que provoca tiempos de convergencia deficientes. En este documento,
proponemos un algoritmo de control de congestión proactivo llamado PERC, que computa
explícitamente las tasas independientemente de las señales de congestión de manera descentralizada.
Inspirado por los algoritmos de paso de mensajes con tracción en otros campos (por ejemplo, los
algoritmos modernos de decodificación de comprobación de paridad de baja densidad), PERC mejora los
tiempos de convergencia en un factor de 7 en comparación con los protocolos de control de velocidad
explícita reactiva como el RCP. Esta rápida convergencia reduce significativamente el tiempo de
finalización del flujo de cola (FCT) en redes de alta velocidad; por ejemplo, las simulaciones de cargas de
trabajo realistas en una red de 100 Gb / s muestran que PERC logra hasta 4 × FCT de percentil 99 en
comparación con RCP.
Introducción
Durante la última década, las velocidades de enlace han crecido constantemente desde 1 Gb / sa 10
Gb / sy ahora hasta 100 Gb / s. Las transferencias de red se están completando más rápido y en
menos RTT; dada esta tendencia, la asignación de flujos a sus tasas apropiadas lo más rápido posible
se convierte en una prioridad. Más precisamente, afirmamos que el tiempo de convergencia debe
convertirse en una métrica primaria de bajo nivel para el control de congestión en redes de alta
velocidad. El tiempo de convergencia afecta a las métricas de flujo de nivel más alto como el tiempo
de finalización de flujo (FCT): a velocidades de enlace más altas, la mayoría de los flujos dura solo
unos pocos RTT y, si tardan más en converger a las tasas ideales, algunos de los flujos terminan
gastando más tiempo en la red de lo necesario, afectando a los FCT de cola.
A pesar de estas mejoras, XCP y RCP también son algoritmos de descenso de gradiente reactivo; ambos
anuncian cambios de velocidad (en el caso de XCP, la ventana de congestión cambia) cada RTT después
de medir cómo se ha realizado la iteración anterior utilizando el tráfico y / o las mediciones de la cola.
Debido a la interdependencia entre los flujos en diferentes rutas que comparten enlaces congestionados,
los enrutadores no conocen la tasa convergente final correcta; solo actualizan la retroalimentación de
velocidad para reaccionar a la información más reciente que obtuvieron de forma pasiva sobre la
congestión local. Además, los algoritmos reactivos tienen que ajustar las tasas con cautela para mantener
el sistema estable. XCP, RCP y otros algoritmos reactivos utilizan pasos de descenso de gradiente hacia
las tasas finales, elegidos cuidadosamente para lograr un equilibrio entre la velocidad de convergencia y
la estabilidad.
Este documento aboga por mecanismos de control de congestión proactivos que calculan explícitamente
las tasas de envío en función de las demandas de flujo. A diferencia de los algoritmos reactivos, las tasas
se ajustan gradualmente en función de señales indirectas como la congestión local en cada enlace, los
algoritmos proactivos calculan las tasas óptimas en función de la información global sobre qué flujos
están activos en cada enlace y sus demandas de velocidad. Si bien los algoritmos proactivos también
necesitan múltiples iteraciones para calcular las tasas óptimas de manera descentralizada, el uso de
información global permite significativamente menos iteraciones; Cada iteración también puede ser
mucho más rápida porque los esquemas proactivos pueden omitir los lentos pasos de medición de los
algoritmos reactivos basados en la congestión.
En las redes de alta velocidad, la mayoría de los flujos son lo suficientemente cortos como para
completarse en unas pocas a unas pocas decenas de RTT. Mostramos que en tales escenarios, los
algoritmos proactivos logran FCT de cola significativamente más bajos que los algoritmos reactivos
debido a su rápida convergencia.
Como vista previa rápida de nuestros resultados, considere el siguiente experimento simple en el que
ejecutamos una carga de trabajo de búsqueda web estándar [1] en un solo enlace de 100 Gb / s con un
retraso de ida y vuelta de 120 µs. La Figura 1 muestra la cola FCT para flujos de tamaño pequeño y
mediano, y la media FCT para flujos grandes. Los resultados se normalizan con respecto a un esquema
ideal que asigna instantáneamente las tasas justas máximas y mínimas óptimas. Por ahora nos centramos
en PERC, nuestro diseño proactivo y RCP, un algoritmo reactivo representativo. Discutiremos otros
esquemas y diferentes configuraciones de red más adelante (Sección 4).
Vemos que para flujos pequeños y medianos, la cola FCT de RCP es casi cuatro veces mayor que la de
PERC. Por lo tanto, PERC proporciona retardos más predecibles para estos flujos que el RCP reactivo.
Intuitivamente, la gran cola FCT con RCP se debe a que algunos flujos obtienen tasas menores cuando
llegan nuevos flujos debido a tiempos de convergencia deficientes. Para flujos grandes, estos períodos
transitorios de infrautilización tienen menos impacto, pero tienen un impacto adverso en los flujos
pequeños y medianos. Esta intuición se confirma con un segundo experimento que se muestra en la
Figura 2. Observe la fuerte caída en la velocidad de envío para RCP a 600 µs cuando el segundo flujo
comienza y causa congestión, y la subida lenta a tasas justas de máximo a mínimo. Durante el ascenso,
RCP subutiliza el enlace.
MODELOS
Todos los algoritmos de congestión, ya sean reactivos o proactivos, tienen un conjunto objetivo de
tasas de flujo a las que están tratando de converger. Como ejemplo concreto, nos centramos en los
algoritmos de control de congestión que tienen como objetivo la equidad máxima-mínima [5]. Son
posibles otras generalizaciones, como la compartición de flujo compartido [10], y los tiempos de
convergencia más rápidos de los algoritmos proactivos también pueden beneficiar a estos
algoritmos.
Considere una red con un conjunto estático de flujos y enlaces, donde cada flujo a atraviesa un
camino (es decir, un conjunto de enlaces), P (a), y cada enlace l tiene un conjunto de flujos, F (l),
que pasan a través de eso. Si cada flujo a envía a una tasa ra, entonces definimos una asignación
de tasa factible como una que satisface las restricciones de capacidad del enlace: P a∈F (l) ra ≤ Cl,
para todos los enlaces l. Una asignación justa de máximo-mínimo es una asignación factible en la
que para cualquier flujo a, aumentar su tasa ra fuerza una disminución en la tasa para un flujo
diferente a 0, donde ra ≥ ra0. Una característica definitoria para tal asignación es que para cada flujo
a, hay al menos un enlace de cuello de botella l tal que:
El enlace del cuello de botella l está saturado: P a0∈F (l) ra0 = Cl. • El flujo a se envía a la tasa de
participación justa λl del enlace l, definido como la tasa máxima entre todos los flujos en F (l): ra = λl
= maxa0∈F (l) ra0.
Se puede mostrar que para un conjunto dado de enlaces y flujos, existe una asignación justa
máxima-mínima única [5]. En una red dinámica, la asignación máxima-mínima cambia a medida que
los nuevos flujos ingresan a la red y los flujos antiguos salen. Decimos que un algoritmo justo
máximo-mínimo ha convergido cuando todos los flujos se están enviando a la tasa de participación
justa de sus enlaces de cuello de botella.
Usamos RCP como un algoritmo de control de congestión reactivo canónico [12] donde cada enlace l
calcula explícitamente una velocidad Rl y anuncia esta velocidad a cada flujo a ∈ F (l). Cada flujo a envía
a la tasa ra = minl∈P (a) Rl, y eventualmente cada tasa Rl converge a la tasa de participación justa λl. Si
bien se han propuesto otros algoritmos de control de velocidad reactiva para la equidad máxima-mínima,
como XCP [18], nos centramos en RCP que tiene FCT superiores en todos los tamaños de flujo [12, 20]. El
RCP es reactivo porque los enlaces ajustan sus velocidades anunciadas Rl en función de las señales de
congestión, como la velocidad de tráfico de entrada yl (t) y la longitud de la cola ql (t) en el enlace en el
momento t. Cada RTT, d, RCP actualiza Rl en cada enlace de la siguiente manera:
donde Cl es la capacidad del enlace, yl (t) y ql (t) se miden durante el último intervalo de actualización, d,
y α y β son parámetros positivos. La intuición detrás de esta ecuación es que si hay capacidad de reserva
(es decir, Cl - yl (t)> 0), Rl se incrementa para distribuir la capacidad restante entre los flujos de corriente.
A la inversa, si el enlace está congestionado o si hay acumulación de cola, Rl se reduce. RCP es la feria
max-min; es decir, todos los anuncios de Rl convergen a las tasas de participación justa, λl, y por lo tanto,
las tasas de flujo convergen a la asignación justa máxima-mínima. La ecuación de actualización de RCP
resalta las dos fases de los algoritmos de control de congestión reactiva: en la fase de medición, el
algoritmo recibe señales de congestión ruidosas y debe promediar el ruido en varios paquetes. RCP mide
el tamaño de la cola ql (t) y la tasa de llegada de tráfico de entrada yl (t) en un RTT d. En la fase de reacción,
el algoritmo da un "paso" para ajustar las velocidades en reacción a las señales de la fase de medición,
similar a un algoritmo de descenso de gradiente que se mueve en la dirección del gradiente hacia el punto
óptimo. El tiempo que tarda el algoritmo en converger depende del número y el tamaño de dichos pasos
de ajuste. En RCP, los tamaños de paso de la ecuación de actualización se controlan mediante los
parámetros α y β. En la mayoría de los algoritmos reactivos hay una compensación entre la velocidad de
convergencia y la estabilidad; por ejemplo, RCP puede tratar de converger rápidamente dando grandes
pasos hacia la tasa objetivo, b