Ask Your Question

Why do TCP Windows sometimes not get fully used?

asked 2023-07-07 12:43:44 +0000

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: 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.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2023-07-10 06:45:10 +0000

hugo.vanderkooij gravatar image

updated 2023-07-10 08:05:46 +0000

cmaynard gravatar image

I think you have a different perception of why there is a window size. It is to allow for more packets being sent instead of waiting for an ACK on each data packet. So once the receiver has processed the packets, it will send an ACK with a new window size as it now has more room in its buffer.

It was never intended that a client must fill a window size. It only tells you how much it can handle before the buffer is full. Explaining this on a whiteboard with a real life example of loading sacks of grain by hand makes it so much clearer.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2023-07-07 12:43:44 +0000

Seen: 113 times

Last updated: Jul 10