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.
In a string of painstaking and now well-publicized experiments, Jim Gettys has outlined (en.wordpress.com/tag/bufferbloat) the breathtaking, almost Y2K scope (mirrors.bufferbloat.net/Talks/BellLabs01192011), of the problem. He also coined bufferbloat (gettys.wordpress.com/what-is-bufferbloat-anyway) as the name for the pain. (Some of you may recall that Jim also originated the Unobtainium handheld.)
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.
Doc Searls is Senior Editor of Linux Journal
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
|Trying to Tame the Tablet||May 08, 2013|
- Using Salt Stack and Vagrant for Drupal Development
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- New Products
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- New Products
- Readers' Choice Awards
- RSS Feeds
- Automatically updating Guest Additions
28 min 52 sec ago
- I like your topic on android
1 hour 15 min ago
- Reply to comment | Linux Journal
1 hour 36 min ago
- This is the easiest tutorial
7 hours 51 min ago
- Ahh, the Koolaid.
13 hours 29 min ago
- git-annex assistant
19 hours 29 min ago
- direct cable connection
19 hours 51 min ago
- Agreed on AirDroid. With my
20 hours 1 min ago
- I just learned this
20 hours 6 min ago
20 hours 36 min ago
Enter to Win an Adafruit Prototyping Pi Plate Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Prototyping Pi Plate Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- Next winner announced on 5-21-13!
Free Webinar: Linux Backup and Recovery
Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.
In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.