Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This article is part of a series, which examine performance problems in high-speed internet connections. Unfortunately, in addition to being split over several pages, it is written in one of the most rambling and verbose styles I've ever seen. The best single explanation is found not in the submitted link, but in < http://gettys.wordpress.com/2010/12/03/introducing-the-crimi... >

My background in networking isn't strong enough to fully understand the problem, but here's an attempt:

--

When using a fast Internet connection, in the 20+ Mb/s range, throughput and latency for common residential use cases are both far worse than expected[1,3,4]. The problem is masked from most users because Windows XP is missing a feature required for maximum network performance, and because most American residential Internet connections are slow. As more users upgrade their operating systems and connection, significant performance will be lost.

The problem occurs due to excessive buffering, combined with the TCP window scaling feature. When a network stack with support for TCP window scaling is allowed to connect to a fast link, the link is saturated. Normally the dropped packets should signal the stack to back off, but buffering in the stack and local switch combine to cause massive latency (on the order of 10-20 seconds) before packets begin dropping. This latency, which the author terms "bufferbloat", is responsible for the performance degradation.

The author goes on to diagnose and correct excessive buffering in various nodes; his described fixes are beyond my understanding, but indicate that altering his Linux desktop's TCP queue parameters is sufficient to correct many cases. Similar fixes to OS X and Windows can likely be applied by their respective developers, once they become aware of the problem.

--

The articles, in order:

[1] http://gettys.wordpress.com/2010/10/02/first-puzzle-piece/

[2] http://gettys.wordpress.com/2010/10/13/browsers-and-tcp-revi...

[3] http://gettys.wordpress.com/2010/11/29/home-router-puzzle-pi...

[4] http://gettys.wordpress.com/2010/12/02/home-router-puzzle-pi...

[5] http://gettys.wordpress.com/2010/12/03/introducing-the-crimi...

[6] http://gettys.wordpress.com/2010/12/06/whose-house-is-of-gla...

[7] http://gettys.wordpress.com/2010/12/07/bufferbloat-and-netwo...

[8] http://gettys.wordpress.com/2010/12/08/bufferbloat-mitigatio...

[9] http://gettys.wordpress.com/2010/12/09/bufferbloat-and-conge...

[10] http://gettys.wordpress.com/2010/12/13/mitigations-and-solut...



Thank you for that. Can someone post a fix here, if any, for whatever OS they know? I couldn't detect one in that monster of a post...


I've been using such a thing since about October of 2002 in linux. Its based (well it was at first anyway) on a quick little hack called "wonder-shaper".

http://lartc.org/wondershaper/

I put it on the linux box that was routing my ISDN (don't laugh) and magic happened.

I was then compelled to study the deepness that is LARTC and found much enlightenment.

The path lies at http://lartc.org


Thanks for that, it's even included in Ubuntu. I'm just not sure if it will work if I install it on all my computers individually, because I don't have a router running Linux (pity me).


Indeed. It would be nice if dd-wrt or a variant supported a wonder-shaper sort of fix..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: