<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: The Internet is Broken, and How to Fix It</title>
	<atom:link href="http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/feed/" rel="self" type="application/rss+xml" />
	<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/</link>
	<description>Jim Gettys&#039; ramblings on random topics, and occasional rants.</description>
	<lastBuildDate>Mon, 11 Mar 2013 14:50:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-5296</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 20:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-5296</guid>
		<description><![CDATA[There are a bunch of issues related to TOE/TSO.

Anything that causes a single process to send a large number of line rate packets back to back onto the wire is just making burstiness in the Internet worse (and there are already phenomena that tend to coalesce packets into bursts as it is).  So such bursts cross the Internet, where they enter their customer&#039;s single, bloated, stupid broadband device.

Part of why we like fq_codel so much is that its natural behavior is to break up such bursts at any bottleneck, reducing the burst problem.

Needless to say, this is not good for latency, and may cause collateral damage of all sorts.

Note that the people are not watching latency (particularly from the customer&#039;s end).  That is as important/more important than bandwidth per CPU cycle: web sites are &quot;stickier&quot; the faster they are *to the user of that web site*.  Getting packets out of your data center with the least CPU cycles may not achieve that goal, but sometimes the opposite.

We&#039;ve been around the mulberry bush many times on offloading TCP itself since the 1980&#039;s.  But this means you get two maintenance headaches: both your OS, and the firmware in the NIC.  Not a good idea.

It is also a classic example of &quot;if a little is good, a lot must be better&quot;.  Any of these techniques may be helpful at scale 2 or 4 (they provide most of their benefit).  But then people seem to think &quot;it must be even better to turn the knob to 11&quot;...  It seldom is...  But then the knob gets turned anyway.]]></description>
		<content:encoded><![CDATA[<p>There are a bunch of issues related to TOE/TSO.</p>
<p>Anything that causes a single process to send a large number of line rate packets back to back onto the wire is just making burstiness in the Internet worse (and there are already phenomena that tend to coalesce packets into bursts as it is).  So such bursts cross the Internet, where they enter their customer&#8217;s single, bloated, stupid broadband device.</p>
<p>Part of why we like fq_codel so much is that its natural behavior is to break up such bursts at any bottleneck, reducing the burst problem.</p>
<p>Needless to say, this is not good for latency, and may cause collateral damage of all sorts.</p>
<p>Note that the people are not watching latency (particularly from the customer&#8217;s end).  That is as important/more important than bandwidth per CPU cycle: web sites are &#8220;stickier&#8221; the faster they are *to the user of that web site*.  Getting packets out of your data center with the least CPU cycles may not achieve that goal, but sometimes the opposite.</p>
<p>We&#8217;ve been around the mulberry bush many times on offloading TCP itself since the 1980&#8242;s.  But this means you get two maintenance headaches: both your OS, and the firmware in the NIC.  Not a good idea.</p>
<p>It is also a classic example of &#8220;if a little is good, a lot must be better&#8221;.  Any of these techniques may be helpful at scale 2 or 4 (they provide most of their benefit).  But then people seem to think &#8220;it must be even better to turn the knob to 11&#8243;&#8230;  It seldom is&#8230;  But then the knob gets turned anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Revenge of the TOE</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-5295</link>
		<dc:creator><![CDATA[Revenge of the TOE]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 19:27:41 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-5295</guid>
		<description><![CDATA[[...] Ultimately, we resolved the issue by adding a policy map in the firewall for the web server with the sysadmin disabling TSO in the linux kernel, but I&#8217;m not even sure these were good choices. Especially because TOE/TSO is supposed to be a performance enhancing feature. Just seemed to be the most expeditious choice when a production service was intermittently unavailable with lots of unhappy users. Guess we were just collateral damage in another bufferbloat drive-by.  Maybe Jim Gettys is right and the internet really is broken. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Ultimately, we resolved the issue by adding a policy map in the firewall for the web server with the sysadmin disabling TSO in the linux kernel, but I&#8217;m not even sure these were good choices. Especially because TOE/TSO is supposed to be a performance enhancing feature. Just seemed to be the most expeditious choice when a production service was intermittently unavailable with lots of unhappy users. Guess we were just collateral damage in another bufferbloat drive-by.  Maybe Jim Gettys is right and the internet really is broken. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jake</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4799</link>
		<dc:creator><![CDATA[Jake]]></dc:creator>
		<pubDate>Fri, 29 Jun 2012 01:56:16 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4799</guid>
		<description><![CDATA[That was true for Vegas, but is mostly false for FAST. Just because it&#039;s delay-based doesn&#039;t mean that loss-based will inherently be faster.

The reason is because cwnd can grow more rapidly under FAST, and still avoid wrecking itself by exceeding line capacity, the way loss-based algorithms would if they grew too fast. So when a AIMD algorithm like Reno or BIC hits loss and cuts its cwnd in half, FAST can take over that newly available bandwidth faster than the loss-based one does. Vegas lost to Reno mostly because it didn&#039;t grow to where it should be fast enough, not because the idea is inherently broken.

It&#039;s true that FAST will also back off gradually as BIC grows, but BIC will still overreach and get its cwnd cut in half again before long, and it will usually happen sooner the 2nd time around when it&#039;s sharing a bottleneck with a FAST flow (there is some oscillation, but see http://www.omikk.bme.hu/collections/phd/Villamosmernoki_es_Informatikai_Kar/2010/Sonkoly_Balazs/tezis_eng.pdf for an analysis of the fairness characteristics).]]></description>
		<content:encoded><![CDATA[<p>That was true for Vegas, but is mostly false for FAST. Just because it&#8217;s delay-based doesn&#8217;t mean that loss-based will inherently be faster.</p>
<p>The reason is because cwnd can grow more rapidly under FAST, and still avoid wrecking itself by exceeding line capacity, the way loss-based algorithms would if they grew too fast. So when a AIMD algorithm like Reno or BIC hits loss and cuts its cwnd in half, FAST can take over that newly available bandwidth faster than the loss-based one does. Vegas lost to Reno mostly because it didn&#8217;t grow to where it should be fast enough, not because the idea is inherently broken.</p>
<p>It&#8217;s true that FAST will also back off gradually as BIC grows, but BIC will still overreach and get its cwnd cut in half again before long, and it will usually happen sooner the 2nd time around when it&#8217;s sharing a bottleneck with a FAST flow (there is some oscillation, but see <a href="http://www.omikk.bme.hu/collections/phd/Villamosmernoki_es_Informatikai_Kar/2010/Sonkoly_Balazs/tezis_eng.pdf" rel="nofollow">http://www.omikk.bme.hu/collections/phd/Villamosmernoki_es_Informatikai_Kar/2010/Sonkoly_Balazs/tezis_eng.pdf</a> for an analysis of the fairness characteristics).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Farnsworth</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4788</link>
		<dc:creator><![CDATA[Simon Farnsworth]]></dc:creator>
		<pubDate>Thu, 28 Jun 2012 15:20:47 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4788</guid>
		<description><![CDATA[The key difference comes from considering game theory (and the Prisoner&#039;s Dilemma); if I convince my ISP to do good AQM and Diffserv just for me (no other users), the world is a better place for me, and no worse for you. As the presence of good AQM and Diffserv spreads, more of us benefit, but people who haven&#039;t switched can&#039;t make things worse for those networks that have. There&#039;s no PD here, as &quot;cooperating&quot; (by deploying good AQM or good Diffserv or both) is always better than defecting (staying in the bufferbloat status quo), regardless of what other people do.

If I switch all my servers to delay based congestion control, the world is a worse place for me, &lt;b&gt;until&lt;/b&gt; everyone else follows my lead. This is a Prisoner&#039;s Dilemma; if we all co-operated by deploying delay based congestion control everywhere, it would be a net improvement. However, if you defect (by sticking to current congestion control methods), the best option for me is to defect too; if I cooperate and deploy delay based CC when you haven&#039;t, your services are going to have an advantage over mine at every bottleneck link.

Further, this gives me an incentive to undo my deployment of delay based congestion control - I will get an advantage over you until you do the same. This makes delay based congestion control everywhere inherently unstable - you lose if someone else does packet loss based congestion control.]]></description>
		<content:encoded><![CDATA[<p>The key difference comes from considering game theory (and the Prisoner&#8217;s Dilemma); if I convince my ISP to do good AQM and Diffserv just for me (no other users), the world is a better place for me, and no worse for you. As the presence of good AQM and Diffserv spreads, more of us benefit, but people who haven&#8217;t switched can&#8217;t make things worse for those networks that have. There&#8217;s no PD here, as &#8220;cooperating&#8221; (by deploying good AQM or good Diffserv or both) is always better than defecting (staying in the bufferbloat status quo), regardless of what other people do.</p>
<p>If I switch all my servers to delay based congestion control, the world is a worse place for me, <b>until</b> everyone else follows my lead. This is a Prisoner&#8217;s Dilemma; if we all co-operated by deploying delay based congestion control everywhere, it would be a net improvement. However, if you defect (by sticking to current congestion control methods), the best option for me is to defect too; if I cooperate and deploy delay based CC when you haven&#8217;t, your services are going to have an advantage over mine at every bottleneck link.</p>
<p>Further, this gives me an incentive to undo my deployment of delay based congestion control &#8211; I will get an advantage over you until you do the same. This makes delay based congestion control everywhere inherently unstable &#8211; you lose if someone else does packet loss based congestion control.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jake</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4772</link>
		<dc:creator><![CDATA[Jake]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 18:35:26 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4772</guid>
		<description><![CDATA[OK, but by the same token, you don&#039;t have AQM and sane diffserv in the real world either. 

Your proposed solution involves &quot;make and deploy a new protocol to communicate intent from the home router to the broadband head end&quot;. Perhaps I&#039;m misunderstanding, but I&#039;m confused as to how that&#039;s an easier problem to solve than &quot;get most servers to use delay-based congestion control&quot;.

And of course it doesn&#039;t ruin your whole day to download a 5-packet text article, or most of the ajax junk you get when you leave random pages open. We&#039;re mostly talking about being able to make phone calls while your computer decides to get software updates, and your kids are watching a movie. Right? 

If that&#039;s typically more or less accurate, then although it&#039;s true that one big download from a server that hasn&#039;t upgraded can be a problem, the more servers that are using delay-based congestion control, the fewer problems you should have. So I&#039;m just saying you might want to include it in the list of solutions worth considering.]]></description>
		<content:encoded><![CDATA[<p>OK, but by the same token, you don&#8217;t have AQM and sane diffserv in the real world either. </p>
<p>Your proposed solution involves &#8220;make and deploy a new protocol to communicate intent from the home router to the broadband head end&#8221;. Perhaps I&#8217;m misunderstanding, but I&#8217;m confused as to how that&#8217;s an easier problem to solve than &#8220;get most servers to use delay-based congestion control&#8221;.</p>
<p>And of course it doesn&#8217;t ruin your whole day to download a 5-packet text article, or most of the ajax junk you get when you leave random pages open. We&#8217;re mostly talking about being able to make phone calls while your computer decides to get software updates, and your kids are watching a movie. Right? </p>
<p>If that&#8217;s typically more or less accurate, then although it&#8217;s true that one big download from a server that hasn&#8217;t upgraded can be a problem, the more servers that are using delay-based congestion control, the fewer problems you should have. So I&#8217;m just saying you might want to include it in the list of solutions worth considering.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4765</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 14:07:01 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4765</guid>
		<description><![CDATA[&quot;If you have a way to have your downloads coming only from servers that use delay-based congestion control,&quot;
but you don&#039;t in the real world. 

While delay based congestion control may be useful, I don&#039;t understand how to get everyone using them, even if they work fine (which they may).  All it takes is one TCP flow to a server that that does not use them to ruin your whole day.]]></description>
		<content:encoded><![CDATA[<p>&#8220;If you have a way to have your downloads coming only from servers that use delay-based congestion control,&#8221;<br />
but you don&#8217;t in the real world. </p>
<p>While delay based congestion control may be useful, I don&#8217;t understand how to get everyone using them, even if they work fine (which they may).  All it takes is one TCP flow to a server that that does not use them to ruin your whole day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4764</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 14:03:51 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4764</guid>
		<description><![CDATA[I read it a while back, and need to read it again.  But ECN is a big topic (particularly when it comes to the global network, and this piece primarily looks at the neglected edge of the network), and I decided not to try to make an already too long piece yet longer.  I also needed to get this piece out.]]></description>
		<content:encoded><![CDATA[<p>I read it a while back, and need to read it again.  But ECN is a big topic (particularly when it comes to the global network, and this piece primarily looks at the neglected edge of the network), and I decided not to try to make an already too long piece yet longer.  I also needed to get this piece out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4761</link>
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 08:16:17 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4761</guid>
		<description><![CDATA[Have you read Bob Briscoe&#039;s re-ecn stuff? That takes the &#039;system integration&#039; perspective - trying to get the system model right, rather than adding mechanism piecemeal. See http://tools.ietf.org/id/draft-briscoe-tsvwg-re-ecn-tcp-motivation-02.txt]]></description>
		<content:encoded><![CDATA[<p>Have you read Bob Briscoe&#8217;s re-ecn stuff? That takes the &#8216;system integration&#8217; perspective &#8211; trying to get the system model right, rather than adding mechanism piecemeal. See <a href="http://tools.ietf.org/id/draft-briscoe-tsvwg-re-ecn-tcp-motivation-02.txt" rel="nofollow">http://tools.ietf.org/id/draft-briscoe-tsvwg-re-ecn-tcp-motivation-02.txt</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jake</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4760</link>
		<dc:creator><![CDATA[Jake]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 07:39:07 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4760</guid>
		<description><![CDATA[Take a look at delay-based congestion control. There were some early experiments that showed that Vegas is not competitive with other schemes without AQM, but FAST is.
http://netlab.caltech.edu/publications/FAST-ToN-final-060209-2007.pdf
http://netlab.caltech.edu/FAST/

Full disclosure: I work at Fastsoft, so I&#039;m biased. (And I don&#039;t mean to claim that our products will solve every transport-based performance problem. I&#039;m still working on that.) 

But I encourage you to read the papers and follow the math. If you have a way to have your downloads coming only from servers that use delay-based congestion control, that gives you another solution to the realtime performance problems caused by large buffers. (As far as I can tell, that&#039;s not an idea in conflict with CoDel, btw.)]]></description>
		<content:encoded><![CDATA[<p>Take a look at delay-based congestion control. There were some early experiments that showed that Vegas is not competitive with other schemes without AQM, but FAST is.<br />
<a href="http://netlab.caltech.edu/publications/FAST-ToN-final-060209-2007.pdf" rel="nofollow">http://netlab.caltech.edu/publications/FAST-ToN-final-060209-2007.pdf</a><br />
<a href="http://netlab.caltech.edu/FAST/" rel="nofollow">http://netlab.caltech.edu/FAST/</a></p>
<p>Full disclosure: I work at Fastsoft, so I&#8217;m biased. (And I don&#8217;t mean to claim that our products will solve every transport-based performance problem. I&#8217;m still working on that.) </p>
<p>But I encourage you to read the papers and follow the math. If you have a way to have your downloads coming only from servers that use delay-based congestion control, that gives you another solution to the realtime performance problems caused by large buffers. (As far as I can tell, that&#8217;s not an idea in conflict with CoDel, btw.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wes Felter (@wmf)</title>
		<link>http://gettys.wordpress.com/2012/06/26/the-internet-is-screwed-up-and-how-to-fix-it/#comment-4758</link>
		<dc:creator><![CDATA[Wes Felter (@wmf)]]></dc:creator>
		<pubDate>Wed, 27 Jun 2012 02:14:35 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=811#comment-4758</guid>
		<description><![CDATA[I like the idea of using a restricted subset of OpenFlow to allow customers to classify downstream traffic. This should require much less state than full conntracking.]]></description>
		<content:encoded><![CDATA[<p>I like the idea of using a restricted subset of OpenFlow to allow customers to classify downstream traffic. This should require much less state than full conntracking.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
