Análisis de la ventana de congestión Preguntas de prueba de la ventana de envío de TCP
Tema 1:
Fuente 2015408 Síntesis por computadora
Enlace de pregunta de prueba: https://www.nowcoder.com/questionTerminal/3241441c88f04ab58585a187716055d3
El host A y el host B crean una nueva conexión TCP. El umbral de control de congestión inicial de A es de 32 KB. A a B siempre envía datos en un segmento de MSS = 1 KB, y los datos siempre se envían; B asigna un búfer de recepción de 16 KB para la conexión y responde Reconozca cada segmento de datos, ignorando el retardo de transmisión del segmento. Si todos los datos recibidos por B se almacenan en la caché y no se eliminan, entonces, desde el momento en que la conexión se establece correctamente y no se envía el tiempo de espera, después de 4 RTT, la ventana de envío de A es (A).
A.1 KB
B.8KB
C.16KB
32 KB
El tamaño de la ventana de envío depende de min (rwnd, cwnd).
Entre ellos, rwnd es el tamaño libre del búfer de recepción, que indica cuánto puede recibir el receptor.
cwnd es el valor del eje vertical que a menudo dibujamos la curva de crecimiento lento, la curva de evitación de la congestión, etc.
Aquí, de hecho, está muy claro que el búfer de recepción solo puede entrar pero no salir, por lo que está disminuyendo constantemente. Pero tenemos una inercia mental que nos gusta pensar en las partes interesantes, dibujar los cambios de cwnd, pensar que el problema se resuelve una vez hecho el análisis, y no debemos ignorar el rwnd. Aquí hay un ejemplo.
cwnd comienza desde 1MSS = 1KB, se convierte en 2KB después de un RTT, 4KB después de dos RTT, 8KB después de 3RTT y 16KB después de 4 RTT
Al mismo tiempo, el retardo de recepción cambia de 16 KB → 15 KB → 13 KB → 9 KB → 1 KB 16 KB → 15 KB → 13 KB → 9 KB → 1 KB
Valor de la ventana de notificación, que representa el valor restante del búfer de recepción (KB) | Tamaño de la ventana de congestión (KB) | Tamaño de la ventana de envío (KB) | |
inicial | dieciséis | 1 | 1 |
Después del primer RTT | 16-1 = 15 | 2 | min (15, 2) = 2 |
Después del segundo RTT | 15-2 = 13 | 4 | min (13,4) = 4 |
Después del tercer RTT | 13-4 = 9 | 8 | min (9,8) = 8 |
Después del cuarto RTT | 9-8 = 1 | dieciséis | El búfer de recepción de notificaciones es de solo 1 KB y la ventana de envío es mín. (1, 16) = 1 KB |
Después de un RTT, al enviar por segunda vez, rwnd = 15KB, cwnd = 2KB, y la ventana de envío toma el valor más pequeño: 2KB
Después de dos RTT, al enviar por tercera vez, rwnd = 13KB, cwnd = 4KB, y la ventana de envío toma el valor más pequeño: 4KB
Después de tres RTT, al enviar por cuarta vez, rwnd = 9KB, cwnd = 8KB, y la ventana de envío toma el valor más pequeño: 8KB
Después de cuatro RTT, cuando se envía por quinta vez, rwnd = 1KB, cwnd = 16KB, y la ventana de envío toma el valor más pequeño: 1KB
Por supuesto, la ventana de aceptación está llena después de la quinta transmisión, y el host A enviará periódicamente solo un byte del segmento de datos. Una vez que el búfer del host B esté vacío, aparecerá una ventana de notificación distinta de cero para confirmar el segmento. Valor, por supuesto, esta es la solicitud del sujeto, los datos del host B no se eliminarán, solo para el cálculo, no para la situación real.