Messages in this thread | | | Date | Mon, 26 Jul 1999 18:08:59 -0400 (EDT) | From | "Vijay G. Bharadwaj" <> | Subject | Re: TCP TIME-WAIT bug in Linux 2.2.5 (still there I think) |
| |
On 26 Jul 1999, Andi Kleen wrote:
> A patch that should fix it is included in > ftp.firstfloor.org:/pub/ak/2.2.10-net-patchkit
A couple of questions:
(in tcp_timewait_state_process)
+ /* Ack old packets if necessary */ + if (!after(TCP_SKB_CB(skb)->end_seq, tw->rcv_nxt)) + return TCP_TW_ACK;
Referring to the passage from RFC 793 I quoted earlier, (i.e. "The only thing that can arrive is a retransmission of the FIN") maybe this should only send an ACK if the FIN bit is set and (TCP_SKB_CB(skb)->end_seq == tw->rcv_nxt)? Anything else is probably just an uninteresting old duplicate and should be silently dropped, I think. (be conservative in what you send, etc etc)
Also,
(in tcp_v4_send_ack)
+ rth.ack_seq = th->fin ? htonl(ntohl(th->seq)+1) : th->seq;
Why assume that there was no data in the packet? Wouldn't
rth.ack_seq = htonl(TCP_SKB_CB(skb)->end_seq);
be better? (I might have an off-by-one error there, I can't check the source right now...)
(and besides, why would we be generating an ACK for a data-less and FIN-less packet?)
-Vijay
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |