Qué es el síndrome de la ventana tonta – Explicación y prevención

Última actualización: noviembre 8, 2023

Los datos se transfieren a través de la red e Internet utilizando el protocolo TCP/IP . El TCP/IP no es perfecto pero es más fácil de implementar en comparación con otros protocolos teorizados para la comunicación de datos… como el modelo ISO OSI. Como con cualquier cosa técnica, TCP/IP también tiene algunos defectos y El Síndrome de la Ventana Tonta es una creación de uno de esos defectos. Para entender lo que es el Síndrome de la Ventana Tonto o SWS, primero necesitará entender el mecanismo subyacente de la comunicación de datos en TCP/IP.

Síndrome de la ventana tonta

Entender la ventana y su tamaño

Cuando dos puntos se comunican bajo TCP/IP, se trata de un mecanismo de reconocimiento. Este mecanismo de reconocimiento es lo que causa el Síndrome de la Ventana Tonta, como se explica más adelante. Los puntos pueden referirse a dos ordenadores, cliente y servidor, etc.

SWS se debe a que el receptor avanza por el borde derecho de la ventana cada vez que tiene un nuevo espacio de búfer disponible para recibir datos y a que el emisor utiliza cualquier ventana incremental, por pequeña que sea, para enviar más datos. El resultado puede ser un patrón estable de envío de pequeños segmentos de datos, aunque tanto el remitente como el receptor tengan un gran espacio de buffer total para la conexión, dice MSDN .

Cuando una computadora, digamos A, envía un paquete de datos a otra computadora B, esta última tiene que acusar recibo y responder que recibió el paquete de datos. Junto con el acuse de recibo, también tiene que enviar el tamaño de búfer establecido para ese hilo de comunicación. Este es generalmente el número de bytes liberados para la comunicación.

  Estudio Netcam: Sistema de vigilancia todo en uno para Windows

Así que cuando B dice que 100B está disponible para el siguiente mensaje, el 100B es la ventana del Síndrome de la Ventana Tonta. Es decir, es el tamaño del búfer. Con su propio defecto, el mecanismo TCP/IP puede reducir el tamaño del búfer para cada comunicación/datos procedentes de A. Es decir, cuando A envía un mensaje, B asume que el tamaño del búfer se reduce y envía un número menor. De este modo, el tamaño de la ventana se mantiene reducido y en un punto, la comunicación se detiene cuando B envía 0B como tamaño de la ventana.

¿Cómo funciona el síndrome de la ventana tonta

Según el ejemplo anterior de A y B, si B envía 1000B como tamaño de ventana, A lo dividirá en dos 500B y enviará dos paquetes de 500B. Al recibir el primer paquete, B enviará un acuse de recibo diciendo que 500B está disponible para la ventana, ya que el segundo paquete aún no se ha recibido. A asume que 500B es el tamaño de la ventana y envía dos paquetes de 250B en consecuencia. Mientras que en B, 500B se utiliza y 500 se acaba de recibir, enviará 0B como disponible. En este punto, A asumirá que no hay ninguna ventana disponible, aunque puede ocurrir que el búfer esté vacío cuando el procesador agote los datos allí. A seguirá enviando un paquete más pequeño para ver si hay alguna ventana disponible. Si el contenido del búfer en B aún no se ha eliminado, recibirá 0 como respuesta/acuse de recibo.

Por lo tanto, el tamaño de la ventana sigue reduciéndose a medida que B envía el acuse de recibo cada vez que recibe un paquete de A. Este tamaño suele ser menor que el acuse de recibo anterior, ya que B recibe los paquetes de datos en partes. No habría problema si A pudiera enviar un paquete lo suficientemente grande para cubrir el tamaño del buffer en B a la vez. Pero eso requeriría mecanismos adicionales y, por lo tanto, el Síndrome de la Ventana Tonta. La comunicación se detiene después de que A recibe 0 dos o tres veces.

  Descubra la fecha de instalación de Windows utilizando varios métodos

Cómo prevenir el Síndrome de la Ventana Tonto (SWS)

Hay un algoritmo simple que debe ser implementado para deshacerse de SWS. Al recibir el paquete inicial, B envía la mitad del espacio realmente disponible como ventana. Eso hará que A envíe paquetes más pequeños. Consecuentemente, cuando los paquetes se vuelven demasiado pequeños, entonces B envía el tamaño total del buffer para que A pueda empezar a enviar bytes de datos más grandes de nuevo.

En otras palabras, si 1000B está disponible, B envía 500B como acuse de recibo. Por consiguiente, A envía 250B x 2 paquetes. Para ello, A recibe 100B como acuse de recibo. Cuando recibe el paquete 50B, B envía 1000B – 50B a A. Esto hace que toda la conversación vuelva a ser operativa. Esto podría inducir un pequeño retraso en el procesamiento, pero evitará que el Síndrome de la Ventana Tonta ocurra y detenga toda la conversación.

En resumen, SWS se basa en el tamaño del búfer disponible en el destinatario y en el tamaño supuesto calculado por el remitente. Para prevenir SWS, se introduce un retraso y se reciproca un tamaño de ventana deliberadamente más pequeño hasta que el tamaño del paquete se vuelve demasiado pequeño. A continuación, el destinatario revela el tamaño de la ventana realmente disponible. Todo el proceso se repite hasta que se completa la comunicación.

Aunque puede que haya usado las palabras «ventana» y «búfer» indistintamente. No me refiero a ninguna diferencia entre ellos. En los estudios SWS, el buffer es la ventana.

Si necesita más información, hay una explicación detallada disponible aquí en tcpipguide.com .

Contenido Relacionado

[pt_view id=»1047b4eroy»]

Deja un comentario