I read a lot of things about these and I am very confused.
If you help me I will be very glad.
My questions are:
1-) Does TCP protocol send acknowledgment for every TCP segment or depends on window size?
Because in that link: http://www.firewall.cx/networking-topics/protocols/tcp/130-protocols-tcp-overview.html
It shows because of windows size, it sends one acknowledgment for 3 packets.
But in that animation: http://www.youtube.com/watch?v=9BuaeEjIeQI&feature=related
It seems that TCP protocol sends acknowledgment packet for every TCP segment.
Is Acknowledgment datagram per TCP datagram or per window?
2-) I downloaded http://media.packetlife.net/media/blog/attachments/424/TCP_example.cap; and I am trying to understand the window size value but I am confused.
The article says: "Window size is used by the receiver to indicate to the sender the amount of data that it is able to accept. When the amount of data transmitted is equal to the current Window value, the sender will expect a new Window value from the receiver, along with an acknowledgement for the Window just received."
Yes, in the sample .cap; window size is increased for every step but the amount of data that is transmitted is 1514 byte and it is constant. Why is that so?
asked 14 Nov '11, 15:34
Part of the confusion is that the first web site you referred to, http://www.firewall.cx/networking-topics/protocols/tcp/130-protocols-tcp-overview.html, is using confusing and incorrect terms. The title of the first graphic you posted says "Window Size = 3." On his web site, the author says "In the above example, we have a window size equal to 3, which means that host B can send 3 data segments to host A before expecting an ACK back." That is not correct. The window size is the amount of data, in bytes, that the receiver can accept. You would not see a window size of 3 bytes unless the receiver was overloaded and unable to keep up with the sender.
There are lots of good explanations of TCP on the web. I'd Google and find a better one.
Acknowledgement is per datagram, but because of a feature called Delayed ACK, you might see one acknowledgement for every two datagrams.
answered 14 Nov '11, 18:24