¿Qué son el inicio lento, la aceleración, la desaceleración y la prevención de la congestión en el control de la congestión de TCP?
El principio fundamental del control de congestión de TCP es confiar en la ventana de congestión (cwnd) para el control. Como comentamos antes, TCP también tiene una ventana de recepción (rwnd) para lograr anuncios de un extremo a otro. control de flujo. El tamaño del valor de la ventana representa el segmento de datos más grande que se puede enviar pero que aún no ha recibido un ACK. Obviamente, cuanto mayor es el valor de la ventana, más rápido se envían los datos, pero también es más fácil congestionar la red. El valor de la ventana es 1, luego simplificado a un protocolo de parada y espera. Cada vez que se envía un dato, el segundo paquete de datos debe enviarse después de la confirmación de la otra parte. Obviamente, la eficiencia de transmisión de datos es muy baja. El algoritmo de control de congestión de TCP consiste en hacer un compromiso entre los dos y seleccionar el mejor valor de cwnd para maximizar el rendimiento de la red sin causar congestión.
Debido a la necesidad de considerar tanto el control de congestión como el control de flujo, la ventana de envío real de TCP = min(rwnd, cwnd). Sin embargo, rwnd lo determina el par y el entorno de red no tiene ningún impacto en él. Por lo tanto, generalmente no consideramos el valor de rwnd cuando consideramos la congestión. Ahora solo discutimos cómo determinar el tamaño del valor de cwnd. En cuanto a la unidad de cwnd, en TCP está en bytes. Suponemos que cada transmisión de TCP envía datos según el tamaño de MSS, por lo que se puede considerar que la unidad de cwnd se basa en la cantidad de paquetes de datos. por eso a veces decimos que aumentar cwnd en 1 equivale a aumentar el número de bytes en 1 tamaño MSS.
Inicio lento: inicialmente, TCP enviará una gran cantidad de paquetes de datos a la red después de que se establezca una conexión exitosa, lo que fácilmente puede hacer que los enrutadores de la red se queden sin espacio en caché, provocando congestión. Por lo tanto, la conexión recién establecida no puede enviar una gran cantidad de paquetes de datos al principio y solo puede aumentar gradualmente la cantidad de datos enviados cada vez de acuerdo con las condiciones de la red para evitar el fenómeno anterior. Específicamente, al crear una nueva conexión, cwnd se inicializa a 1 tamaño de segmento de información máximo (MSS), el remitente comienza a enviar datos de acuerdo con el tamaño de la ventana de congestión y cwnd aumenta en 1 tamaño de MSS para cada segmento de información reconocido. Por lo tanto, el valor de cwnd crece exponencialmente con el tiempo de ida y vuelta (RTT) de la red. De hecho, el arranque lento no es lento, simplemente comienza a una velocidad ligeramente menor.