- Aprender
- Informática
- Ciencias de la computación
- Redes informáticas
- Control de congestión
Control de congestión
IntermedioUnidad 4 de 8 del curso Curso de Redes informáticas
Lo que aprenderás
- Describe cómo el tráfico que supera la capacidad de un enlace genera colas, retardo y pérdidas, por qué esto desperdicia capacidad de la red y cuáles son las dos formas generales de evitar la congestión.
- Analiza cómo la cola de un cuello de botella transforma la carga en retardo y pérdidasDefine la congestión y el enlace limitante, y sigue el crecimiento de la cola de un encaminador cuando el tráfico llega más rápido de lo que el enlace puede enviarlo.
- Explica los costes de la congestión y del colapso por congestiónMuestra cómo las retransmisiones, los duplicados innecesarios y los paquetes descartados al final de trayectos largos desperdician capacidad, y cómo los emisores sin control pueden llevar el rendimiento útil hacia cero.
- Compara el control de congestión de extremo a extremo y el asistido por la redClasifica los mecanismos de control de congestión según el origen de la señal de congestión, las señales que utilizan y si controlan una ventana o una tasa.
- Analiza cómo la cola de un cuello de botella transforma la carga en retardo y pérdidas
- Sigue cómo un emisor TCP utiliza su ventana de congestión para sondear el ancho de banda mediante el inicio lento y la evitación de la congestión, reduce su envío mediante la retransmisión rápida, la recuperación rápida y los vencimientos del tiempo de espera, y determina qué rendimiento produce ese comportamiento.
- Relaciona la ventana de congestión con la tasa de envíoUtiliza la ventana de congestión, la ventana de recepción y el tiempo de ida y vuelta para calcular a qué velocidad transmite un emisor TCP y cuántos datos necesita un trayecto en vuelo.
- Sigue las fases de inicio lento y evitación de la congestiónCalcula cómo crece cwnd durante el inicio lento y la evitación de la congestión, y explica cuándo pasa el emisor de uno a otra.
- Explica cómo reacciona TCP ante las pérdidas: vencimientos del tiempo de espera, retransmisión rápida y recuperación rápidaAplica las reglas que sigue TCP tras el vencimiento de un tiempo de espera o tres acuses de recibo duplicados y analiza las diferencias entre TCP Tahoe, Reno y NewReno.
- Estima el rendimiento de TCP a partir de su evolución en diente de sierraUtiliza el modelo de diente de sierra y la fórmula basada en la tasa de pérdidas para estimar el rendimiento de una conexión TCP de larga duración, y descubre por qué TCP clásico tiene dificultades en trayectos rápidos y largos.
- Relaciona la ventana de congestión con la tasa de envío
- Explica por qué el incremento aditivo y el decremento multiplicativo llevan a los flujos que compiten hacia un reparto igualitario, mide la equidad y reconoce las condiciones reales que generan repartos desiguales.
- Demuestra por qué AIMD converge hacia un reparto equitativo y eficienteUtiliza la representación de dos flujos de Chiu y Jain para mostrar cómo el incremento aditivo y el decremento multiplicativo llevan a dos emisores a compartir un enlace por igual.
- Evalúa la equidad entre flujos realesMide la equidad con el índice de Jain y la equidad max-min, y explica cómo las diferencias de RTT, las conexiones paralelas, el tráfico que no reacciona y los distintos algoritmos cambian el reparto.
- Demuestra por qué AIMD converge hacia un reparto equitativo y eficiente
- Describe por qué los búferes llenos generan retardos largos, cómo la gestión activa de colas descarta o marca paquetes anticipadamente y cómo la notificación explícita de congestión lleva una señal de congestión al emisor sin perder paquetes.
- Explica la latencia excesiva por acumulación en búferes y la gestión activa de colasExplica por qué los búferes grandes con descarte en cola llena y los emisores basados en pérdidas producen colas persistentes, y cómo RED y CoDel mantienen cortas las colas al actuar anticipadamente.
- Describe la notificación explícita de congestión en IP y TCPSigue los puntos de código ECN y los indicadores TCP desde el encaminador hasta el receptor y el emisor, y explica cómo TCP para centros de datos y L4S utilizan marcas frecuentes para lograr un retardo muy bajo.
- Explica la latencia excesiva por acumulación en búferes y la gestión activa de colas
- Explica cómo CUBIC aumenta su ventana en función del tiempo transcurrido desde la última pérdida, cómo los algoritmos basados en el retardo y en modelos, como Vegas y BBR, evitan llenar los búferes y cuáles son sus ventajas y limitaciones.
- Explica cómo CUBIC aumenta su ventanaCalcula la ventana de CUBIC a partir de su función de crecimiento cúbica y explica su reducción más moderada, su modo compatible con Reno y por qué su crecimiento depende del tiempo y no del RTT.
- Explica el control basado en el retardo y cómo BBR modela el trayectoExplica cómo Vegas deduce la presencia de colas a partir del retardo, cómo BBR estima el ancho de banda del cuello de botella y el RTT mínimo para espaciar los paquetes a la tasa adecuada, y cómo se comparan CUBIC y BBR.
- Explica cómo CUBIC aumenta su ventana
- Explica por qué es difícil cambiar TCP, cómo QUIC construye un protocolo de transporte fiable y seguro sobre UDP y cómo detecta pérdidas y controla la congestión.
- Explica por qué se osifican los protocolos de transporte y cómo responde el diseño de QUICExplica cómo los dispositivos intermedios de red y las implementaciones en el núcleo ralentizan la evolución de TCP, y cómo los flujos, el establecimiento combinado, el cifrado y los identificadores de conexión de QUIC responden a las limitaciones de TCP.
- Describe la detección de pérdidas y el control de congestión en QUICExplica cómo los números de paquete y los acuses de recibo de QUIC mejoran la detección de pérdidas y aplica las reglas de su controlador de congestión predeterminado para la ventana inicial, la recuperación, la congestión persistente, ECN y el espaciado de paquetes.
- Explica por qué se osifican los protocolos de transporte y cómo responde el diseño de QUIC
Guía de estudio de Control de congestión
1Por qué la congestión ralentiza la entrega de datos útiles
Un emisor rápido puede encontrarse con un trayecto lento. Varias entradas pueden alimentar un enlace de salida y su tráfico combinado debe compartir la capacidad de ese enlace. Sigue lo que ocurre con los paquetes cuando se agota esa capacidad y después distingue la entrega de datos útiles del tráfico empleado en repeticiones y pérdidas posteriores. El desafío del emisor es reconocer la sobrecarga a tiempo para reducirla, mediante sus propias observaciones o la información de los encaminadores.
1.1 De un enlace ocupado a una cola creciente
La congestión comienza cuando el tráfico llega a una parte de una red más rápido de lo que esa parte puede transportarlo durante un período sostenido. Los paquetes esperan en el búfer de salida de un encaminador, llamado cola. El cuello de botella es el enlace con menor capacidad disponible para ese tráfico a lo largo de su trayecto.
Sigue el exceso
Supón que un encaminador recibe 12 Mbps para un enlace de salida que puede enviar 10 Mbps. No puede acelerar la salida para igualar la entrada. Cada segundo quedan 2 megabits esperando, o 250 000 bytes después de dividir entre 8. Si comienza vacío, un búfer de 1 000 000 de bytes se llena en:
Un paquete que se incorpora detrás de esa cantidad de datos en cola espera a que el enlace transmita los datos que tiene delante:
Una vez que el búfer permanece lleno, la salida sigue transportando solo 10 Mbps. Se descartan aproximadamente 2 Mbps de los 12 Mbps que llegan, una sexta parte del tráfico ofrecido. Estos cálculos consideran tasas de llegada y salida constantes; los tiempos de cada paquete añaden pequeñas variaciones.
Decide si la cola se vaciará
Una ráfaga breve es distinta de una sobrecarga sostenida. Una cola puede absorber una ráfaga y vaciarse cuando las llegadas caen por debajo de la tasa de salida. Si las llegadas constantes igualan exactamente la tasa de salida, una cola existente persiste: cada salida se sustituye por una llegada. Las llegadas sostenidas por encima de la tasa de salida hacen que la cola crezca hasta llenar el búfer.
El tráfico real es irregular. Incluso por debajo de la utilización media completa, las ráfagas hacen esperar a los paquetes. Cerca de la capacidad, queda poco tiempo libre para vaciar esas ráfagas, por lo que el retardo medio aumenta bruscamente. La congestión aumenta principalmente el componente de cola del retardo de los paquetes; el procesamiento, la transmisión y la propagación son componentes distintos.
Identifica la tasa a la que te refieres
| Tasa | Qué cuenta |
|---|---|
| Carga ofrecida | Tráfico enviado a la red, incluidas las retransmisiones |
| Rendimiento | Paquetes o bytes entregados por segundo |
| Rendimiento útil | Datos nuevos y útiles de la aplicación entregados por segundo, contados una sola vez |
Una diferencia de velocidades puede poner de manifiesto el cuello de botella: una red local de 1 Gbps puede alimentar un enlace de acceso de 50 Mbps. La agregación tiene el mismo efecto cuando varias entradas de un encaminador comparten una salida. Una sola entrada puede parecer modesta, aunque su suma sobrecargue esa salida.
Elige el límite correcto
El control de flujo protege el búfer del receptor mediante la ventana de recepción que este anuncia. El control de congestión protege el trayecto entre los extremos. Un receptor puede tener amplia memoria libre mientras un encaminador del trayecto descarta paquetes.
Un búfer mayor en el encaminador puede contener una ráfaga más larga, pero una sobrecarga sostenida llena cualquier búfer finito y añade tiempo de espera. Un enlace limitante más rápido elimina esa falta de capacidad. Entonces otro enlace limita el trayecto; solo se congestiona cuando el tráfico supera la capacidad disponible en él.
Puntos clave
- La congestión hace crecer las colas cuando las llegadas sostenidas superan la tasa de salida disponible.
- Una cola se vacía cuando las llegadas están por debajo de la capacidad y persiste cuando son constantes e iguales a ella.
- Convierte los bytes en cola a bits antes de dividir entre la tasa del enlace para calcular el tiempo de espera.
- El rendimiento útil cuenta los datos útiles una sola vez; la carga ofrecida incluye las retransmisiones.
- El control de flujo protege al receptor; el control de congestión protege el trayecto de red.
1.2 Por qué una red ocupada puede entregar muy poco
Un enlace saturado solo es útil cuando su tráfico ayuda a entregar datos nuevos. La congestión consume capacidad de formas que pueden reducir la entrega de datos útiles aunque la red permanezca ocupada.
Cuenta los costes
El retardo de cola aparece primero. Una videollamada puede resultar difícil de seguir antes de que se descarte ningún paquete, porque la voz llega demasiado tarde. La fiabilidad por sí sola no puede corregir ese retardo.
Los paquetes perdidos generan un segundo coste: un emisor que ofrece entrega fiable los retransmite. Si un enlace de 10 Mbps transporta paquetes del mismo tamaño y el 20 % repite datos ya transportados por ese enlace, como máximo 8 Mbps transportan datos nuevos:
El rendimiento útil de la aplicación es menor después de tener en cuenta las cabeceras y las posibles pérdidas en otros puntos. Por tanto, la actividad del enlace exagera el avance realizado por la aplicación.
Algunas retransmisiones son innecesarias. Un paquete puede estar esperando en una cola larga cuando vence el temporizador del emisor. Su sustituto entra entonces en la misma red ocupada. Ambas copias pueden llegar, pero el receptor conserva los datos una sola vez. La espera en cola ha convertido un problema de retardo en carga ofrecida adicional.
Observa los enlaces anteriores a un descarte
Un descarte cerca del destino puede desperdiciar el trabajo de varios enlaces anteriores. Imagina que un paquete atraviesa los enlaces A y B antes de ser descartado en la cola de C. Las transmisiones en A y B utilizaron capacidad sin entregar ese paquete. La repetición de este patrón deja menos capacidad en los enlaces anteriores para tráfico que podría haber llegado a su destino.
A medida que aumenta la carga ofrecida, el rendimiento también aumenta al principio. Sin embargo, con suficientes descartes posteriores, aumentar la carga envía más tráfico a un trabajo que se desperdiciará. El rendimiento de extremo a extremo puede alcanzar un máximo y después bajar. El colapso por congestión es el caso extremo: la carga ofrecida permanece alta mientras el rendimiento útil cae hacia cero.
En octubre de 1986, el rendimiento entre el Laboratorio Lawrence Berkeley y la Universidad de California en Berkeley cayó de 32 kbps a 40 bps, una reducción por un factor de 800. El trabajo de Jacobson y Karels de 1988 introdujo una respuesta coordinada: inicio lento, evitación de la congestión, mejor estimación del tiempo de ida y vuelta y espera exponencial del temporizador. El control de ventana y unos temporizadores adecuados abordan distintas partes del ciclo de realimentación.
Encuentra el intervalo de funcionamiento útil
El codo de la curva y el precipicio de la curva de Raj Jain describen dos límites. Más allá del codo, la carga añadida aporta poco rendimiento adicional pero mucho más retardo. Más allá del precipicio, el rendimiento baja a medida que predominan las pérdidas y el trabajo desperdiciado. El control de congestión busca una entrega eficiente cerca del codo, manteniéndose alejado del colapso.
Internet no tiene un controlador central que asigne una tasa a cada emisor. Cada emisor debe reaccionar a la información que observa. Si uno sigue transmitiendo a una tasa fija alta mientras los demás la reducen, puede quitarles capacidad y agravar la sobrecarga.
La retransmisión hace fiable un flujo de bytes, pero no elimina el coste de las pérdidas. La recuperación consume capacidad y retrasa la entrega de los datos ausentes; esperar a que venza un temporizador de retransmisión puede detener la conexión mucho más tiempo que la recuperación rápida.
Puntos clave
- El retardo de cola puede perjudicar al tráfico interactivo antes de que se pierdan paquetes.
- Las retransmisiones y los duplicados innecesarios consumen capacidad sin añadir datos nuevos de la aplicación.
- Un descarte posterior desperdicia las transmisiones anteriores que transportaron el paquete.
- El colapso por congestión combina una intensa actividad de la red con una entrega muy baja de datos útiles.
- El codo señala un aumento del retardo con poca ganancia de rendimiento; el precipicio señala una caída del rendimiento.
- Cada emisor contribuye a mantener la carga ofrecida dentro de lo que el trayecto puede soportar.
1.3 Cómo saben los emisores cuándo reducir su tasa
Un emisor no ve directamente todas las colas de los encaminadores de su trayecto. El control de congestión es un proceso de realimentación: observar la entrega, decidir qué significan las observaciones y ajustar la cantidad o la tasa del tráfico que entra en la red.
Localiza la fuente de información
En el control de extremo a extremo, los extremos deducen la congestión a partir de pérdidas o retardos sin un mensaje explícito del encaminador. Reno utiliza las pérdidas. Vegas utiliza cambios en el tiempo de ida y vuelta. BBR construye un modelo del trayecto a partir de mediciones de la tasa de entrega y del RTT.
En el control asistido por la red, un encaminador proporciona información explícita. ECN marca un paquete que viaja hacia el receptor, y este comunica la marca en su acuse de recibo. Los mecanismos ATM más antiguos podían comunicar una tasa permitida explícita. Un encaminador también puede enviar un mensaje directamente al emisor, llamado paquete de aviso de congestión. El mensaje ICMP Source Quench de internet usaba ese enfoque y quedó obsoleto en 2012.
Interpreta las señales con cuidado
| Señal | Qué ofrece | Qué puede confundir al emisor |
|---|---|---|
| Pérdida | Indicio de que los paquetes no llegaron | La corrupción inalámbrica puede causar pérdidas sin congestión |
| Aumento del RTT | Una advertencia temprana de espera adicional | Un cambio de ruta también puede aumentar el RTT |
| Marcas explícitas | Una advertencia de congestión del encaminador sin perder los datos marcados | El trayecto y los extremos deben ser compatibles con el mecanismo |
Con colas de descarte en cola llena, la pérdida normalmente llega después de que se llene el búfer. La gestión activa de colas puede descartar o marcar paquetes antes. Esto cambia el momento en que llega una señal, sin cambiar la necesidad de que el emisor responda.
El RTT mínimo observado es útil porque aproxima el de un trayecto con poca espera en colas. Un RTT superior a ese mínimo sugiere que hay espera, pero un extremo debe interpretar las mediciones a lo largo del tiempo. Ni una sola muestra variable ni cada paquete inalámbrico perdido identifican la causa con certeza.
Controla una ventana o una tasa
Un emisor basado en ventanas limita los datos en vuelo sin acuse de recibo. A medida que regresan los acuses, se abre espacio para datos nuevos. Un emisor basado en la tasa establece una tasa objetivo y suele utilizar el espaciado de paquetes, distribuyéndolos en el tiempo. Los controles están relacionados:
Por ejemplo, 100 000 bytes por cada 50 ms corresponden a 2 000 000 de bytes/s, o 16 Mbps, cuando la ventana es el límite efectivo. Un controlador basado en la tasa también puede utilizar una ventana como límite superior para los datos pendientes.
Equilibra varios objetivos
La eficiencia significa mantener ocupada la capacidad disponible del cuello de botella. La equidad se refiere a cómo la reparten los flujos que compiten. Un retardo bajo requiere colas cortas; la estabilidad evita grandes oscilaciones repetidas; la capacidad de respuesta significa adaptarse cuando cambian la capacidad o la competencia. Una regla que llena rápidamente un trayecto puede, aun así, ser deficiente para mantener bajo el retardo o compartir con otros algoritmos.
El controlador de TCP suele ejecutarse en el sistema operativo. El controlador de QUIC suele ejecutarse en una biblioteca de la aplicación. UDP no proporciona ningún controlador, por lo que las aplicaciones que lo usan deben aportar su propio control de congestión. El protocolo que transporta los datos no elimina la obligación de responder a la congestión.
Puntos clave
- Los controladores de extremo a extremo deducen la congestión; los asistidos por la red reciben información explícita de los encaminadores.
- Las pérdidas, el retardo y las marcas explícitas tienen distintos tiempos y límites de interpretación.
- El control de ventana limita los datos en vuelo; el espaciado distribuye los paquetes a una tasa elegida.
- La eficiencia, la equidad, el retardo, la estabilidad y la capacidad de respuesta deben evaluarse en conjunto.
2Cómo TCP aumenta y recupera su ventana
TCP controla la cantidad de datos sin acuse de recibo que deja en la red. Los ACK permiten que esa cantidad crezca; las pérdidas hacen que disminuya. Sigue la ventana en segmentos para ver con claridad las reglas de crecimiento y después convierte a bytes y segundos para estimar una tasa. Distinguir el vencimiento del tiempo de espera de la recuperación mediante ACK duplicados explica las distintas caídas en una secuencia de ventanas y muestra por qué TCP clásico tiene dificultades para recuperarse en trayectos rápidos con tiempos de ida y vuelta largos.
2.1 La ventana, el tiempo de ida y vuelta y el trayecto
La ventana de congestión, cwnd, es un límite del emisor para los datos en vuelo sin acuse de recibo. Se mide en bytes, aunque las secuencias suelen contar segmentos de tamaño máximo. No es un campo de la cabecera TCP. El receptor anuncia un límite distinto, la ventana de recepción, rwnd.
Aplica ambos límites
Las nuevas transmisiones deben ajustarse tanto al control de flujo como al control de congestión. El límite utilizable es:
Si cwnd es de 30 000 bytes y rwnd es de 18 000 bytes, rige el límite del receptor. Con 12 000 bytes aún pendientes, el emisor puede enviar otros 6000 bytes. Después de una reducción de la ventana de congestión, los datos existentes pueden superar el nuevo límite; el emisor espera los acuses de recibo antes de añadir más.
El tamaño máximo de segmento, MSS, cuenta los datos de aplicación y excluye las cabeceras. Una MTU Ethernet de 1500 bytes menos las cabeceras IPv4 de 20 bytes y TCP de 20 bytes deja 1460 bytes, sin opciones. Los estándares usan SMSS para el MSS del emisor.
Convierte una ventana en una tasa
Un emisor limitado por la ventana entrega aproximadamente una ventana por RTT. Para una cwnd de 65 536 bytes y un RTT de 50 ms:
Multiplica por 8 para obtener unos 10,5 Mbps. Esta estimación también requiere suficientes datos de aplicación, una ventana de recepción al menos igual de grande y un trayecto capaz de transportar la tasa resultante.
Llena el trayecto sin llenar su cola
El producto ancho de banda-retardo, BDP, es el ancho de banda del cuello de botella multiplicado por el RTT mínimo sin colas. Para 100 Mbps y 40 ms:
Dividir entre 8 da 500 000 bytes, unos 342 segmentos de 1460 bytes. Un BDP en vuelo mantiene ocupado este cuello de botella idealizado sin una cola persistente. Menos datos dejan capacidad inactiva; los datos sobrantes esperan y aumentan el RTT medido. Calcular el BDP a partir de un RTT ya incrementado confunde los datos en cola con los datos que necesita el trayecto.
La temporización mediante ACK ayuda a mantener el ritmo. Cuando los paquetes salen del cuello de botella, los ACK regresan y liberan espacio para sus sustitutos. En régimen estable, las salidas ayudan así a determinar el momento de las nuevas llegadas. Esta es la idea de conservación de paquetes que sustenta el comportamiento de autotemporización de TCP.
Establece el punto de partida y el umbral
La ventana inicial de RFC 5681 va de dos a cuatro segmentos según SMSS: cuatro hasta 1095 bytes, tres hasta 2190 bytes y dos por encima de ese valor. RFC 6928 permite una ventana inicial de hasta diez segmentos. Una secuencia que comienza en un segmento es útil para enseñar, no afirma que todas las conexiones nuevas comiencen ahí.
ssthresh, el umbral de inicio lento, selecciona el modo de crecimiento. Por debajo de él, TCP utiliza el inicio lento; por encima, la evitación de la congestión. Cuando son iguales, RFC 5681 permite cualquiera de los dos. Un umbral inicial alto permite a un emisor nuevo descubrir la capacidad mediante el inicio lento.
Puntos clave
- cwnd es un estado privado del emisor; rwnd la anuncia el receptor.
- Los datos nuevos deben respetar ambas ventanas después de tener en cuenta los bytes que ya están en vuelo.
- MSS cuenta los datos de aplicación y excluye las cabeceras IP y TCP.
- Una tasa limitada por la ventana es aproximadamente la ventana utilizable dividida entre el RTT.
- El BDP utiliza el RTT sin colas; el exceso de datos en vuelo crea una cola.
- La temporización mediante ACK vincula las nuevas transmisiones con la entrega a través del cuello de botella.
- La ventana inicial y ssthresh determinan cómo comienza y crece una secuencia.
2.2 Crecimiento exponencial y después un segmento por tiempo de ida y vuelta
TCP debe descubrir primero cuánto tráfico puede transportar el trayecto. El inicio lento amplía la ventana rápidamente desde un punto de partida pequeño. La evitación de la congestión sondea después con más cautela una vez alcanzado el umbral de inicio lento.
Cuenta los acuses de recibo en el inicio lento
RFC 5681 aumenta cwnd hasta en un SMSS por cada acuse de recibo de datos nuevos:
donde N es el número de bytes recién reconocidos. Con un ACK por cada segmento completo y suficientes datos para llenar cada ventana, cada segmento enviado deja espacio para dos en la siguiente ronda: uno de sustitución y otro gracias al aumento de la ventana.
Empezando en 1 MSS, los valores ronda a ronda son 1, 2, 4, 8, 16, 32 y 64 MSS. Se alcanzan 64 MSS en seis RTT. Con 100 ms por RTT, son 0,6 s. El nombre refleja un comienzo más seguro que enviar inmediatamente una ventana de recepción completa; el crecimiento en sí es exponencial.
Los ACK retardados cambian la cuenta. Si el receptor envía un ACK por cada dos segmentos completos, la regla sencilla por ACK produce un crecimiento aproximado de 1,5 veces por RTT. El conteo adecuado de bytes, descrito en RFC 3465, utiliza los bytes recién reconocidos para abordar la dependencia de la frecuencia de los ACK.
Cambia de modo de crecimiento
Para una secuencia con una cwnd inicial de 1 MSS y ssthresh de 8 MSS, elige la evitación de la congestión cuando sean iguales. La secuencia queda así:
Los tres primeros cambios duplican la ventana. Los cambios posteriores añaden un MSS por RTT. Una pérdida puede interrumpir cualquiera de las dos fases. Las implementaciones que usan HyStart++ (RFC 9406) también pueden abandonar el inicio lento antes cuando aumenta el retardo.
Explica el incremento aditivo
Una regla habitual por ACK durante la evitación de la congestión es:
Con 10 MSS, un ACK añade aproximadamente 0,1 MSS. Durante la ronda llegan unos diez ACK, por lo que el aumento total es de aproximadamente un MSS. El incremento por ACK se hace menor a medida que crece cwnd, manteniendo aproximadamente constante el incremento ronda a ronda.
Esta diferencia importa en un trayecto grande. Pasar de 16 a 32 MSS tarda un RTT en el inicio lento ideal, pero dieciséis RTT en la evitación de la congestión. El crecimiento más lento reduce las sobrecargas repentinas una vez que el emisor dispone de una estimación útil de la capacidad.
Reconoce un reinicio
El inicio lento no se limita al comienzo de una conexión. El vencimiento del tiempo de espera de retransmisión restablece cwnd en un segmento. Un período de inactividad superior al tiempo de espera de retransmisión también exige reiniciar desde una ventana no mayor que la ventana inicial, porque la temporización anterior mediante ACK y la estimación de capacidad pueden haber dejado de ajustarse al trayecto.
La evitación de la congestión no mantiene cwnd en un valor seguro fijo. Sigue añadiendo capacidad hasta que llega información sobre congestión. En un trayecto con descarte en cola llena, este sondeo continuo tiende a crear una cola persistente antes de que las pérdidas indiquen al emisor que debe reducir su tasa.
Puntos clave
- Con un ACK por segmento, el inicio lento ideal duplica cwnd en cada RTT.
- Los ACK retardados ralentizan la regla sencilla de crecimiento por ACK.
- La evitación de la congestión añade aproximadamente un MSS por RTT, no por ACK.
- ssthresh separa los modos de crecimiento; una secuencia debe elegir una convención cuando los valores son iguales.
- Los vencimientos del tiempo de espera y los períodos largos de inactividad pueden requerir un nuevo inicio lento.
2.3 Las distintas pérdidas producen diferentes secuencias de recuperación
TCP puede deducir que falta un segmento a partir de un temporizador o de acuses de recibo duplicados. La distinción importa: el vencimiento del tiempo de espera ofrece menos indicios de que la red sigue entregando tráfico que tres ACK duplicados.
Establece el nuevo umbral
Reno utiliza la cantidad realmente pendiente, FlightSize, para establecer:
FlightSize suele estar cerca de cwnd durante una transferencia plenamente activa, pero no tienen por qué ser iguales cuando la aplicación envía pocos datos. El límite inferior impide que el umbral caiga por debajo de dos segmentos.
Después del vencimiento del tiempo de espera, el emisor retransmite, fija cwnd en un SMSS y reinicia el inicio lento. Los vencimientos repetidos para los mismos datos duplican el temporizador de retransmisión. Esta espera exponencial impide que un fallo persistente produzca un flujo igualmente persistente de reintentos.
Recupérate antes de que venza el temporizador
Tres ACK duplicados muestran que llegaron tres segmentos posteriores a un hueco. No significan que se hayan perdido tres segmentos. Uno o dos duplicados pueden deberse a una alteración del orden, por lo que TCP espera al tercero antes de que la retransmisión rápida envíe el segmento ausente.
Reno entra entonces en recuperación rápida. Supón que FlightSize es de 12 MSS. El nuevo umbral es 6 MSS y Reno establece temporalmente:
Los tres segmentos adicionales representan los paquetes que, según los indicios, han salido de la red. Cada ACK duplicado adicional infla cwnd en un MSS, lo que permite seguir enviando cuando la ventana lo permite. Cuando un ACK hace avanzar el acuse de recibo acumulativo, Reno desinfla cwnd a 6 MSS y reanuda la evitación de la congestión.
| Suceso con 12 MSS pendientes | Tahoe | Reno |
|---|---|---|
| Vencimiento del tiempo de espera | cwnd pasa a 1 MSS | cwnd pasa a 1 MSS |
| Tercer ACK duplicado | Retransmite y reinicia en 1 MSS | Retransmite y entra en recuperación con 9 MSS |
| Recuperación satisfactoria | Crece mediante inicio lento | Desinfla a 6 MSS y después crece de forma aditiva |
Con una ventana inicial de 1 MSS y un ssthresh de 8 MSS, cwnd crece 1, 2, 4, 8, 9, 10, 11, 12 MSS antes de la pérdida. Reno acaba continuando en 6, 7, 8, 9. Tahoe reinicia en 1, 2, 4, alcanza el nuevo umbral de 6 y después continúa 7, 8.
Repara varios huecos en una ventana
Reno clásico sale de la recuperación con el primer ACK de datos nuevos. Si ese ACK cubre solo parte de los datos originales en vuelo, queda otro hueco. Reno puede volver a reducir la ventana o agotar el tiempo de espera.
NewReno (RFC 6582) permanece en recuperación ante ese ACK parcial y retransmite el siguiente segmento ausente. Sale cuando se reconocen todos los datos pendientes al entrar en recuperación. SACK informa explícitamente de los bloques recibidos; la recuperación basada en SACK puede identificar y reparar varios huecos en un tiempo de ida y vuelta.
Un episodio de congestión normalmente debería causar una reducción, aunque se pierdan varios paquetes. NewReno y la recuperación basada en SACK lo gestionan de forma más fiable que Reno clásico. CUBIC utiliza un factor de reducción distinto para las señales de congestión habituales y conserva el 70 %, pero también reinicia en un segmento después del vencimiento del tiempo de espera.
Puntos clave
- Reno establece ssthresh a partir de FlightSize, con un mínimo de dos SMSS.
- El vencimiento del tiempo de espera restablece cwnd en un SMSS y los vencimientos repetidos aumentan la espera del temporizador.
- Tres ACK duplicados desencadenan la retransmisión rápida; indican que llegaron segmentos posteriores a un hueco.
- Reno infla cwnd durante la recuperación rápida y la desinfla hasta ssthresh al salir.
- NewReno permanece en recuperación ante ACK parciales para reparar varias pérdidas.
- SACK informa de los bloques recibidos para que el emisor pueda localizar más de un hueco.
- Tahoe reinicia el inicio lento tras una pérdida detectada por ACK duplicados; Reno normalmente continúa de forma aditiva después de la recuperación.
- Las reducciones de la ventana de congestión corresponden a episodios de congestión, no a cada paquete perdido por separado.
2.4 Estima la tasa de una transferencia de larga duración
Reno clásico aumenta repetidamente su ventana y la reduce tras la congestión. El diente de sierra resultante proporciona una estimación útil en régimen estable cuando el RTT es aproximadamente constante, la retransmisión rápida detecta las pérdidas y no hay vencimientos del tiempo de espera ni inicio lento.
Calcula la ventana media
Sea W la ventana máxima en segmentos. Una reducción a la mitad produce un intervalo de W/2 a W, cuya media es 0,75 W. Multiplica por MSS para obtener bytes por tiempo de ida y vuelta y después divide entre el RTT:
Para W de 24 segmentos, MSS de 1460 bytes y RTT de 80 ms, la tasa máxima es de 3,504 Mbps. La media es de unos 2,63 Mbps. Recuerda que una ventana expresada en segmentos necesita un factor correspondiente al tamaño del segmento; una ventana ya expresada en bytes no lo necesita.
Relaciona el rendimiento con las pérdidas
La aproximación de Mathis expresa el mismo comportamiento de tipo Reno mediante la fracción de pérdidas L:
Si MSS se expresa en bytes y RTT en segundos, T se expresa en bytes/s. Con un MSS de 1460 bytes, un RTT de 0,1 s y una fracción de pérdidas de 0,0001, el denominador es 0,001 s. El resultado es 1 781 200 bytes/s, unos 14,25 Mbps después de multiplicar por 8.
Con una fracción de pérdidas fija, duplicar el RTT reduce el rendimiento a la mitad. Con un RTT fijo, duplicar el rendimiento requiere que las pérdidas bajen a una cuarta parte, porque el denominador contiene la raíz cuadrada de las pérdidas. Una fracción de pérdidas de 0,0001 significa 0,01 %, no 0,0001 %.
Examina el problema de las redes de alta velocidad
Un trayecto de 10 Gbps con un RTT sin colas de 100 ms necesita 1 mil millones de bits, o 125 000 000 de bytes, en vuelo para llenarse. Con segmentos de 1500 bytes se obtienen unos 83 333 segmentos. Reducir esa ventana a la mitad deja unos 41 667 segmentos por recuperar. Reno añade uno por RTT, por lo que recuperarlos tarda unos 4167 s, casi 70 minutos.
Ese valor de 83 333 segmentos es la ventana necesaria para enviar a 10 Gbps en un instante. Un diente de sierra de Reno con una media de 10 Gbps necesitaría un máximo mayor porque su ventana media es solo tres cuartas partes del máximo. La fórmula basada en la tasa de pérdidas estima que mantener una media de 10 Gbps con este MSS y RTT requiere una pérdida de alrededor de un segmento por cada 4,7 mil millones.
Comprueba otros límites
Un controlador no puede entregar más rápido que el cuello de botella, y una ventana de recepción pequeña puede limitar antes que cwnd. Utiliza el menor límite aplicable. Los vencimientos del tiempo de espera reducen la tasa por debajo del modelo sencillo, y un objeto pequeño puede terminar por completo durante el inicio lento. Su tiempo de finalización depende mucho de las rondas de arranque y de la ventana inicial, por lo que la fórmula para transferencias de larga duración describe mal esa transferencia.
Por tanto, un enlace de acceso más rápido solo ayuda cuando elimina un límite efectivo. Un RTT largo, las pérdidas o una ventana pequeña pueden dejar una conexión individual muy por debajo de la capacidad del enlace mejorado.
Puntos clave
- Un diente de sierra de Reno que va de W/2 a W tiene una ventana media de aproximadamente 0,75 W.
- El modelo de Mathis da un rendimiento proporcional a 1/RTT y a 1/√L.
- Mantén la coherencia entre segmentos, bytes, bits y segundos al calcular tasas.
- Los trayectos con un BDP grande hacen lenta la recuperación de Reno porque solo crece un segmento por RTT.
- La capacidad del cuello de botella y la ventana de recepción siguen siendo límites superiores independientes.
- Las transferencias cortas y las conexiones con muchos vencimientos del tiempo de espera necesitan algo más que un modelo de régimen estable.
3Cómo se reparten los flujos un enlace compartido
Mantener ocupado un enlace y compartirlo equitativamente son objetivos distintos. Dos flujos pueden utilizar toda la capacidad mientras uno acapara casi toda. Sigue cómo los incrementos aditivos iguales y los decrementos proporcionales cambian sus tasas y después comprueba qué ocurre cuando sus condiciones son distintas. Las medidas de equidad ayudan a describir el resultado, pero interpretarlas también requiere saber a quién representan los flujos y cuánto tráfico necesita cada uno.
3.1 Por qué AIMD lleva a los flujos hacia un reparto igualitario
Si K flujos activos quieren más capacidad de la que un cuello de botella puede darles, una parte igual por flujo es R/K, donde R es la tasa disponible. La eficiencia pregunta si sus tasas suman R. La equidad pregunta con qué igualdad se la reparten.
Representa dos tasas en un diagrama
En un diagrama de Chiu–Jain, las coordenadas horizontal y vertical son las tasas de los dos flujos. La recta de eficiencia es:
La recta de equidad es la diagonal donde las tasas son iguales. Su intersección es la asignación equitativa que utiliza toda la capacidad. En un enlace de 10 Mbps es de 5 Mbps por flujo. Los puntos por debajo de la recta de eficiencia dejan capacidad sin utilizar; los puntos por encima ofrecen más tráfico del que el enlace puede transportar.
Distingue las dos actualizaciones
El incremento aditivo añade la misma cantidad a cada tasa. Partiendo de 8 y 1 Mbps, añadir 0,5 Mbps a cada una da 8,5 y 1,5 Mbps. La diferencia sigue siendo de 7 Mbps, pero el flujo menor gana más en relación con su tasa inicial. En el diagrama, el punto se desplaza en paralelo a la diagonal de igualdad.
El decremento multiplicativo multiplica ambas tasas por el mismo factor. Reducir a la mitad 9 y 2 Mbps produce 4,5 y 1 Mbps. Su proporción no cambia, mientras que la diferencia absoluta baja de 7 a 3,5 Mbps. El punto se desplaza hacia el origen y elimina rápidamente la sobrecarga.
Son dos sentidos distintos de mejora: sumar cantidades iguales mejora el equilibrio relativo; la reducción proporcional disminuye la diferencia absoluta. Repetir ambos pasos impide que la diferencia vuelva a crecer mientras se sondea de nuevo la capacidad.
Sigue varios ciclos
Empieza con 8 y 1 Mbps en el enlace de 10 Mbps. Añade 0,5 Mbps por flujo en cada paso y reduce solo después de que el total supere la capacidad. Después de dos incrementos, las tasas son 9 y 2, con un total de 11. Reducirlas a la mitad da 4,5 y 1.
Cinco incrementos más llevan a 7 y 3,5, con un total de 10,5. Reducirlas a la mitad da 3,5 y 1,75. Las diferencias han sido 7; 3,5 y 1,75 Mbps. Otra reducción sincronizada a la mitad hace que la siguiente diferencia sea de 0,875 Mbps. Los flujos se aproximan a un reparto igualitario mientras su total sigue oscilando alrededor de la capacidad disponible.
Compara otras reglas de actualización
| Regla | Qué ocurre con tasas desiguales |
|---|---|
| Incremento aditivo, decremento aditivo | Las sumas y restas iguales conservan la diferencia absoluta |
| Incremento multiplicativo, decremento multiplicativo | Los cambios proporcionales iguales conservan la proporción entre tasas |
| Incremento multiplicativo, decremento aditivo | El crecimiento favorece al flujo mayor y el equilibrio puede empeorar |
| Incremento aditivo, decremento multiplicativo | Los ciclos repetidos se aproximan a un reparto igualitario y un uso eficiente |
Esta convergencia supone RTT iguales, señales de congestión sincronizadas, respuestas equivalentes y flujos que permanecen activos el tiempo suficiente. El paso aditivo de Reno es de aproximadamente un MSS por RTT y su factor de decremento es de un medio. Otros pasos aditivos positivos y factores de decremento entre cero y uno dan el mismo argumento básico de convergencia. Los flujos reales no tienen por qué cumplir todos estos supuestos, por lo que un par desigual en un instante no demuestra por sí solo un fallo de AIMD.
Puntos clave
- La eficiencia se refiere a la suma de las tasas; la equidad, a su reparto.
- Los incrementos aditivos iguales conservan la diferencia absoluta mientras mejoran el equilibrio relativo.
- Los decrementos multiplicativos iguales conservan la proporción mientras reducen la diferencia absoluta.
- Los ciclos AIMD repetidos convergen cuando coinciden los RTT, las señales y las respuestas.
- La equidad describe el reparto a largo plazo mientras las tasas siguen oscilando.
3.2 Mide el reparto y explica los resultados desiguales
Los repartos iguales son una referencia útil, pero los flujos reales pueden diferir en demanda, RTT, número de conexiones y controlador de congestión. Una afirmación sobre equidad necesita una respuesta clara a «¿equidad entre qué flujos?».
Calcula el índice de Jain
Para tasas de flujo no negativas con un total distinto de cero, el índice de Jain es:
Las tasas de 8 y 2 Mbps dan una suma de 10 y una suma de cuadrados de 68, por lo que el índice es aproximadamente 0,735. Las tasas iguales dan 1. Si uno de n flujos recibe todo, el índice es 1/n.
El índice mide la igualdad, no la utilización. Dos flujos de 1 Mbps cada uno y dos de 5 Mbps cada uno tienen ambos un índice de 1, aunque utilizan distintas cantidades de un enlace de 10 Mbps. Comprueba la tasa total por separado.
Ten en cuenta la demanda limitada
La equidad max-min da a los flujos de baja demanda lo que necesitan y después reparte la capacidad restante entre los flujos que siguen buscando más. En un enlace de 12 Mbps, tres flujos quieren 2, 8 y 10 Mbps. La parte igualitaria inicial es de 4 Mbps. El primero solo necesita 2, por lo que quedan 10 Mbps para los otros dos. La asignación es, por tanto, 2, 5 y 5 Mbps.
Aumentar una de las tasas mayores exigiría reducir la de un flujo que ya tiene una tasa igual o menor. Esa propiedad define la equidad max-min. Su asignación desigual puede ser adecuada aunque la medida de igualdad de Jain baje de 1.
Identifica ventajas entre flujos
Reno crece una vez por RTT. Con la misma fracción de pérdidas, su rendimiento aproximado es inversamente proporcional al RTT: un flujo de 20 ms puede alcanzar unas cuatro veces la tasa de uno de 80 ms. El acceso igualitario al cuello de botella no elimina esa ventaja temporal.
El reparto también es por conexión. Con nueve conexiones existentes, una aplicación que añada una podría recibir aproximadamente una décima parte del enlace. Si en cambio añade once conexiones comparables, su parte pasa a ser de once veinteavos, o el 55 %. HTTP/2 y HTTP/3 multiplexan muchas solicitudes en una conexión, mientras que los clientes HTTP/1.1 suelen abrir varias conexiones.
Una aplicación UDP de tasa fija puede seguir enviando mientras los flujos TCP reducen su tasa. UDP no proporciona ningún controlador; RFC 8085 pide que las aplicaciones añadan un control de congestión adecuado. Un flujo compatible con TCP no utiliza más ancho de banda que un tráfico TCP comparable en las mismas condiciones. TFRC utiliza la ecuación de rendimiento de TCP para mantener una tasa más uniforme.
Considera la cola y el algoritmo
Una cola FIFO no garantiza partes iguales para los flujos. Su resultado depende del comportamiento de los emisores. La gestión equitativa de colas, incluida la planificación por flujo de FQ-CoDel, proporciona a los flujos colas y oportunidades de servicio separadas.
El crecimiento de CUBIC y el de Reno difieren en trayectos con un BDP grande. El reparto entre BBR y CUBIC también depende de la versión y del tamaño del búfer; las primeras versiones de BBR podían ser agresivas con búferes pequeños. Ningún cálculo de igualdad por sí solo demuestra que distintos controladores coexistirán equitativamente en todos los trayectos.
Puntos clave
- El índice de Jain mide la igualdad; comprueba la utilización por separado.
- La equidad max-min satisface las demandas pequeñas antes de repartir la capacidad restante.
- Un RTT más corto y más conexiones paralelas pueden aumentar la parte de un emisor.
- Las aplicaciones UDP necesitan su propio control de congestión; el tráfico compatible con TCP limita el uso de ancho de banda a un nivel comparable.
- Las colas FIFO dejan el reparto en manos de los emisores, mientras que la gestión equitativa de colas proporciona servicio por flujo.
- Las versiones de los algoritmos y el tamaño del búfer pueden cambiar la coexistencia entre flujos.
4Cómo los encaminadores advierten antes de la congestión
Un búfer grande puede ocultar la pérdida de paquetes mientras hace que una conexión interactiva sea desesperadamente lenta. Los encaminadores pueden acortar esa espera respondiendo a una cola persistente antes de que se desborde. Analiza la diferencia entre la detección basada en la longitud de la cola y la basada en el retardo, y después sigue una marca ECN desde un encaminador hasta el emisor. La misma idea de marcado permite distintas respuestas del emisor en TCP clásico, centros de datos controlados y diseños de internet de baja latencia.
4.1 Conserva un almacenamiento útil en búfer sin una cola persistente
Una cola con descarte en cola llena acepta paquetes hasta que su búfer está lleno y después descarta las nuevas llegadas. Los emisores basados en pérdidas siguen aumentando su envío hasta que reciben una señal de congestión. Con un búfer grande de este tipo, esa señal solo puede llegar después de que se haya formado una cola larga.
Calcula el retardo oculto en un búfer
Un búfer de 2 000 000 de bytes situado antes de un enlace ascendente de 20 Mbps contiene 16 millones de bits. Si está lleno, un paquete situado detrás de esos datos espera:
Una carga puede mantener así un rendimiento alto mientras añade casi un segundo a una llamada que comparte el enlace ascendente. La latencia excesiva por acumulación en búferes es el exceso de retardo persistente causado por búferes grandes y por el comportamiento del tráfico que los mantiene ocupados.
El almacenamiento en búfer sigue teniendo una finalidad: las ráfagas cortas necesitan un lugar donde esperar. En el modelo sencillo de un único flujo Reno, aproximadamente un BDP de búfer puede mantener ocupado el enlace inmediatamente después de reducir la ventana a la mitad. Hacer el búfer mucho mayor añade espera sin aumentar la tasa de transmisión del enlace.
Señala la congestión antes del desbordamiento
La gestión activa de colas, AQM, descarta o marca paquetes anticipadamente para indicar que los emisores deberían reducir su carga. El desbordamiento físico ya no es la única forma de anunciar la congestión. RFC 7567 recomienda un despliegue generalizado de AQM.
La detección temprana aleatoria, RED, observa una media móvil de la longitud de la cola. Por debajo de un umbral mínimo no emite señales. Entre dos umbrales, descarta o marca con una probabilidad creciente. Por encima del umbral máximo, emite una señal por cada llegada. El cálculo de la media evita que una sola ráfaga corta parezca una sobrecarga persistente, pero es difícil elegir umbrales que funcionen con distintas velocidades y cargas.
Mide directamente el tiempo de espera
CoDel, retardo controlado, mide el tiempo de permanencia de un paquete: el tiempo que pasa dentro de la cola. Su objetivo estándar es de 5 ms y su intervalo es de 100 ms. Si incluso el tiempo mínimo de permanencia observado sigue por encima del objetivo durante un intervalo, existe una cola persistente. Entonces CoDel descarta o marca paquetes con ECN, aumentando la frecuencia de las señales mientras persiste el exceso de retardo.
El mínimo durante un intervalo importa. Una ráfaga puede producir un retardo alto brevemente y vaciarse poco después; una cola cuyo retardo nunca se reduce necesita intervención. La medición del retardo de CoDel permite que sus valores predeterminados funcionen con una amplia gama de tasas de enlace.
| Mecanismo | Qué observa | Cuándo emite señales |
|---|---|---|
| Descarte en cola llena | Si el búfer está lleno | Al desbordarse |
| RED | Longitud media de la cola | De forma probabilística al cruzar los umbrales |
| CoDel | Tiempo persistente de espera de los paquetes | Cuando el retardo permanece por encima del objetivo |
FQ-CoDel combina colas separadas por flujo con CoDel. La separación de flujos ayuda a evitar que una transferencia grande coloque todos los paquetes interactivos pequeños detrás de sus datos pendientes.
Las señales tempranas también pueden reducir la sincronización global, en la que muchos flujos pierden paquetes juntos, se reducen a la mitad a la vez y dejan el enlace temporalmente infrautilizado. Las señales tempranas aleatorias distribuyen las reacciones en el tiempo. Con tráfico compatible con ECN, una AQM puede enviar su advertencia mediante una marca y aun así entregar el paquete.
Puntos clave
- La latencia excesiva por acumulación en búferes es un retardo de cola persistente, incluso cuando el rendimiento sigue siendo alto.
- El tiempo de espera en cola es el número de bits en cola dividido entre la tasa de salida.
- AQM señala la congestión antes del desbordamiento físico del búfer.
- RED sigue la longitud media de la cola; CoDel sigue el tiempo de espera persistente.
- FQ-CoDel combina colas por flujo con el control del retardo de CoDel.
- Las señales tempranas y distribuidas reducen las pérdidas y las reducciones de ventana sincronizadas.
4.2 Sigue una advertencia ECN hasta el emisor
La notificación explícita de congestión, ECN, permite que un encaminador entregue un paquete y advierta de que se está produciendo congestión. La marca cambia el comportamiento del emisor sin crear datos ausentes que deban retransmitirse.
Interpreta el punto de código IP
El campo ECN consta de dos bits en el byte de tipo de servicio de IPv4 o en la clase de tráfico de IPv6.
| Bits | Significado |
|---|---|
| 00 | Not-ECT: el transporte no ha declarado compatibilidad con ECN |
| 10 | ECT(0): transporte compatible con ECN |
| 01 | ECT(1): transporte compatible con ECN; también es el identificador de L4S |
| 11 | CE: congestión experimentada |
En el establecimiento TCP clásico de RFC 3168, el SYN del cliente activa ECE y CWR. El SYN-ACK de un servidor que acepta activa ECE. Después de la negociación, TCP clásico marca los paquetes de datos con ECT(0).
Sigue el ciclo de realimentación
Una AQM que descartaría un paquete compatible con ECN como advertencia de congestión puede cambiar su punto de código a CE y reenviarlo. Un paquete Not-ECT no puede llevar esa advertencia y se descarta cuando la AQM necesita emitir una señal. Un búfer completamente lleno sigue descartando paquetes, incluidos los compatibles con ECN.
El receptor devuelve la señal CE activando ECE, eco de ECN, en sus ACK. Continúa hasta que recibe CWR, ventana de congestión reducida, del emisor. Estos indicadores comunican la información y reconocen la respuesta; su presencia no significa que se hayan perdido datos.
Para ECN clásico de tipo Reno, empieza con una cwnd de 20 MSS. Después de que llegue ECE, el emisor reduce cwnd a 10 MSS y activa CWR en su siguiente segmento de datos nuevos. El receptor deja de devolver la señal cuando llega CWR. Los ecos repetidos de la misma ventana no requieren reducciones repetidas a la mitad. La advertencia regresa por el trayecto del acuse de recibo, por lo que la respuesta está sujeta al retardo de la realimentación.
ECN especifica la señal; el algoritmo de congestión proporciona la regla de reducción. Reno reduce a la mitad, mientras que CUBIC normalmente conserva el 70 % ante un episodio ECN. Ambos extremos y un cuello de botella que marque paquetes deben ser compatibles con ECN para que funcione este ciclo.
Utiliza la fracción de marcas
DCTCP, TCP para centros de datos, utiliza marcas frecuentes en un entorno controlado. Estima la fracción de bytes marcados con un valor suavizado alfa:
donde M es la fracción marcada recientemente. Algunas implementaciones usan un valor de g de 1/16. Reduce la ventana mediante:
Con un alfa de 0,2, una ventana de 100 pasa a 90; con un alfa de 1 se reduce a la mitad. DCTCP necesita marcado e información de retorno compatibles. Mezclarlo con TCP clásico en una misma cola ordinaria puede producir repartos inequitativos.
L4S, la arquitectura experimental de los RFC 9330–9332, lleva una respuesta escalable relacionada a los trayectos de internet. ECT(1) identifica el tráfico escalable y una AQM acoplada de doble cola lo separa del tráfico clásico mientras coordina su tratamiento. Las marcas frecuentes cuando la cola aún es corta buscan un retardo de cola de alrededor de un milisegundo. ECT(1) por sí solo no garantiza ese retardo: el controlador y el comportamiento del cuello de botella completan el diseño.
Puntos clave
- CE marca un paquete entregado; el tráfico compatible con ECN aún puede descartarse si se produce un desbordamiento.
- TCP clásico negocia ECN, devuelve la señal CE mediante ECE y confirma su respuesta con CWR.
- El controlador decide cuánto reducir; ECN proporciona la señal de congestión.
- DCTCP utiliza la fracción marcada para ajustar su reducción en entornos controlados.
- L4S combina ECT(1), control de congestión escalable y gestión acoplada de colas.
5Cómo se adaptan CUBIC y BBR a los trayectos modernos
Un trayecto con un producto ancho de banda-retardo grande necesita una gran cantidad de datos en vuelo. Reno puede tardar demasiado en recuperar esa ventana después de una reducción. CUBIC cambia la forma en que crece la ventana con el tiempo, mientras que BBR estima la tasa de entrega y el RTT sin colas del trayecto. Compara qué mide cada algoritmo, cómo sondea la capacidad y qué significa su comportamiento para el retardo y el reparto con otro tráfico.
5.1 Utiliza el tiempo para aumentar la ventana de CUBIC
CUBIC aborda el lento crecimiento de Reno en trayectos rápidos y de larga distancia. Su ventana sigue el tiempo transcurrido desde una reducción por congestión, lo que le da una respuesta distinta a la de un incremento fijo de un segmento por RTT. RFC 9438 especifica CUBIC; es el predeterminado en las principales pilas TCP de Linux, Windows y Apple.
Recuerda el último punto de congestión
Ante un episodio habitual de pérdida o congestión ECN, CUBIC registra su ventana como Wmax. Con una ventana plenamente utilizada, su factor de decremento de 0,7 conserva el 70 % de la cantidad de datos en vuelo. Reno conservaría la mitad. El vencimiento del tiempo de espera de retransmisión es distinto: CUBIC sigue a Reno y vuelve a una ventana de un segmento y al inicio lento, mientras establece su umbral con el factor de decremento de CUBIC.
Para el período cúbico básico después de una reducción, la ventana objetivo en segmentos es:
El tiempo t se expresa en segundos. Cuando la ventana reducida es 0,7 Wmax, el tiempo de retorno al máximo anterior es:
Analiza la curva
Con un Wmax de 100 segmentos, la ventana reducida es 70. El valor dentro de la raíz cúbica es 75, por lo que K es aproximadamente 4,22 s. Al cabo de un segundo, la curva está en unos 86,7 segmentos; a los dos segundos está en 95,6; a los tres segundos está en 99,3. Alcanza 100 en K.
Por debajo del máximo anterior, el crecimiento es rápido al principio y después se ralentiza. Esta región cóncava se aproxima con cautela a un punto donde antes ocurrió congestión. Cerca del máximo hay una meseta relativamente plana. Por encima, la región convexa se acelera para sondear la capacidad que ahora podría estar disponible. A los siete segundos, la curva del ejemplo alcanza unos 108,6 segmentos.
Explica la ventaja respecto al RTT y su límite
Reno necesita 50 RTT para volver de 50 a 100 segmentos: 5 s con un RTT de 100 ms y 10 s con uno de 200 ms. El tiempo de retorno de la curva cúbica depende del máximo registrado y del tiempo transcurrido, por lo que su retorno de 4,22 s no depende directamente del número de ACK.
CUBIC también calcula una estimación compatible con Reno. Utiliza un incremento AIMD equivalente de aproximadamente 0,53 segmentos por RTT con un factor de decremento de 0,7, y toma esta estimación cuando supera el objetivo cúbico. Por tanto, los trayectos con RTT corto pueden recuperarse antes que el tiempo de retorno de la curva cúbica pura. El crecimiento basado en el tiempo reduce una fuente importante de sesgo debido al RTT; no hace que toda asignación real sea independiente del RTT.
Ajusta el máximo recordado
Si la congestión reaparece por debajo del máximo anterior, la convergencia rápida de CUBIC reduce el Wmax recordado. Un nuevo episodio en 90 segmentos después de un máximo anterior de 100 da:
La ventana reducida inmediatamente es de 63 segmentos. El máximo recordado y la nueva ventana actual tienen funciones distintas: uno determina el crecimiento futuro, mientras que la otra limita el envío actual.
CUBIC sigue estando basado en pérdidas, con ECN como señal alternativa. Puede crear una cola persistente en un trayecto con descarte en cola llena. Una recuperación más rápida y una reducción habitual más moderada mejoran el uso de trayectos con BDP grande, pero ninguna de las dos garantiza por sí sola un retardo de cola bajo.
Puntos clave
- CUBIC normalmente conserva el 70 % después de una pérdida o un episodio ECN, pero reinicia en un segmento después del vencimiento del tiempo de espera.
- El objetivo cúbico depende de los segundos transcurridos y de la ventana de congestión recordada.
- El crecimiento se ralentiza cerca del máximo anterior y después se acelera por encima de él.
- La estimación compatible con Reno puede superar la curva cúbica, especialmente con RTT cortos.
- La convergencia rápida reduce el máximo recordado cuando la congestión reaparece por debajo de él.
- CUBIC sigue siendo un controlador basado en pérdidas y puede crear colas persistentes.
5.2 Estima el trayecto mediante mediciones de retardo y entrega
Las pérdidas no son la única señal de un trayecto congestionado. El retardo puede revelar datos en cola, mientras que las mediciones de entrega pueden estimar cuánto ancho de banda proporciona el trayecto. Vegas y BBR utilizan estas observaciones de distintas maneras.
Estima los datos en cola con Vegas
Vegas compara una tasa esperada basada en el RTT mínimo o base con la tasa real basada en el RTT medido. Su diferencia, multiplicada por el RTT base, estima los datos del flujo en cola.
Con una cwnd de 50 segmentos, un RTT base de 40 ms y un RTT medido de 50 ms, la entrega esperada es de 1250 segmentos/s y la entrega real es de 1000 segmentos/s. La estimación de la cola es:
Vegas crece por debajo de un umbral inferior y se reduce por encima de un umbral superior. Si el tráfico basado en pérdidas sigue llenando la cola compartida, Vegas observa repetidamente el retardo y reduce su tasa, lo que puede dejarle una parte pequeña.
Construye el modelo de dos componentes de BBR
BBR, ancho de banda del cuello de botella y tiempo de propagación de ida y vuelta, estima el ancho de banda del cuello de botella a partir de las tasas máximas de entrega recientes y el RTT mínimo durante una ventana de medición de 10 s. Su producto estima el BDP. Su objetivo ideal es un enlace plenamente utilizado con aproximadamente un BDP en vuelo y pocos datos en cola.
Una estimación del ancho de banda de 50 Mbps y un RTT mínimo de 30 ms dan 1,5 millones de bits, o 187 500 bytes, por BDP. Un factor de ventana de congestión típico de 2 limita los datos pendientes a unos 375 000 bytes. La tasa de espaciado es un control separado: el factor de espaciado multiplicado por el ancho de banda estimado. Un límite permite tener datos en vuelo; no exige que el emisor envíe al doble del ancho de banda.
Sigue los estados de la versión 3 de BBR
| Estado | Función principal | Comportamiento de la versión 3 del borrador |
|---|---|---|
| Startup | Descubrir la capacidad | Envía a unas 2,77 veces la estimación; sale cuando el crecimiento se estanca o las pérdidas son altas |
| Drain | Eliminar la cola de arranque | Envía a unas 0,5 veces la estimación |
| ProbeBW | Probar y usar el ancho de banda | Factores de espaciado: Up 1,25; Down 0,9; Cruise 1,0; Refill 1,0 |
| ProbeRTT | Actualizar el RTT mínimo | Reduce los datos en vuelo hacia medio BDP durante al menos 200 ms y un tiempo de ida y vuelta |
La prueba de crecimiento de Startup es un crecimiento de la tasa de entrega inferior al 25 % durante tres rondas. ProbeRTT se programa como máximo aproximadamente una vez cada 5 s. En el trayecto del ejemplo, ProbeBW Up tiene como objetivo 62,5 Mbps y Down 45 Mbps. Estos detalles de la versión 3 se especifican en el borrador de internet de BBR, no en un RFC publicado de BBR.
Compara las señales y las ventajas y limitaciones
Reno y CUBIC aumentan hasta que las pérdidas o ECN señalan congestión. BBR espacia los paquetes a partir de un modelo de ancho de banda y RTT. Deliberadamente crea una cola breve en Startup y ProbeBW Up, por lo que «basado en un modelo» no significa «nunca crea una cola».
La versión 1 de BBR ignoraba en gran medida las pérdidas. La versión 3 utiliza pérdidas elevadas, alrededor del 2 % en una ronda, para limitar el exceso de envío y mejorar la coexistencia. Puede mantener más rendimiento en trayectos largos con pérdidas aleatorias, pero no puede identificar perfectamente por qué se perdió un paquete. Su respuesta específica a ECN sigue abierta en el borrador; cualquier conexión que declare compatibilidad con ECN debe responder a CE como congestión. El tamaño del búfer, el RTT, la versión y los algoritmos que compiten siguen influyendo en la equidad.
Puntos clave
- Vegas deduce los datos en cola a partir de las tasas esperada y real mediante el RTT base.
- BBR modela el ancho de banda y el RTT mínimo, y después controla por separado el espaciado y los límites de datos en vuelo.
- BBR Startup y ProbeBW sondean intencionadamente por encima de la tasa de entrega estimada.
- Drain y ProbeRTT reducen los datos en cola para distintos fines de medición.
- La versión 3 de BBR limita su envío ante pérdidas elevadas; no ignora la congestión.
- BBR se basa en un modelo, mientras que Vegas responde directamente al aumento del retardo.
- La versión del algoritmo y las condiciones del trayecto afectan a la coexistencia y a las colas.
6Por qué QUIC puede evolucionar mientras comparte la red
El diseño del transporte debe funcionar a través de equipos ya desplegados. Los dispositivos intermedios de red y los ciclos de actualización de los sistemas operativos pueden retrasar las extensiones de TCP. QUIC transporta un protocolo cifrado sobre UDP para que las aplicaciones puedan desplegar nuevos comportamientos con mayor facilidad. Sigue cómo los flujos, los números de paquete y los acuses de recibo más completos mejoran la entrega y la recuperación, mientras el emisor sigue principios de control de congestión conocidos de TCP.
6.1 Traslada las funciones de transporte a un diseño cifrado basado en UDP
Un protocolo se osifica cuando los dispositivos desplegados dependen tanto de su forma existente que los cambios se vuelven difíciles de desplegar. Los dispositivos intermedios de red inspeccionan las cabeceras TCP y pueden rechazar opciones o indicadores desconocidos. Las implementaciones en el núcleo también distribuyen nuevos comportamientos mediante actualizaciones del sistema operativo, a menudo lentamente.
Identifica los costes que aborda QUIC
TCP ha evolucionado mediante SACK, ECN, escalado de ventana y nuevos controladores de congestión. Sin embargo, su estructura sigue siendo importante para el tráfico web. Una conexión nueva convencional de TCP con TLS necesita el establecimiento de TCP antes del intercambio de TLS. Su único flujo de bytes ordenado también significa que un segmento ausente bloquea la entrega de los bytes posteriores, incluidos los datos de solicitudes no relacionadas. Esto es el bloqueo de cabecera de cola en el transporte.
Las direcciones y los puertos de una conexión pueden crear otro obstáculo cuando un dispositivo cambia de red. QUIC, estandarizado en RFC 9000, cambia estas partes del diseño del transporte mientras transporta sus paquetes sobre UDP. HTTP/3 funciona sobre QUIC.
Combina los intercambios de establecimiento
QUIC integra TLS 1.3 con su intercambio de establecimiento del transporte. En un intercambio sencillo con un RTT de 80 ms, procesamiento insignificante y sin pérdidas, una conexión nueva de TCP con TLS 1.3 envía la solicitud después de dos RTT y recibe los primeros bytes de la respuesta después de tres: 240 ms. Una conexión QUIC nueva puede recibirlos después de dos RTT: 160 ms.
Una conexión QUIC reanudada puede enviar datos anticipados de aplicación en su primer conjunto de paquetes, lo que se denomina 0-RTT. La primera respuesta puede llegar entonces después de un RTT, 80 ms en este ejemplo. Los datos anticipados pueden repetirse, por lo que las aplicaciones los restringen a acciones que se pueden repetir de forma segura. El término 0-RTT describe cuándo puede comenzar el envío, no una respuesta instantánea.
Separa los flujos, no todos los límites compartidos
QUIC transporta flujos de bytes ordenados e independientes. Si un paquete contiene datos para la imagen 1, perderlo no bloquea la entrega de los datos ya recibidos de las imágenes 2 y 3 en flujos separados. Un paquete que transporta varios flujos puede afectar a cada uno de ellos. Todos los flujos siguen compartiendo el controlador de congestión de la conexión, por lo que una pérdida puede reducir su tasa total disponible.
QUIC proporciona entrega fiable de flujos sobre UDP. También proporciona control de flujo tanto por flujo como por conexión. UDP es el soporte, no un sustituto de estas funciones de transporte.
Protege los detalles que pueden cambiar
QUIC cifra las cargas útiles de los paquetes, incluidas todas las tramas de transporte. La protección de cabecera cubre los números de paquete y algunos bits del primer byte. Los campos necesarios para el encaminamiento y la negociación, como los identificadores de conexión y la versión, permanecen visibles. Ocultar los detalles de transporte que pueden cambiar deja a los dispositivos intermedios menos comportamientos de los que depender.
Los identificadores de conexión identifican una conexión independientemente de las direcciones IP y los puertos actuales. Con la validación del trayecto, una conexión puede migrar cuando un teléfono pasa de Wi-Fi a acceso celular, sin iniciar una conexión completamente nueva.
QUIC suele ser una biblioteca en el espacio de usuario. Por tanto, una actualización de la aplicación puede distribuir una mejora del transporte sin esperar a que cambie el núcleo de cada sistema operativo. Esa flexibilidad también asigna a la aplicación la responsabilidad de detectar correctamente las pérdidas y aplicar la seguridad, el control de flujo y el control de congestión.
Puntos clave
- La osificación ocurre cuando los equipos desplegados dificultan los cambios de protocolo.
- QUIC combina el establecimiento del transporte y de TLS y puede admitir datos anticipados 0-RTT vulnerables a repeticiones.
- Los flujos independientes evitan que una interrupción de la entrega ordenada afecte a todo el transporte y a flujos no relacionados.
- El cifrado de la carga útil y la protección de cabecera ocultan la mayoría de los detalles de transporte que pueden cambiar.
- Los identificadores de conexión permiten la migración más allá de una tupla fija de direcciones y puertos.
- QUIC añade fiabilidad, control de flujo y control de congestión sobre UDP.
6.2 Utiliza señales de pérdida más claras con un control de congestión conocido
QUIC mejora lo que un emisor puede aprender de los acuses de recibo, pero sigue teniendo que evitar la sobrecarga del trayecto. RFC 9002 define la detección de pérdidas y un controlador predeterminado similar a NewReno. Las implementaciones pueden utilizar otros algoritmos adecuados, incluidos CUBIC o BBR.
Identifica cada transmisión
Los números de paquete aumentan y nunca se repiten dentro de un espacio de números de paquete. Los datos reenviados viajan en tramas dentro de un paquete nuevo con un número nuevo. Por tanto, un ACK puede identificar la transmisión que llegó, evitando la ambigüedad de TCP entre un segmento original y su retransmisión.
Las tramas ACK informan de los intervalos recibidos y del retardo del ACK del receptor. Después del intercambio de establecimiento, el emisor utiliza un retardo del ACK validado y limitado al ajustar las estimaciones del RTT; no resta automáticamente un retardo arbitrario del receptor de cada muestra.
QUIC declara perdido un paquete cuando se ha reconocido otro con un número al menos tres números de paquete posterior, o mediante su umbral temporal una vez reconocido un paquete posterior. El umbral temporal recomendado es 9/8 del mayor entre el RTT más reciente y el suavizado. Un tiempo de espera de sondeo, PTO, envía sondas que solicitan acuses de recibo. El vencimiento del PTO por sí solo no reduce cwnd al mínimo.
Establece límites de ventana en bytes
Para un tamaño máximo de datagrama d, la ventana inicial de RFC 9002 es:
Con un d de 1200 bytes, el resultado es de 12 000 bytes. Con un d de 1500 bytes, es de 14 720 bytes. La ventana mínima de congestión es de dos datagramas de tamaño máximo, por lo que esos trayectos tienen mínimos de 2400 y 3000 bytes, respectivamente.
En el controlador predeterminado, una pérdida o una nueva señal de congestión CE reduce cwnd a la mitad, con la ventana mínima como límite inferior, y establece ssthresh en la ventana reducida. Un período de recuperación impide otra reducción por pérdidas adicionales de paquetes enviados antes de que comenzara la recuperación. Un acuse de recibo de un paquete enviado durante la recuperación termina el período. El emisor reanuda entonces el crecimiento normal.
Reconoce un fallo sostenido
La congestión persistente es un indicio más sólido que el vencimiento de un solo temporizador. Requiere una secuencia suficientemente larga de paquetes perdidos que solicitan acuse de recibo, sin ningún paquete intermedio reconocido y con una muestra previa del RTT. Su umbral de duración es:
Con un RTT suavizado de 100 ms, una variación de 10 ms, un retardo máximo del ACK de 25 ms y una granularidad del temporizador insignificante, el umbral es de 495 ms. El intervalo de pérdidas que cumple los requisitos debe superar ese valor. El controlador reduce entonces cwnd a dos datagramas, su ventana mínima.
Mantén útiles las señales y la temporización
Los ACK de QUIC pueden comunicar recuentos acumulativos de ECT(0), ECT(1) y CE. Después de validar el funcionamiento de ECN en el trayecto, el emisor trata un nuevo aumento de CE como un episodio de congestión sin necesitar una pérdida de paquetes.
El espaciado distribuye las transmisiones. Una tasa de alrededor de 1,25 veces cwnd dividida entre el RTT suavizado es un enfoque sugerido; los límites de ráfaga pueden cumplir la misma función. Enviar una ventana completa de una vez crea una ráfaga incluso cuando la tasa media es aceptable. El despliegue en el espacio de usuario facilita la distribución de nuevos controladores, pero cada pila sigue teniendo que compartir el ancho de banda de forma responsable.
Puntos clave
- Los números de paquete únicos identifican las transmisiones; los intervalos recibidos localizan los huecos.
- El ajuste por el retardo del ACK sigue las reglas de validación y del intercambio de establecimiento.
- Los umbrales de paquetes y de tiempo detectan pérdidas; PTO envía sondas para obtener información.
- El controlador predeterminado reduce la ventana a la mitad una vez por episodio de recuperación y respeta un mínimo de dos datagramas.
- La congestión persistente requiere un intervalo de pérdidas que cumpla los requisitos y supere su umbral de duración.
- Los recuentos ECN validados pueden señalar congestión sin un descarte.
- El espaciado o los límites de ráfaga evitan enviar toda la ventana en una sola ráfaga.
Ejemplos de Control de congestión
1Sigue el tráfico a través de un cuello de botella
13 pasos
- 1IntroducciónUn enlace puede permanecer ocupado mientras una aplicación espera
Varias entradas rápidas alimentan una salida más lenta, un cuello de botella. El encaminador tiene que retener el exceso, por lo que un mismo flujo puede experimentar un rendimiento alto y una espera larga.
Sigue primero la cola y después calcula el trabajo que no consigue entregar datos nuevos (goodput y colapso por congestión). Por último, decide qué tipo de señal podría indicar al emisor que cambie su comportamiento. Estas tres perspectivas explican por qué la actividad por sí sola es una mala medida del estado de la red.
- 2ExplicaciónCompara las llegadas con las salidas
El cuello de botella es el enlace con menor capacidad disponible para el tráfico en su trayecto. Cuando las llegadas sostenidas superan su tasa de salida, el exceso se acumula en la cola de salida.
Por debajo de la tasa de salida, la capacidad libre vacía la cola. Si las tasas constantes coinciden exactamente, una cola existente permanece sin cambios: cada salida se sustituye por una llegada. Una sobrecarga breve puede absorberse si después llega un período más tranquilo.
- 3EjemploDetermina a qué velocidad crece la cola
Un búfer vacío de un encaminador recibe 15 Mbps mientras su salida envía 11 Mbps. Primero determina el exceso:
Convierte el exceso a bytes por segundo:
Esta es la tasa a la que se acumulan los datos en espera. Usar la tasa completa de llegada contaría los datos que el enlace de salida ya ha transmitido.
- 4EjemploConvierte los datos en cola en tiempo de espera
Mantén la misma salida de 11 Mbps. Un búfer de 1 000 000 de bytes se llena después de 2 s con un exceso de 500 000 bytes/s.
Cuando está lleno, contiene 8 000 000 de bits delante de un paquete que acaba de incorporarse. Su espera aproximada es:
La tasa de salida determina cuánto tardan en salir los datos ya en cola. El exceso de entrada determina la rapidez con la que se formó esa acumulación.
- 5DesafíoPredice qué ocurre con una cola cuando baja la carga
Una cola contiene 300 000 bytes. Su salida es de 12 Mbps y las llegadas constantes bajan a 8 Mbps. ¿Cuánto tardará en vaciarse la cola existente?
---reveal---
La tasa neta de vaciado es de 4 Mbps, o 500 000 bytes/s. Por tanto:
Dividir entre la tasa de salida completa ignoraría los nuevos paquetes que siguen llegando mientras se vacían los datos acumulados.
- 6ExplicaciónSigue lo que sustituye una retransmisión
El rendimiento útil cuenta una sola vez los datos nuevos y útiles de la aplicación. El rendimiento cuenta el tráfico entregado, mientras que la carga ofrecida incluye todo lo que se introduce en la red.
Un emisor que ofrece entrega fiable sustituye los datos perdidos, pero esas repeticiones consumen tiempo del enlace. Si un temporizador vence mientras un original solo está retrasado, dos copias pueden viajar por el trayecto y llegar correctamente. La aplicación sigue recibiendo ese dato una sola vez.
- 7EjemploTen en cuenta el trabajo perdido más adelante en el trayecto
Un paquete viaja por los enlaces A y B y después se descarta en la cola situada antes de C. Ambas transmisiones anteriores ya han consumido capacidad, pero el paquete nunca llega a su destino.
A medida que se pierde más tráfico al final del trayecto, los enlaces anteriores pueden dedicar una parte cada vez mayor de su tiempo a paquetes que no llegarán. La entrega de extremo a extremo puede disminuir mientras esos enlaces permanecen ocupados. Esta es una de las vías hacia el colapso por congestión, no simplemente una cola llena en un encaminador.
- 8DesafíoDistingue la capacidad ocupada del avance útil
Un enlace de 16 Mbps está saturado. De sus paquetes del mismo tamaño, el 25 % repite datos que ya ha transportado. Sin tener en cuenta las cabeceras ni las pérdidas posteriores, ¿cuál es la mayor tasa posible de datos nuevos?
---reveal---
Solo tres cuartas partes son datos nuevos:
Los otros 4 Mbps pueden ser útiles para recuperar la fiabilidad, pero no añaden datos nuevos a la tasa que se cuenta aquí.
- 9Idea claveConoce qué cambia en el codo y el precipicio
Más allá del codo de la curva, una carga ofrecida mayor aporta poco rendimiento adicional mientras el retardo aumenta bruscamente. Más allá del precipicio de la curva, el rendimiento baja a medida que predominan las pérdidas y el trabajo desperdiciado.
Estos describen problemas distintos: una espera ineficiente puede aparecer antes de que colapse la entrega de datos útiles. Un controlador debería mantener el cuello de botella ocupado de forma productiva y evitar el punto de funcionamiento con retardo alto que un búfer grande puede ocultar.
- 10ExplicaciónLocaliza el origen de la advertencia
Con el control de extremo a extremo, el emisor deduce la congestión a partir de las pérdidas, el RTT o las mediciones de entrega. Ningún encaminador proporciona un informe explícito de congestión.
Con el control asistido por la red, el encaminador envía una advertencia. En ECN, marca un paquete que viaja hacia el receptor y este devuelve la información sobre esa marca. El informe sigue considerándose asistido por la red aunque regrese dentro de un acuse de recibo del extremo.
- 11ConexiónDistingue la señal del control de envío
Una pérdida puede deberse al desbordamiento de una cola o a corrupción inalámbrica. Un aumento del RTT puede deberse a una cola o a un cambio de ruta. Una marca informa explícitamente de la congestión, pero necesita compatibilidad en el trayecto.
Después de interpretar la señal, el emisor puede limitar una ventana o elegir una tasa con espaciado de paquetes. Son decisiones de control distintas del origen de la señal. Aproximadamente una ventana por RTT relaciona la cantidad en vuelo con la tasa alcanzada.
- 12DesafíoElige una vía útil para la información de retorno
Una descarga mantiene ocupado un búfer grande de un encaminador. El receptor tiene mucha memoria libre. El encaminador empieza a marcar la congestión y el receptor devuelve las marcas. ¿Qué tipo de control es este y por qué puede reducir el retardo de la descarga?
---reveal---
Es control de congestión asistido por la red. El emisor puede reducir el tráfico que entra en el trayecto congestionado, lo que permite que la cola del encaminador disminuya. Más espacio en el receptor no vaciaría esa cola porque la limitación de capacidad está en la red.
- 13RepasoAnaliza conjuntamente la carga, la entrega útil y las señales
Predice el crecimiento de la cola restando las salidas de las llegadas; calcula el tiempo de espera dividiendo los bits en cola entre la tasa de salida. Después comprueba cuánto trabajo del enlace entrega datos nuevos a la aplicación.
Las pérdidas, el retardo y la información explícita comunican cosas distintas al emisor. Un controlador de congestión útil interpreta esas señales y ajusta el tráfico para que el trayecto entregue datos de forma eficiente sin mantener colas excesivas.
2Sigue una ventana TCP desde el arranque hasta la recuperación
20 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónInterpreta la ventana antes de la tasa
- 2ExplicaciónRespeta los límites del emisor y del receptor
- 3EjemploEstima una tasa limitada por la ventana
- 4EjemploCalcula los datos necesarios para llenar un trayecto
- 5DesafíoDetermina qué límite es efectivo
- 6ExplicaciónPor qué el inicio lento crece rápidamente
- 7EjemploCambia la regla en el umbral
- 8ConsejoIdentifica la fase en cada secuencia
- 9DesafíoSigue el cambio sin saltarte una ronda
- 10ExplicaciónDistingue un hueco de un trayecto sin respuesta
- 11EjemploEntra en recuperación rápida con un inflado temporal
- 12EjemploTermina la recuperación en el umbral
- 13DesafíoUtiliza la cantidad de datos en vuelo y desinfla correctamente
- 14ExplicaciónCalcula la media de la ventana en diente de sierra
- 15EjemploConvierte la media a bits por segundo
- 16ConexiónDescubre por qué importan las pérdidas y el RTT
- 17DesafíoCambia dos entradas del modelo a la vez
- 18Idea claveUn BDP alto agrava la recuperación lenta
- 19DesafíoCombina la estimación de tasa con el control de flujo
- 20RepasoInterpreta el crecimiento, la recuperación y los límites como decisiones separadas
3Sigue el reparto equitativo desde una pareja ideal hasta usuarios reales
12 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónPregúntate quién recibe la capacidad
- 2ExplicaciónDibuja las dos rectas objetivo
- 3EjemploObserva por separado la diferencia y la proporción
- 4DesafíoElige una actualización que cambie el reparto relativo
- 5ConexiónReconoce cuándo se aplica la convergencia ideal
- 6ExplicaciónUtiliza el índice de Jain para medir la igualdad
- 7EjemploCalcula una puntuación y la utilización
- 8EjemploReparte el resto después de una demanda pequeña
- 9DesafíoElige la población adecuada para una puntuación de equidad
- 10Idea claveLos emisores y las colas determinan el resultado
- 11DesafíoDistingue la igualdad de un comportamiento AIMD eficiente
- 12RepasoDistingue una asignación de su explicación
4Sigue una advertencia temprana de congestión
13 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónUn número bajo de pérdidas puede ocultar una espera larga
- 2EjemploMide la espera dentro de un búfer grande
- 3ExplicaciónRED proporciona una advertencia temprana probabilística
- 4ExplicaciónCoDel comprueba si el retardo llega a ser pequeño
- 5DesafíoInterpreta la evolución del retardo
- 6ConexiónDistingue el servicio a los flujos del control del retardo de cola
- 7ExplicaciónMarca un paquete que se entrega
- 8EjemploCompleta el ciclo clásico de realimentación de TCP
- 9DesafíoGestiona los ecos repetidos de un mismo episodio
- 10EjemploAjusta una respuesta DCTCP al tráfico marcado
- 11ConexiónL4S combina el comportamiento de los extremos y de las colas
- 12DesafíoExplica la entrega sin vencimiento del tiempo de espera
- 13RepasoSigue la detección, el marcado y la respuesta
5Compara el crecimiento de CUBIC con el modelo del trayecto de BBR
14 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónElige qué debe aprender el controlador
- 2ExplicaciónEmpieza con una reducción habitual más moderada
- 3EjemploCalcula el tiempo de retorno cúbico
- 4EjemploEvalúa un punto por debajo del máximo anterior
- 5Idea claveLa curva pura es solo una opción
- 6DesafíoUtiliza los dos valores distintos que conserva CUBIC
- 7EjemploDeja que Vegas deduzca los segmentos en cola
- 8ExplicaciónConstruye el modelo de ancho de banda y retardo de BBR
- 9EjemploCalcula el modelo antes de aplicar los factores
- 10ConexiónSondea y después crea espacio para medir
- 11DesafíoConvierte un modelo en ajustes de control
- 12ConsejoTen en cuenta la versión y sus reglas de respuesta
- 13DesafíoDistingue una advertencia del RTT de un modelo del trayecto
- 14RepasoCompara las mediciones, el crecimiento y las colas
6Sigue QUIC desde el establecimiento hasta la recuperación de la congestión
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónCambia el transporte sin abandonar su función
- 2ExplicaciónComprende por qué pueden estancarse los cambios de TCP
- 3ConexiónProtege los detalles que necesitan cambiar
- 4EjemploCompara el tiempo hasta la primera respuesta
- 5EjemploDistingue el orden de los flujos del uso compartido de la conexión
- 6DesafíoCorrige una afirmación sobre el transporte basado en UDP
- 7ExplicaciónDa a cada transmisión su propia identidad
- 8EjemploDetecta un hueco antes de sondear para obtener información
- 9EjemploCalcula las ventanas inicial y mínima
- 10DesafíoReduce una vez por un episodio de pérdidas de datos anteriores en vuelo
- 11EjemploCalcula una duración de congestión persistente
- 12ConexiónTransporta los recuentos ECN en los ACK
- 13ConsejoComprueba cuándo salen los bytes, no solo cuántos
- 14DesafíoRelaciona la entrega independiente con una respuesta compartida
- 15RepasoRelaciona las ventajas del despliegue con las obligaciones de congestión
Ejercicios de Control de congestión
Set 1: Interpreta las señales de congestión y los cambios de ventana10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Set 2: Relaciona las tasas, la equidad y las señales de transporte10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Diagnostica colas y episodios de recuperación10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Aplica las reglas cuando cambian las condiciones10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Razona sobre modelos y comportamiento del transporte10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Acuse de recibo parcial
Acuse de recibo retardado
Acuse de recibo selectivo (SACK)
Aproximación de Mathis
B
Baja latencia, baja pérdida y rendimiento escalable (L4S)
BBR
Bloqueo de cabecera de cola
C
Cantidad de datos en vuelo (FlightSize)
Carga ofrecida
Codo de la curva
Cola de salida
Cola persistente
Colapso por congestión
Conexiones paralelas
Congestión
Congestión experimentada (CE)
Congestión persistente
Conteo adecuado de bytes (ABC)
Control basado en la tasa de envío
Control basado en ventanas
Control de congestión asistido por la red
Control de congestión de extremo a extremo
Control de flujo
Convergencia rápida
CUBIC
Cuello de botella
D
Datos anticipados 0-RTT
Decremento multiplicativo
Descarte en cola llena
Detección temprana aleatoria (RED)
Diagrama de Chiu–Jain
E
Eco de ECN (ECE)
Equidad max-min
Espaciado de paquetes
Espacio de números de paquete
Estado de sondeo del ancho de banda (ProbeBW)
Estado de sondeo del RTT (ProbeRTT)
Evitación de la congestión
F
Factor de espaciado de paquetes
Factor de ventana
Flujo QUIC
Fracción de pérdidas
G
Gestión activa de colas (AQM)
Gestión equitativa de colas
I
Incremento aditivo
Incremento aditivo y decremento multiplicativo (AIMD)
Inequidad debida al RTT
Inflado de ventana
Inicio lento
Intervalo de acuse de recibo
Í
Índice de equidad de Jain
L
Latencia excesiva por acumulación en búferes
M
Migración de conexión
Modelo de diente de sierra
N
NewReno
Notificación explícita de congestión (ECN)
O
Osificación de protocolos
P
Período de recuperación
Precipicio de la curva
Problema de recuperación en redes de alta velocidad
Producto ancho de banda-retardo (BDP)
Q
QUIC
R
Recta de eficiencia
Recta de equidad
Recuperación rápida
Región compatible con Reno
Rendimiento
Rendimiento útil
Retardo controlado (CoDel)
Retardo del acuse de recibo
Retransmisión
Retransmisión innecesaria
Retransmisión rápida
RTT base
S
Señal de congestión
Sincronización global
T
Tamaño máximo de segmento (MSS)
TCP para centros de datos (DCTCP)
TCP Vegas
Temporización mediante ACK
Tiempo de espera de sondeo (PTO)
Tiempo de ida y vuelta (RTT)
Tiempo de permanencia en cola
Tiempo de retorno K de CUBIC
Tráfico compatible con TCP
Transporte compatible con ECN (ECT)
U
Umbral de inicio lento (ssthresh)
Umbral de paquetes
Umbral temporal
V
Vencimiento del tiempo de espera de retransmisión (RTO)
Ventana de congestión (cwnd)
Ventana de congestión reducida (CWR)
Ventana de recepción (rwnd)
Ventana inicial
Ventana máxima de referencia (Wmax)
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.