Re: [2.6.6-mm4, 2.6.6-1.435.2.3] Hanging tcp connections to certain www servers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What is the MTU on your interface? Is it less than 1500? If so, use an iptables rule to clamp the MSS to the MTU of the interface. 'man iptables', search for clamp, perfect example available. Make sure ICMP is not firewalled so icmp-need-frag messages get through.

David

Ville Herva wrote:

I've been experiencing strange tcp hangs for a few weeks to certain www
servers. I have two machines behind an adsl connections and both exhibit the
problem. In short: about 50% of the time when connecting to these
www servers, the connection hangs, and the browser application get zero
bytes from the server. The browser does not play any role in this; even
telnet does it.

--8<-----------------------------------------------------------------------
# telnet www.server.com 80
Trying <ip>...
Connected to www.server.com.
Escape character is '^]'.
GET /



<hangs>
--8<-----------------------------------------------------------------------

The server in question is Server "Microsoft-IIS/5.0", but I'm not sure if
that is important. There are a handful of these problematic servers (some of
them being https servers), for example http://plus.kaleva.fi
(193.143.126.85). Trying to connect to them from elsewhere (with different
kernel, though) always succeeds.

ECN is not on:
# cat /proc/sys/net/ipv4/tcp_ecn 0
Window scaling is on:
# cat /proc/sys/net/ipv4/tcp_window_scaling
1


I tried turning tcp_window_scaling off, but it did not help.

Here is a successful connection:
--8<-----------------------------------------------------------------------
# tcpdump host plus.kaleva.fi
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:27:45.384678 IP my-host.56690 > plus.kaleva.fi.http: S 2740242788:2740242788(0) win 5840 <mss 1460,sackOK,timestamp 209947219 0,nop,wscale 0>
19:27:45.406106 IP plus.kaleva.fi.http > my-host.56690: S 3447607723:3447607723(0) ack 2740242789 win 65535 <mss 1440,nop,wscale 0,nop,nop,timestamp 0 0,nop,nop,sackOK>
19:27:45.406209 IP my-host.56690 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209947241 0>
19:27:49.857104 IP my-host.56690 > plus.kaleva.fi.http: P 1:8(7) ack 1 win 5840 <nop,nop,timestamp 209951692 0>
19:27:49.889166 IP plus.kaleva.fi.http > my-host.56690: . 1:1429(1428) ack 8 win 65528 <nop,nop,timestamp 14858124 209951692>
19:27:49.889331 IP my-host.56690 > plus.kaleva.fi.http: . ack 1429 win 8568 <nop,nop,timestamp 209951724 14858124>
19:27:49.895578 IP plus.kaleva.fi.http > my-host.56690: . 1429:2857(1428) ack 8 win 65528 <nop,nop,timestamp 14858124 209951692>
19:27:49.895678 IP my-host.56690 > plus.kaleva.fi.http: . ack 2857 win 11424 <nop,nop,timestamp 209951731 14858124>
19:27:49.895582 IP plus.kaleva.fi.http > my-host.56690: . 2857:2881(24) ack 8 win 65528 <nop,nop,timestamp 14858124 209951692>
19:27:49.895705 IP my-host.56690 > plus.kaleva.fi.http: . ack 2881 win 11424 <nop,nop,timestamp 209951731 14858124>
19:27:49.910585 IP plus.kaleva.fi.http > my-host.56690: FP 2881:2911(30) ack 8 win 65528 <nop,nop,timestamp 14858125 209951724>
19:27:49.911291 IP my-host.56690 > plus.kaleva.fi.http: F 8:8(0) ack 2912 win 11424 <nop,nop,timestamp 209951746 14858125>
19:27:49.933235 IP plus.kaleva.fi.http > my-host.56690: . ack 9 win 65528 <nop,nop,timestamp 14858125 209951746>

13 packets captured
21 packets received by filter
0 packets dropped by kernel
--8<-----------------------------------------------------------------------

