Quote:
Originally Posted by nx5000
|
But it was EXACTLY what I was looking for! TCP window scaling was the problem! Clicking through links from the page you directed I came across a pretty concise description of the problem (
TCP window scaling and broken routers[corbet]). As soon as I disabled window scaling (echo 0 > /proc/sys/net/ipv4/tcp_window_scaling, I was instantly able to view the web page).
This is what is happening when window scaling is enabled:
me: (syn) window=5840, scale: 5
them: (syn-ack) window=16384,
scale: 0
me: (ack) window=5856 (scaled)
me: (psh-ack) -http_get- window=5856 (scaled)
me(retry): (psh-ack) -http_get- window=5856 (scaled)
them: (ack) window=65084 [previous seg lost]
15 seconds...
them: (rst)
and from that article:
Quote:
[...] some routers on the net are rewriting the window scale TCP option on SYN packets as they pass through. In particular, they seem to be setting the scale factor to zero, but leaving the option in place. The receiving side sees the option, and responds with a window scale factor of its own. At this point, the initiating system believes that its scale factor has been accepted, and scales its windows accordingly. The other end, however, believes that the scale factor is zero. [...] In many cases, the small window can cause no packets to be transmitted at all, breaking TCP between the two affected systems entirely.
|
So the consensus is...there's a bad router.....somewhere. Just having to remember to disable window scaling for this site (or any sites where I can connect and the browser's status is stuck at "waiting for server.com..." until it the connection gets ultimately reset) is something I can live with.
(Rebooting, wanna see what a pcap looks like under Windows)
Edit: Windows does not use scaling. Packets I initiated had a window of 64K and packets received, a window of 16K. When I disabled scaling under 2.6, all my packets had a window of 5840 while the remote host, 16K).
Thanks you guys, really appreciate it.
and PS: I did try that MTU fix but that problem still arose.