On Fri, Aug 24, 2007 at 01:08:25AM +0100, TJ wrote: > An RFC 793 standard TCP handshake requires three packets: > > client SYN > server LISTENING > client < SYN ACK server SYN_RECEIVED > client ACK > server ESTABLISHED > > client PSH ACK + data > server > > TCP_DEFER_ACCEPT is designed to increase performance by reducing the > number of TCP packets exchanged before the client can pass data: > > client SYN > server LISTENING > client < SYN ACK server SYN_RECEIVED > > client PSH ACK + data > server ESTABLISHED > > At present with TCP_DEFER_ACCEPT the kernel treats the RFC 793 handshake > as invalid; dropping the ACK from the client without replying so the > client doesn't know the server has in fact set it's internal ACKed flag. > > If the client doesn't send a packet containing data before the SYN_ACK > time-outs finally expire the connection will be dropped.
A brought this up a long, long time ago, and I seem to remember Alexey Kuznetsov explained me at the time that this was intentional. I can't find the thread in the mailing list archives anymore, though -- and my memory might be failing me. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html