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