RE: Question regarding TCP behavior
From: David Schwartz
Date: Thu May 29 2008 - 12:56:51 EST
> Greetings.
>
> I have a question about how linux's TCP stack behaves.
> I apologize if this is not the right place to ask this question and
> please redirect me.
>
> When a TCP end point (A) sends x bytes of data to the other end point (B),
> does B immediately ACK the received bytes or will it do so only
> when the data
> is passed to the upper layer ?
>
>
> Thanks
> Thomas
If the TCP connection was idle and there is no unacknowledged data in either
direction, the answer is neither.
Acknowledging the data immediately is wasteful. There's a very good chance
another packet is right behind this one and delaying the acknowledgement
would save a packet.
Waiting for upper layers is disastrous, it could result in the other end
timing out and retransmitting and would limit the end of slow start based on
user-space speeds.
Google "delayed ACK".
http://www.freesoft.org/CIE/RFC/1122/110.htm
DS
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/