EOF - Whatever Sinks Your Boat

Lately I've been urged by friends in the Linux community to write here
about a topic dear to the infrastructure we share. So, rather than give
away that topic in this intro, I'll turn the floor over to one of those
worthy others: my old friend Dave Täht, who now will treat us to a guest
EOF. Take it away, Dave.—Doc.

Do your movies stutter when you stream them? Does your kid get fragged when
you fire off a Flickr upload? Can you not make a VOIP call while surfing
the Web? These common problems may have one common cause: bufferbloat.

Although bufferbloat masquerades as inadequate network provisioning, it's
actually a result of mis-design. To prevent packet loss, manufacturers have
been putting vastly overlarge—bloated—buffers for data
everywhere in the Internet: routers, switches, cable modems, wireless
access points and other devices. This has badly worsened both average
latency and latency under load—what you should think of as
“speed” on the
Internet. As a result, even after large increases in bandwidth, we often
find we can't share a connection anymore. Movies stutter, calls drop,
uploads interfere with gaming and so on.

Jim's experiments showed, clearly, that even on high-speed 10–50Mbit lines,
operations that should take 1/100th of a second might now take seconds. He
also showed how the core protocol of the Web, TCP/IP, is now misbehaving,
thanks to bufferbloat. The consequences might include widespread problems
similar to the NSFnet collapse in 1986. And there are a lot more people on
the Net now than there were then.

The RMS Titanic hit an iceberg and sank because it was unable to turn fast
enough to avoid disaster. The Tesla sports car carries two, goes from 0 to
60 in less than four seconds and turns on a dime. Which would you rather drive?

The Titanic is actually a more fitting analogy than you might think. The
Titanic, like the Internet, was built during a major shift in technology.
Steel was replacing iron. Nobody knew for sure what worked and what didn't.
Bolting a giant ship together took advanced skills and advanced rivets.
But, in the rush to launch that ship, essential risks were misunderstood
and under-tested technology was pushed too far.

The Internet we've built has the carrying capacity and the turning speed of
the Titanic. The great big bloated buffers we've built in to all the newest
(and supposedly fastest) kit have been breaking the Net. Bufferbloat is the
risk we now understand, and it's being tested now under increasing stress.

Jim Gettys is also no longer alone on the bufferbloat case. Since he
sounded the alarm in November 2010, Robert Cringely, Slashdot and LWN have all
covered the problem. Vint Cerf—a father of TCP/IP—put out a
call for help at LCA as well.

Since then, many members of the Open Source and Internet engineering
communities have leaped forward to help beat the bloat. As I write this (in
early March 2011), more than 180 people have joined the bloat mailing list. In
less than two months, we've also produced a new (debloat-testing) Linux kernel
that puts many of the core ideas for fixes in one place.

Bufferbloat is a subtle bug that has been bugging everybody for a very long
time, only we didn't know it. Now it has a name, plus a bunch of highly
motivated people working on fixing it, from top to bottom, across multiple
operating systems.

Much work and testing remain. There are already simple solutions for home
routers out there, and more fixes for wireless and other devices are on
their way. Unfortunately, some problems still only have theoretical
solutions
(gettys.wordpress.com/2010/12/17/red-in-a-different-light).

While the network neutrality debate is over regulatory fixes to the threat
of carrier favoritism toward certain kinds of traffic, a technological
solution to the bufferbloat problem may turn down the heat a bit. It may be
possible for your son's game, your wife's Facebook, your Flickr upload and
your business calls all to co-exist happily on one network, and for content
to travel much more smoothly through ISPs once good fixes for bufferbloat
appear.

Best of all, fixing bufferbloat from end to end will make new edge
applications feasible, from immersive video-conferencing to VRM.

Meanwhile, the bufferbloat problem remains huge, largely unrecognized, and
it's all around us. Hundreds of millions of bloated products are in the field,
and hundreds of millions more are in the pipeline. Fortunately, fixing new
designs is fairly simple. Unfortunately, fixing already-deployed hardware
is complicated and often expensive.

Can we turn our Titanic back into a Tesla, with a little trunk space? I'm
betting: Yes! But we need all the help we can get.

There's still a shortage of good rivets, and good riveters.

If you design network software or hardware, use VoIP, upload/download
video, play games, run a Web site, administer a network, purchase hardware,
or merely care about the future of new, innovative applications on the Net,
please don't stop reading here. Go to bufferbloat.net. Then read on,
pass on, and apply what you learn.

The network you save may be your own.

Doc Searls is Senior Editor of Linux Journal and a fellow with the Center
for Information Technology and Society at UC Santa Barbara.

Dave Täht
is an
IPv6 and mesh networking researcher who surfs (literally) on the side.

Trending Topics

Webinar: 8 Signs You’re Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th

Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.