On TV.com: Why Is Everyone in TV High School SO OLD
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, Net Neutrality, Networking, News, Technology policy

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: a Guest | | Terms of Use
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  claymann39@... | 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?

SponsoredWhite Papers, Webcasts, and Downloads

Click Here
advertisement

Recent Entries

Top Rated

    Archives

    ZDNet Blogs

    White Papers, Webcasts, and Downloads

    Meet Doc

    • Here to help you with your Document Management Needs
    • Doc is an enigma. Born to a Russian ballerina and a German electrical engineer, he grew up in various locations in the United States. He’s seen the insides of more brands, versions, and generations of printer and printer-related hardware than almost anyone.
    • To learn more about this mysterious figure check out his blog on ZDNet and his Workspace on TechRepublic. You’ll be glad you did.
    • Produced by
      ZDNet and