Why do TCP Windows sometimes not get fully used?
In the 'Troubleshooting with Wireshark' book, lab 69 entitled "Use Bytes in Flight to Watch a Stuck Application", you notice in the trace file (attached here) at packet 23 the last of the current bytes in flight of the current window are sent, but the original window size issued by the server still leaves a bit more space within the current window (Win Size 15224) for the client to be able to send a few more segments: https://www.dropbox.com/scl/fi/4tzndq... But instead, at packet 23, after only 13140 bytes are sent from the client, the print server issues a new window and the data transfer goes on from there again. There was room for one more segment. So why didn't the server allow bytes in flight to continue to be filled up inside the current window? Why did it cut the window short by one segment? What would be a typical case for a window not being filled, especially when more data still needs to be sent? Thanks.