On BNET: Clean the gunk from your PC
BNET Business Network:
BNET
TechRepublic
ZDNet

March 24th, 2008

Fixing the unfairness of TCP congestion control

Posted by George Ou @ 1:05 am

Categories: Infrastructure, Mobile/Wireless, Networking, News, Technology policy, Net Neutrality

Tags: Algorithm, Application, Bandwidth, Network, P2P, TCP, Fairness, Bob Briscoe, Van Jacobson, Jacobson

Bob Briscoe (Chief researcher at the BT Network Research Centre) is on a mission to tackle one of the biggest problems facing the Internet.  He wants the world to know that TCP (Transmission Control Protocol) congestion control is fundamentally broken and he has a proposal for the IETF to fix the root cause of the problem.

The Internet faced its first congestion crisis in 1986 when too much network traffic caused a series of Internet meltdowns when everything slowed to a crawl.  Today’s problem is more subtle and lesser known since the network still appears to be working correctly and fairly.  But underneath that facade and illusion of fairness, a very small percentage of users hog most of the Internet’s capacity suffocating all other users and applications.
 

Solving the first Internet meltdown crisis

In October of 1986, the Internet began to experience a serious of “congestion collapses”.  So many computers were piling their traffic on to the network at the same time that the network came to a grinding halt and no one got any meaningful throughput.  By mid 1987, computer scientist Van Jacobson who is one of the prime contributors to the TCP/IP stack created a client-side patch for TCP that saved the day.  Every computer on the Internet - roughly 30,000 in those days - was quickly patched by their system administrators.

Jacobson’s TCP stack patch worked by causing a computer to cut the flow rate of its TCP stream in half as soon as it detects any packet loss.  Packets are lost whenever the routers relaying them receive more packets than they can forward and the router begins to randomly drop packets across the board.  But whenever a computer sees an acknowledgement that its packet arrived successfully, it quickly and continually increases its flow rate with every acknowledgement until it experiences another packet drop at which time it cuts its throughput in half again.  This became known as the AIMD (Additive Increase Multiplicative Decrease) algorithm where the sending computer is constantly probing for the maximum allowable bandwidth by repeatedly increasing throughput until it crosses a line and gets knocked down.

Jacobson’s AIMD algorithm also allowed a new TCP stream to open up and quickly rise to equilibrium where it attains the same flow rate as all other TCP streams.  Conversely when a TCP stream ended transmission, the extra bandwidth freed up would be evenly distributed amongst the remaining streams.  Van Jacobson’s patch was so successful that it became a part of the TCP standards and it hasn’t fundamentally changed for over 20 years and according to Bob Briscoe, Jacobson’s algorithm is the “fifth most cited academic paper in all of computer science”.

Under Jacobson’s algorithm which sought out to balance the flow rate (throughput) of each TCP stream, the system was more or less fair to everyone who wanted to use the network so long as everyone used an equal number of TCP streams.  Since people typically used one TCP stream at a time and people had limited usage on those time-sharing computers in the 1980s, Jacobson’s algorithm was adequate for the problems of that era.  While it was possible for someone to open two FTP downloads or uploads at a time and get double the total throughput than anyone else, this wasn’t a big problem when applications and operating systems were mostly limited to text and computers were limited to academic and large corporate institutions.  But as time went on and as the number of applications and users grew, it was only a matter of time before the fairness of the system would be exploited.

<Next page - Exploiting Jacobson’s TCP algorithm>

Pages: 1 2 3 4

George Ou is Technical Director of ZDNet. See his full profile and disclosure of his industry affiliations.

  • Talkback
  • Most Recent of 103 Talkback(s)
