Hello! > Either LAST-ACK is completely broken or Linux just cannot handle a > FIN-ACK that is piggybacked on a data segment, when received in LAST-ACK > state. It cannot handle even pure FIN in this state. :-( I bring apologies, it is my fault. Thank you. Well, you can just add one line to tcp_input.c to repair this. --- linux/net/ipv4/tcp_input.c~ Mon Dec 17 16:34:27 2001 +++ linux/net/ipv4/tcp_input.c Tue Dec 18 14:20:56 2001 @@ -3881,6 +3881,7 @@ } } /* Fall through */ + case TCP_LAST_ACK: case TCP_ESTABLISHED: tcp_data_queue(sk, skb); queued = 1; } Dave, "official" patch will follow later. I must think about some marginal effect in TCP_CLOSE_WAIT and TCP_CLOSING, which can break out of switch too. Duh, do specs say something about segments with seqs above fin? I do not remember. Alexey - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/diff -urN wt3-4g/net/ipv4/tcp_input.c wt3/net/ipv4/tcp_input.c