¿Por qué el tiempo de espera corta cwnd a 1 y 3 ACK duplicado a la mitad en el algoritmo de control de congestión?

Todo es parte del control de congestión TCP. Según la redacción de la pregunta, está describiendo el método TCP Tahoe.

Un tiempo de espera claramente indica una congestión de ruta grave, por lo que desea DESCENSAR EL INFIERNO y dejar de enviar tantos datos. Corte la ventana rápidamente y comience lentamente. Este es el núcleo del control de congestión.

Un ACK duplicado (dupack) indica un paquete perdido en algún lugar en el medio de una secuencia, pero no necesariamente la congestión de ruta y las caídas de cola. Tal vez hubo un error en un enlace o un problema de enrutamiento transitorio. El dupack es un disparador de “retransmisión rápida”. Sin embargo, PUEDE haber congestión, por lo que es posible que desee reducir la velocidad un poco. Especialmente frente a múltiples dupacks. Claramente, la congestión no es tan grave como si estuvieras obteniendo tiempos de espera, por lo que se necesitan medidas menos drásticas.

Del artículo de Wikipedia citado arriba:

Si bien ambos consideran el tiempo de espera de retransmisión (RTO) y los ACK duplicados como eventos de pérdida de paquetes, el comportamiento de Tahoe y Reno difiere principalmente en cómo reaccionan ante los ACK duplicados:

  • Tahoe: si se reciben tres ACK duplicados (es decir, cuatro ACK que reconocen el mismo paquete, que no están respaldados por datos y no cambian la ventana anunciada del receptor), Tahoe realiza una retransmisión rápida, establece el umbral de inicio lento a la mitad de la congestión actual ventana, reduce la ventana de congestión a 1 MSS y se restablece al estado de inicio lento. [14]
  • Reno: si se reciben tres ACK duplicados, Reno realizará una retransmisión rápida y omitirá la fase de inicio lento reduciendo a la mitad la ventana de congestión (en lugar de establecerla en 1 MSS como Tahoe), configurando el umbral de inicio lento igual a la nueva ventana de congestión y entra en una fase llamada Recuperación rápida. [14]

No hay menos de 19 algoritmos de control de congestión TCP, y todos tienen filosofías sobre cómo interpretar y actuar sobre diversas señales de congestión.

Ver también:

http://www.wseas.us/journals/cc/…

http://www.tetcos.com/downloads/…

Cuando se agota el tiempo de espera, el remitente asume que ha habido un cambio drástico en las condiciones de la red, por lo que vuelve al inicio lento (que se usa al comienzo de una conexión).

Cuando llegan acuses de recibo duplicados, el remitente asume que la red todavía es capaz de manejar datos, pero a una velocidad menor . Por lo tanto, restaura la ventana de congestión a su punto seguro anterior en el inicio lento, que es la mitad del tamaño actual de la ventana de congestión.

El control de congestión se utiliza para controlar la ventana para evitar más congestión en la red.

Permítanme comenzar con 3 dup Acks. Si el remitente recibe 3 duplicados, significa que los paquetes posteriores se han recibido con éxito. Solo un paquete no fue recibido. Lo que podría significar que la red no está congestionada. Ese paquete podría haberse caído debido a otra razón.

Por otro lado, un tiempo de espera significa que no hemos recibido el reconocimiento de ningún paquete enviado recientemente. Entonces definitivamente deberíamos concluir que la red está congestionada.

More Interesting

¿Hay alguna manera / hay algoritmos para dividir los caracteres chinos en radicales?

¿La comprensión humana sigue un algoritmo de compresión de datos?

Si la compresión sin pérdida es completamente reversible, ¿por qué no omitimos un paso y solo usamos los archivos en su estado comprimido?

¿Es posible codificar un algoritmo de manera que cuando se proporciona una imagen de entrada y la ropa que una persona usa en la imagen se recorta y compara con una imagen en una base de datos y sale con la coincidencia exacta / coincidencia más cercana?

¿Cómo funciona la ordenación por fusión en C ++?

¿Cuáles son los principios para crear algoritmos utilizando tipos de datos abstractos?

¿Cuál es el mejor algoritmo para encontrar el camino con dos limitaciones?

¿Escribir un programa de CA para convertir un número en palabras de moneda?

¿Cómo inserta este código un nuevo nodo en un árbol binario?

¿Cuál es la estrategia de divide y vencerás? Escribe un algoritmo para encontrar x a la enésima potencia usando el método de dividir y conquistar.

Cómo implementar el algoritmo de aprendizaje de refuerzo para tareas de robótica, que incluye control y planificación de rutas

¿Qué algoritmos se usan para calcular logaritmos?

¿Cómo podemos encontrar la segunda ruta más pequeña entre dos nodos en un gráfico ponderado / no ponderado de manera eficiente?

¿Podemos hacerlo mejor en complejidad de tiempo que el siguiente código para calcular la suma de los primeros 10 primos?

En el algoritmo EM, ¿debería aumentar el valor de la función objetivo a través de cada M-STEP?