Re: TCP resets connection after 3rd ACK with win=0

From: Eric Dumazet
Date: Wed Feb 20 2008 - 08:47:12 EST


On Wed, 20 Feb 2008 14:42:16 +0100
Gergely Magyarosi <gergely.magyarosi@xxxxxxxxxxxx> wrote:

> Hi!
>
> Thanks for the hint.
> It is rather difficult to switch to the newest kernel on this system. It
> uses a lot of custom-made patches, which should be adapted to 2.6.24.
> So this will take quite some time.
>
> Meanwhile, I was wondering if this RST is a result of the local
> application closing the socket too soon.
>
> In /net/ipv4/tcp.c: tcp_disconnect()
>
> As I see, a RST is generated, when there is still something in the send
> buffer when closing the socket.
> I'll try to get the app. developer's opinion.
>
> The TCP stack, when I close the socket, and there is still data in the
> send (or maybe even in the receive) buffer, sends a RST.
> Am I seeing this correctly?
>

If you close socket while some data is still in receive queue, tcp stack SHOULD send an RST

Key sentence in RFC 1122

From 4.2.2.13: If such a host issues a CLOSE call while received data is still pending in TCP, or if new data is received after CLOSE is called, its TCP SHOULD send a RST to show that data was lost.

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html