Re: TCP bug? hanging outgoing connections in 2.2.14

From: Andi Kleen (ak@muc.de)
Date: Thu Feb 17 2000 - 09:26:32 EST


jeremy@goop.org (Jeremy Fitzhardinge) writes:
> 12:49:20.562071 gw.goop.org.1031 > csla.csl.sri.com.smtp: S
> 1693701511:1693701511(0) win 32120 <mss 1460,sackOK,timestamp 22854
> 3[|tcp]> (DF) (ttl 64, id 4107)
> 12:49:20.585798 csla.csl.sri.com.smtp > gw.goop.org.1031: S
> 570048000:570048000(0) ack 1693701512 win 4096 (ttl 50, id 21364)

Very small window. That is not exactly normal.

Does it help if you turn the tcp options off ?
(echo 0 > /proc/sys/net/ipv4/tcp_{window_scaling,sack,timestamps)

> 12:49:46.116687 gw.goop.org.1031 > csla.csl.sri.com.smtp: . ack 2 win 32696
> (DF) (ttl 64, id 4192)

Linux does window probing now.
This means Linux decided that the window is far too small and it is better *
to wait for a bigger one. The bigger one never comes.

Linux's small window handling in TCP could be certainly improved, although
using a 4096 window on the internet looks rather bogus too.
 
Could you try if this patch helps?

--- linux/net/ipv4/tcp_input.c-o Wed Feb 9 14:35:59 2000
+++ linux/net/ipv4/tcp_input.c Thu Feb 17 15:23:42 2000
@@ -2182,11 +2181,11 @@
                         /* RFC1323: The window in SYN & SYN/ACK segments is
                          * never scaled.
                          */
- tp->snd_wnd = htons(th->window);
+ tp->max_window = tp->snd_wnd = htons(th->window);
                         tp->snd_wl1 = TCP_SKB_CB(skb)->seq;
                         tp->snd_wl2 = TCP_SKB_CB(skb)->ack_seq;
                         tp->fin_seq = TCP_SKB_CB(skb)->seq;
-
+
                         tcp_set_state(sk, TCP_ESTABLISHED);
                         tcp_parse_options(sk, th, tp, 0);
 

> 12:49:46.118020 gw.goop.org.1031 > csla.csl.sri.com.smtp: F 1:1(0) ack 2 win
> 32696
> (DF) (ttl 64, id 4193)

Now you killed it.

-Andi

-- 
This is like TV. I don't like TV.

- 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/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:18 EST