lkml.org 
[lkml]   [2000]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: TCP bug? hanging outgoing connections in 2.2.14
From
Date
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/

\
 
 \ /
  Last update: 2005-03-22 13:56    [from the cache]
©2003-2011 Jasper Spaans