Re: TCP in TIME_WAIT response to dup FIN

From: kuznet@ms2.inr.ac.ru
Date: Sat Feb 02 2002 - 14:05:07 EST


Hello!

> > that when tcp socket is in TIME_WAIT state, the default response to a
> > retransmitted FIN packets is to silently drop them. Is this the correct
> > way of implementing TIME_WAIT?

No. Linux 2.2 is not expected to have this bug.

> > active and start sending back FIN-ACKs.

No. time-wait never send FINs, just bare ACK.

> > /* Ack old packets if necessary */
> > if (!after(TCP_SKB_CB(skb)->end_seq, tw->rcv_nxt) &&
> > (len > (th->doff * 4) || th->fin))
> > return TCP_TW_ACK;
> > return 0;
> >
> > Which I suspect contains some bug.

It should responce right. end_seq == rcv_nxt in the case of retransmitted
FIN, len == th->doff*4 but th->fin == 1. So, it returns TCP_TW_ACK.

So, it looks right, I have no idea what happens in your case.
Apparently, you diagnosed problem wrongly. It would be better
if you sent tcpdump of bad session instead.

> > Again, my question is whether 2.2.19 is doing correct things,

Supposed to do. If it does not, alas.

> > that in 2.4.9 and how? Or some alternative milder changes?

Milder change is just to install 2.4. :-)

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/



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:23 EST