RE: Fixing the unfairness of TCP congestion control
Is there an Weighted TCP stack for Linux we can experiment with ? (Read the rest)
Posted by: ZEEK0 Posted on: 04/15/08 You are currently: Logged In | Log out
Wow sgtgary@...   | 03/24/08
Yes it certainly does georgeou   | 03/24/08
In My Honest Opinion nucrash   | 03/24/08
George made no such illustration... robb@...   | 03/24/08
You're wrong on several points georgeou   | 03/24/08
Who writes your articles? robb@...   | 03/24/08
Couple things georgeou   | 03/24/08
Wow, you are confused. robb@...   | 03/24/08
Beats you pretty much sums it up georgeou   | 03/24/08
George made no such illustration... robb@...   | 03/24/08
RE: Fixing the unfairness of TCP congestion control pwtenny@...   | 03/24/08
Why not QoS? Because it solves the wrong problem. robb@...   | 03/24/08
This isn't packet prioritization, it's lower level than that georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control Vesicant   | 03/24/08
Typo - Lyon's share?!?!? t_mohajir   | 03/24/08
This can be done at the router RestonTechAlec   | 03/24/08
Cheers!! robb@...   | 03/24/08
This is a much more complete way to solve the problem georgeou   | 03/24/08
Deep not the right word, Elegant maybe rjcarlson49   | 03/24/08
It absolutely is a cheat and it's unfair georgeou   | 03/24/08
Unfair yes, cheating no rjcarlson49   | 03/24/08
Benefitting unfairly at the expense of others is cheating georgeou   | 03/24/08
CHEAT Jon@...   | 03/25/08
Comcast does NOT advertise unlimited bandwidth georgeou   | 03/25/08
The TCP protocols DO need to be fixed... RestonTechAlec   | 03/24/08
Absolutely no argument from me, I'm on your side. georgeou   | 03/24/08
No argument inferred RestonTechAlec   | 03/24/08
Fairness kalensglitch   | 03/24/08
TCP isnt the only problem bpedman   | 03/24/08
P2P primarily uses TCP, UDP applications are self constraining georgeou   | 03/24/08
P2P primarily uses TCP, UDP applications are self constraining BobBriscoe   | 03/26/08
RE: Fixing the unfairness of TCP congestion control fairnotfair   | 03/24/08
RE: Fixing the unfairness of TCP congestion control kingzog   | 03/24/08
George's Villany of P2P: Tying the Damsel to the RR Track robb@...   | 03/24/08
PSS: Your addendum to Briscoe's draft sounds worthy... robb@...   | 03/24/08
"Appears" working correctly does not contradict it's broken georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control shawnspam   | 03/24/08
Nothing "slippery" about giving everyone a fair share of bandwitdh georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control fairnotfair   | 03/24/08
Fixing the unfairness of ISP congestion control rjplummer   | 03/25/08
RE: Fixing the unfairness of TCP congestion control fgoldstein   | 03/24/08
Thanks for your response, here's mine georgeou   | 03/24/08
I agree (with your last sentence) robb@...   | 03/24/08
Ah, your true motivations came out sooner or later georgeou   | 03/24/08
My rather public hidden agenda: The Net should Work robb@...   | 03/24/08
You're good at twisting quotations and words georgeou   | 03/24/08
Might not use the Internet, but Comcast movies use bandwidth curtian4   | 03/25/08
You're in denial of basic economics and reality georgeou   | 03/25/08
Reality Check NetArch.   | 03/26/08
Large number averages fgoldstein   | 03/24/08
Works as designed... TtfnJohn   | 03/24/08
You completely misquoted me georgeou   | 03/24/08
Also, I'm saying the user has a choice to use a volume cap georgeou   | 03/24/08
Yes, I do TtfnJohn   | 03/24/08
Engineering vs User vs Sales Policy t.burninator@...   | 03/24/08
The reality is that ALL networks are over sold and under provisioned georgeou   | 03/24/08
Exageration doesn't help r_widell   | 03/26/08
RE: Fixing the unfairness of TCP congestion control Ginevra   | 03/24/08
price ~ cost ? delorimier   | 03/24/08
You missed the whole point georgeou   | 03/24/08
Sounds like the U.S. tax system. RichardBronosky   | 03/24/08
Protocol shaping is NOT net neutrality dave@...   | 03/24/08
You’re not even consistent with your peers georgeou   | 03/24/08
Hardest steps are the easiest? quinthar   | 03/24/08
I too had my reservations about updating the TCP stack georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control fridder   | 03/24/08
Well, there are like a dozen implementations of AIMD georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control rjcarlson49   | 03/24/08
This goes deeper than QoS georgeou   | 03/24/08
Politically best? maybe so rjcarlson49   | 03/24/08
I don't disagree, but you're preaching to the choir georgeou   | 03/24/08
Then don't say Net Neutrality is Bad NetArch.   | 03/26/08
RE: Fixing the unfairness of TCP congestion control johnsokol   | 03/24/08
Again, Broadband is not CIR georgeou   | 03/24/08
RE: Fixing the unfairness of TCP congestion control wein0   | 03/24/08
RE: Fixing the unfairness of TCP congestion control dad4x   | 03/24/08
RE: Fixing the unfairness of TCP congestion control BrettGlass   | 03/24/08
What isn't mentioned commenter   | 03/24/08
Excellent: but beware latent demand. johnfenjackson@...   | 03/25/08
RE: Fixing the unfairness of TCP congestion control Hemlock Stones   | 03/25/08
RE: Fixing TCP congestion: The 600 pound gorilla jdubow@...   | 03/25/08
RE: Fixing TCP congestion: The 600 pound gorilla BobBriscoe   | 03/26/08
Identifying a computer. Anton Philidor   | 03/25/08
No, it's easy to count how much data each person sends per unit time georgeou   | 03/25/08
Now it's easy to count... Anton Philidor   | 03/26/08
Look at the Peer's IPN RARPSL   | 03/25/08
This article completely missed the real problem Notfillingthisin   | 03/25/08
No network allows for full bursting constantly georgeou   | 03/25/08
ISP routers are not the boundary of your traffic xodusprime   | 03/27/08
RE: Fixing the unfairness of TCP congestion control WaltFrench@...   | 03/25/08
Your economic model is wrong because you're confusing objectives here georgeou   | 03/25/08
Discount by Connection Time RARPSL   | 03/25/08
Oversubscription jmounteer@...   | 03/25/08
Net Neutrality debate isn't solely a misunderstanding BobBriscoe   | 03/27/08
Bob, sorry I worded it wrong georgeou   | 03/27/08
RE: Fixing the unfairness of TCP congestion control bk1022   | 03/28/08
RE: Fixing the unfairness of TCP congestion control bk1022   | 03/28/08
This is a QoS Problem anywhere.i.roam   | 03/30/08
You should try Comcast John Musbach   | 04/01/08
RE: Fixing the unfairness of TCP congestion control jtopping   | 04/08/08
RE: Fixing the unfairness of TCP congestion control anywhere.i.roam   | 04/10/08
Implementing a new congestion control in Linux runeks   | 04/11/08
RE: Fixing the unfairness of TCP congestion control ZEEK0   | 04/15/08

