En relación con Conexiones TCP mediante NetGui (y wireshark para analizar):
Establezco una conexión TCP entre dos PCs utilizando el comando nc -p 11111 etc... para el servidor, y el correspondiente para el cliente, para que efectivamente pudieran enviar y leer (en pc2 (servidor)) mensajes.
Después, pulsé Ctrl Z en pc2 (servidor debe ser suspendido) y envió algunos mensajes con pc1 (cliente). Utilizando netstat -tna comando puedo ver los mensajes en espera en el buffer. Antes de volver a poner el servidor en primer plano Paro el tcpdump captura en el router entre estos dos pcs y se da cuenta de que estos mensajes habían sido enviados (como se esperaba) pero también ACKed por el servidor.
Ahora bien, si el servidor ACKs los mensajes a medida que salen del buffer (es decir, a medida que son procesados y subidos a otra capa), ¿fueron estos mensajes realmente "cogidos" del buffer por el servidor? Si es así, ¿cuál es el significado de ser suspendidos?
Si, sin embargo, los mensajes son ACKed antes de ser procesados, entonces ¿no pensaría pc1 que estos mensajes han sido procesados y por lo tanto, el buffer está libre y seguiría enviando mensajes hasta que la ventana llegue a valor cero? Si es así, ¿qué significa la siguiente fórmula?
rwnd = ReceiveBuffer - (LastByteReceived – LastByteReadByApplication)
¿En qué me equivoco?