And here is a hanging one:
--8<-----------------------------------------------------------------------
# tcpdump host plus.kaleva.fi
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:27:55.165918 IP my-host.56691 > plus.kaleva.fi.http: S 2736589007:2736589007(0) win 5840 <mss 1460,sackOK,timestamp 209957002 0,nop,wscale 0>
19:27:55.188250 IP plus.kaleva.fi.http > my-host.56691: S 3450327922:3450327922(0) ack 2736589008 win 65535 <mss 1460,nop,wscale 0,nop,nop,timestamp 0 0,nop,nop,sackOK>
19:27:55.188344 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209957024 0>
19:27:58.107821 IP my-host.56691 > plus.kaleva.fi.http: P 1:8(7) ack 1 win 5840 <nop,nop,timestamp 209959944 0>
19:27:58.134478 IP plus.kaleva.fi.http > my-host.56691: FP 2897:2911(14) ack 8 win 65528 <nop,nop,timestamp 14858207 209959944>
19:27:58.134589 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209959971 0,nop,nop,sack sack 1 {2897:2912} >
19:27:58.417788 IP my-host.56691 > plus.kaleva.fi.http: P 8:10(2) ack 1 win 5840 <nop,nop,timestamp 209960254 0,nop,nop,sack sack 1 {2897:2912} >
19:27:58.647232 IP plus.kaleva.fi.http > my-host.56691: . ack 10 win 65526 <nop,nop,timestamp 14858213 209960254>
19:27:58.693089 IP my-host.56691 > plus.kaleva.fi.http: P 10:12(2) ack 1 win 5840 <nop,nop,timestamp 209960530 0,nop,nop,sack sack 1 {2897:2912} >
19:27:58.866518 IP plus.kaleva.fi.http > my-host.56691: . ack 12 win 65524 <nop,nop,timestamp 14858215 209960530>
19:27:59.027834 IP my-host.56691 > plus.kaleva.fi.http: P 12:14(2) ack 1 win 5840 <nop,nop,timestamp 209960864 0,nop,nop,sack sack 1 {2897:2912} >
19:27:59.194225 IP plus.kaleva.fi.http > my-host.56691: . ack 14 win 65522 <nop,nop,timestamp 14858218 209960864>
19:28:01.384850 IP plus.kaleva.fi.http > my-host.56691: . 1449:1461(12) ack 14 win 65522 <nop,nop,timestamp 14858240 209960864>
19:28:01.384963 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209963222 0,nop,nop,sack sack 2 {1449:1461}{2897:2912} >
19:28:07.947420 IP plus.kaleva.fi.http > my-host.56691: . 1449:1461(12) ack 14 win 65522 <nop,nop,timestamp 14858306 209963222>
19:28:07.947513 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209969785 0,nop,nop,sack sack 3 {1449:1461}{1449:1461}{2897:2912} >
19:28:21.073730 IP plus.kaleva.fi.http > my-host.56691: . 1449:1461(12) ack 14 win 65522 <nop,nop,timestamp 14858437 209969785>
19:28:21.073823 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209982914 0,nop,nop,sack sack 3 {1449:1461}{1449:1461}{2897:2912} >
19:28:21.097611 IP plus.kaleva.fi.http > my-host.56691: FP 2909:2911(2) ack 14 win 65522 <nop,nop,timestamp 14858437 209982914>
19:28:21.097721 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 209982938 0,nop,nop,sack sack 3 {2909:2912}{2897:2912}{1449:1461} >
19:28:47.325608 IP plus.kaleva.fi.http > my-host.56691: . 1449:1461(12) ack 14 win 65522 <nop,nop,timestamp 14858699 209982938>
19:28:47.325738 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 210009170 0,nop,nop,sack sack 3 {1449:1461}{1449:1461}{2897:2912} >
19:28:47.350231 IP plus.kaleva.fi.http > my-host.56691: FP 2909:2911(2) ack 14 win 65522 <nop,nop,timestamp 14858699 210009170>
19:28:47.350326 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 210009194 0,nop,nop,sack sack 3 {2909:2912}{2897:2912}{1449:1461} >
19:29:39.830111 IP plus.kaleva.fi.http > my-host.56691: . 1449:1461(12) ack 14 win 65522 <nop,nop,timestamp 14859224 210009194>
19:29:39.830206 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 210061682 0,nop,nop,sack sack 3 {1449:1461}{1449:1461}{2897:2912} >
19:29:39.923988 IP plus.kaleva.fi.http > my-host.56691: FP 2909:2911(2) ack 14 win 65522 <nop,nop,timestamp 14859224 210061682>
19:29:39.924101 IP my-host.56691 > plus.kaleva.fi.http: . ack 1 win 5840 <nop,nop,timestamp 210061776 0,nop,nop,sack sack 3 {2909:2912}{2897:2912}{1449:1461} >
(...)
--8<-----------------------------------------------------------------------


Any idea what might cause this? - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html



begin:vcard
fn:David Ford
n:Ford;David
email;internet:david@blue-labs.org
title:Industrial Geek
tel;home:Ask please
tel;cell:(203) 650-3611
x-mozilla-html:TRUE
version:2.1
end:vcard


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux