bug in tcp?
From: Sebastian Kuzminsky
Date: Mon Apr 16 2007 - 17:45:37 EST
I'm seeing some weird behavior in TCP. The issue is perfectly
reproducible using netcat and other programs. This is what I do:
1. Open a TCP connection over the loopback (over IPv4).
2. Send a couple of bytes of data each way. No problems.
3. Wait about 120 hours with no writes on either side of the
connection.
4. write() a few bytes to the server's socket. I'd expect the data
to go through, but it doesnt. I see the TCP frame from the
server to the client, but instead of an ACK, the client sends
back a RST. netstat shows the bytes sitting in the server's
socket's send-buffer.
5. write a few bytes to the client's socket. The server gets
these immediately.
6. On the next server-to-client retransmit, the client gets the
bytes from the server. After this, the connection works normally.
The libpcap capture file is here: http://highlab.com/~seb/tcp-idleness-bug
The behavior is reproducible on all kernels I've tried: 2.4.32, 2.6.19.1,
and 2.6.20.4. I dont think it's iptables-related, though I'm rerunning
the tests on a machine without iptables to be sure. I'll have results
for you in 120 hours. ;-)
--
Sebastian Kuzminsky
-
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/