[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]

 



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

[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