What do you think?

10 Trackbacks

The URI to TrackBack this entry is:
http://blogs.zdnet.com/Ou/wp-trackback.php?p=1078

  • A TCP stack swapout solves nothing
    George Ou wrote a long post today about bandwidth fairness and congestion control. It was inspired by this draft article by Bob Briscoe, which spends a lot of time discussing the game theory behind bandwidth usage. ...

    Trackback by root labs rdist — March 24, 2008 @ 6:49 pm

  • Fine Kettle of Links
    Some interesting reading for you:. George Ou tells the story of the unfairness of TCP and offers some suggestions. Adam Thierer takes on Jonathon Zittrain’s paen to programmability The Future of the Internet: And How to Stop It. ...

    Trackback by The Great American Blog — March 24, 2008 @ 7:55 pm

  • Fixing the unfairness of the TCP congestion control algorithm.
    While Jacobson’s algorithm was suitable for the 1980s, cracks began to appear a decade later. By 1999, the first P2P (peer-to-peer) application called Swarmcast began to blatantly exploit Jacobson’s TCP congestion control mechanism. ...

    Trackback by Adventures in Narcissism — March 24, 2008 @ 9:06 pm

  • Network Performance Links: Muni Wi-Fi and the effects of ...
    I'll be frank - I couldn't think of a good idea for an article today. There are a couple of interesting links in the news, of course, which I could share with you. And we will get to those in a second, but… ...

    Trackback by Network Performance Blog, Network Performance Management News, Tutorials, Resources — March 24, 2008 @ 9:20 pm

  • ASTALAVISTA - hacking & security community | ASTALAVISTA - the hacking and security community
    How to Secure VSFTP with SSL and Two-factor Authentication 25.03.2008 New Mac OS X software: Norton AntiVirus Dual Protection for Mac 25.03.2008 Cybersquatting Security Vendors for Fraudulent Purposes 25.03.2008 Fixing the unfairness of TCP congestion control 25.03.2008 New MBR Rootkit Variant: MBR Rootkit vs. Anti-rootkit 25.03.2008 No Tech Hacking. 24.03.2008 Why Old Technologies Are Still Kicking 24.03.2008 How to Build the Ultimate Gaming PC

    Trackback by Anonymous — March 26, 2008 @ 3:01 am

  • Slashdot: News for nerds, stuff that matters
    duncan99 writes "George Ou, Technical Director of ZDNet, has an analysis today of an engineering proposal to address congestion issues on the internet. It's an interesting read, with sections such as "The politicization of an engineering problem" and "Dismantling the dogma of flow rate fairness". Short and long term answers are suggested, along with some

    Trackback by Anonymous — March 27, 2008 @ 3:03 am

  • Information Security Blogs
    After my post about enforcing fair bandwidth allocation in over-subscribed networks like consumer broadband, George Ou and I had an email exchange. If you recall, George was advocating a swapout of all client TCP stacks or a static penalty for using an old stack.  The root issue he was trying to solve was making sure bandwidth allocation was fair between users when they shared a congested gateway.  His concern was that opening multiple TCP connections allowed one

    Trackback by Anonymous — March 28, 2008 @ 3:04 am

  • root labs rdist
    George Ou wrote a long post today about bandwidth fairness and congestion control. It was inspired by this draft article by Bob Briscoe, which spends a lot of time discussing the game theory behind bandwidth usage. While George

    Trackback by Anonymous — March 28, 2008 @ 3:04 am

  • Comcast and BitTorrent actually working together
    whose traffic might need a little, um, digital sludge. It’s good that Comcast and BitTorrent are talking to each other, but is slowing traffic for heavy users the answer? George Ou at ZDNet earlier this week suggested that the root of the problem lies in the design of TCP/IP — the network protocol used on the Internet. A change in TCP instituted to solve a bandwidth crunch then (before the Net was opened to commercial traffic) is at the heart of the current problem:

    Trackback by Anonymous — March 28, 2008 @ 3:04 am

  • Updated: Comcast and BitTorrent actually working together
    Last week, in this post about Comcast’s reaction to FCC plans to possibly punish the cable company for how it resets BitTorrent traffic, I noted that the chief technical officer for Comcast is an adviser to BitTorrent. ...

    Trackback by tech news blog — March 28, 2008 @ 3:12 am

advertisement

Recent Entries

Top Rated

    Recommended

    advertisement

    Archives

    ZDNet Blogs

    advertisement
    Click Here