This question focuses on the graph produced by: Statistics -> TCP StreamGraph -> Window Scaling Graph I'm sure this should be simple, but I'm confused by what this graph is showing me and I can't find documentation explicitly stating what the graph displays. Is this a graph of: a) The size of the receive window regardless of the number of unacked bytes. or b) The size of the window minus the number of unacked bytes Here's the question I'm trying to answer: there's a bottleneck in a network I'm analyzing from packet captures. I looked at various things and noticed that the TCP receive window from the Wireshark window scaling graph from one host was very erratic. That is, instead of being a smooth line maxed out at a certain value like I'm used to seeing, it rapidly oscillated in value. I thought this was a clear indication that the host's receive buffer was being maxed out and that TCP flow control was throttling the throughput via the receive window. A graph of the bandwidth over time seemed to corroborate this theory since it seemed to follow the same trend as the window scaling graph. However, someone else looked at the window scaling graph and doubted my conclusion because the receive window in the chart never went to zero, and therefore thought that the sender would never be impacted by the window. Their impression of the graph was that it was showing the window with respect to unacknowledged data, and since it never went to zero, the sender would never stop sending data because of it. Can someone help bring clarity to this for me? Thanks! asked 06 Dec '13, 22:27 firebush edited 06 Dec '13, 22:28 |
One Answer:
The window scaling graph shows what you mentioned in option a.)
So, basically the graph tells you how well the receiver can handle the received data.
The reason for an oscillating window size are many fold. Think about a system that does not only receive data and store then somewhere (maybe with RAM caching), but also need to process the data as soon as they are received (like doing calculations, printing data if it is a printer, etc.). In that case the receiver might get more data than it can process in a defined time slot and then it would lower the receive window, to let the sender know. So, the oscillating window size alone does not necessarily have an effect on the throughput. If the window size does not drop to far (let's say 10-20%), the sender can still send data fast enough in most cases. It will have an effect on links with a very high RTT, where the sender could potentially fill the whole pipe with one receive window. If in that case the receive window gets smaller, it will have an effect on throughput. Anyway: Throughput problems are more often related to packet loss than to windows size updates, unless the receive window drops to far (near 0 or to 0). In that case it will obviously have an effect on throughput. So, to figure out what's going on in your TCP connection you need to look at several things
Those things, together, will affect your throughput. Regards answered 07 Dec '13, 07:22 Kurt Knochner ♦ showing 5 of 7 show 2 more comments |
Thanks for the quick reply, Kurt! Great answer. A small request: it looks like you're quoting something when you give that definition of the window scaling graph. Mind indicating or linking where that came from? That may help me or someone else in the future. Thanks again!
Mainly I quoted your definition as it was correct ;-)
The rest comes from my memory. If you want a link to that, you'll need a class 3 neuro interlink with a mid range subspace transmitter, powered by a quantum point energy cell. I'm not sure if that is available at RadioShack in this region of the Galaxy...
I don't need to go to RadioShack. I'll just use the one in my garage. :)
Fine. Plug it in and join me for a journey through a weird world of bit, bytes, protocols and other silly stuff.... ;-)
Danger, Will Robinson, danger! :-D
Yep, beware!!!
My secret nickname is Rex Kramer - Danger Seeker. I'm always there were it hurts. In the late seventies I played myself in one of those B-movies...
Kentucky Fried Movie FTW! :-)