<?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: RED in a Different Light</title>
	<atom:link href="http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/feed/" rel="self" type="application/rss+xml" />
	<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/</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: TCP Sucks &#124; Bram Cohen</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-5238</link>
		<dc:creator><![CDATA[TCP Sucks &#124; Bram Cohen]]></dc:creator>
		<pubDate>Sun, 09 Sep 2012 18:26:13 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-5238</guid>
		<description><![CDATA[[...] the intelligentsia have a plan, called RED to how to fix the internet, because uTP (using the LEDBAT congestion control [...]]]></description>
		<content:encoded><![CDATA[<p>[...] the intelligentsia have a plan, called RED to how to fix the internet, because uTP (using the LEDBAT congestion control [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CeroWrt &#8211; Debloating &#171; Les enfants terribles</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-3223</link>
		<dc:creator><![CDATA[CeroWrt &#8211; Debloating &#171; Les enfants terribles]]></dc:creator>
		<pubDate>Thu, 25 Aug 2011 19:01:31 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-3223</guid>
		<description><![CDATA[[...] such as RED) including home routers: unfortunately, existing algorithms such as RED are unlikely to work correctly in today&#8217;s home network [...]]]></description>
		<content:encoded><![CDATA[<p>[...] such as RED) including home routers: unfortunately, existing algorithms such as RED are unlikely to work correctly in today&#8217;s home network [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2685</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Thu, 24 Mar 2011 09:49:38 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2685</guid>
		<description><![CDATA[There shouldn&#039;t be congested core routers, but there are (at least by how I view it: multiple hops into a network run by a significant size ISP).  And it is certainly occurring at the interconnects between networks.  And given RED&#039;s problems, this is hardly surprising.

This is at least partially the result of the reality of backhoes, trucks, and ships, and the different timescales on which these operate; and competence of the network operators is also an issue.  Crystal balls are very hard to find, and accidents and acts of men and gods do happen.

So &quot;SHOULD NOT happen&quot; I can agree with; but it &quot;DOES happen&quot; is the reality of the Internet.]]></description>
		<content:encoded><![CDATA[<p>There shouldn&#8217;t be congested core routers, but there are (at least by how I view it: multiple hops into a network run by a significant size ISP).  And it is certainly occurring at the interconnects between networks.  And given RED&#8217;s problems, this is hardly surprising.</p>
<p>This is at least partially the result of the reality of backhoes, trucks, and ships, and the different timescales on which these operate; and competence of the network operators is also an issue.  Crystal balls are very hard to find, and accidents and acts of men and gods do happen.</p>
<p>So &#8220;SHOULD NOT happen&#8221; I can agree with; but it &#8220;DOES happen&#8221; is the reality of the Internet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Yuriev</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2680</link>
		<dc:creator><![CDATA[Alex Yuriev]]></dc:creator>
		<pubDate>Mon, 21 Mar 2011 14:02:14 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2680</guid>
		<description><![CDATA[No, congestion SHOULD NOT happen inside your own network unless you are experiencing a catastrophic failure of your equipment.

This means that the congestion that you cannot resolve by adding capacity will only happened at interconnects - which is something we are seeing right now and were seeing since the internet got more than one distinct network. Of course that made no sense to the academics so their solution was ... Internet2 a network with no traffic and therefore no congestion.

If you are not accepting this as a premise you should stay away from the network design. 

&quot;Also, Alex, please understand that any operating system more recent than Windows XP can quite easily saturate and congest links of &gt; 1Gbps (as they will do TCP window scaling). &quot;

I do not need to &quot;understand it&quot; - some of my customers saturate 10gig ports daily while pushing traffic to 1Gbit/sec or 100M/sec ports. Somehow none of them are having issues with the other connections dropping. 

There should be no &quot;congested core routers&quot;. That is the solution to your problem. Even Cogent knows that. Yes. Cogent.]]></description>
		<content:encoded><![CDATA[<p>No, congestion SHOULD NOT happen inside your own network unless you are experiencing a catastrophic failure of your equipment.</p>
<p>This means that the congestion that you cannot resolve by adding capacity will only happened at interconnects &#8211; which is something we are seeing right now and were seeing since the internet got more than one distinct network. Of course that made no sense to the academics so their solution was &#8230; Internet2 a network with no traffic and therefore no congestion.</p>
<p>If you are not accepting this as a premise you should stay away from the network design. </p>
<p>&#8220;Also, Alex, please understand that any operating system more recent than Windows XP can quite easily saturate and congest links of &gt; 1Gbps (as they will do TCP window scaling). &#8221;</p>
<p>I do not need to &#8220;understand it&#8221; &#8211; some of my customers saturate 10gig ports daily while pushing traffic to 1Gbit/sec or 100M/sec ports. Somehow none of them are having issues with the other connections dropping. </p>
<p>There should be no &#8220;congested core routers&#8221;. That is the solution to your problem. Even Cogent knows that. Yes. Cogent.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2676</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Mon, 21 Mar 2011 09:25:58 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2676</guid>
		<description><![CDATA[Exactly.

Even inside of a much more static network, you have a mesh of connections, and given the variability of traffic (and transient failures) and ISP cannot always provision successfully in advance (nor is it generally economic to do so).  While the goal of a well run network may be to run uncongested as much as possible, without queue management, you will have poor latency any time your path crosses a congested router, not just at the connections between autonomous systems.

Also, Alex, please understand that any operating system more recent than Windows XP can quite easily saturate and congest links of &gt; 1Gbps (as they will do TCP window scaling).  Windows, however, has the additional default of shaping its traffic to remain below 100Mbps by default (on a *single* TCP connection).

We are moving into a world where congestion is &quot;normal&quot; for many operations at some point in the network path (primarily, but not necessarily at the edge of the network). In fact, we&#039;ve been living in this congested world from the beginning; it is just with unbloated buffers, transport protocols can react as they were intended and the latency disaster we are now experiencing was primarily confined to congested core routers failing to run AQM.  Now we see this latency problem everywhere, including on the hosts (as they too have bloated buffers, which they did not a decade ago).]]></description>
		<content:encoded><![CDATA[<p>Exactly.</p>
<p>Even inside of a much more static network, you have a mesh of connections, and given the variability of traffic (and transient failures) and ISP cannot always provision successfully in advance (nor is it generally economic to do so).  While the goal of a well run network may be to run uncongested as much as possible, without queue management, you will have poor latency any time your path crosses a congested router, not just at the connections between autonomous systems.</p>
<p>Also, Alex, please understand that any operating system more recent than Windows XP can quite easily saturate and congest links of &gt; 1Gbps (as they will do TCP window scaling).  Windows, however, has the additional default of shaping its traffic to remain below 100Mbps by default (on a *single* TCP connection).</p>
<p>We are moving into a world where congestion is &#8220;normal&#8221; for many operations at some point in the network path (primarily, but not necessarily at the edge of the network). In fact, we&#8217;ve been living in this congested world from the beginning; it is just with unbloated buffers, transport protocols can react as they were intended and the latency disaster we are now experiencing was primarily confined to congested core routers failing to run AQM.  Now we see this latency problem everywhere, including on the hosts (as they too have bloated buffers, which they did not a decade ago).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luca Dionisi</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2675</link>
		<dc:creator><![CDATA[Luca Dionisi]]></dc:creator>
		<pubDate>Mon, 21 Mar 2011 08:40:52 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2675</guid>
		<description><![CDATA[I am talking about a mesh network where a different protocol than BGP is used to distribute paths, and where multipath routing is enabled all over the network, not just inside a autonomous system. So congestion can happen in any point.]]></description>
		<content:encoded><![CDATA[<p>I am talking about a mesh network where a different protocol than BGP is used to distribute paths, and where multipath routing is enabled all over the network, not just inside a autonomous system. So congestion can happen in any point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Yuriev</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2671</link>
		<dc:creator><![CDATA[Alex Yuriev]]></dc:creator>
		<pubDate>Sun, 20 Mar 2011 15:08:16 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2671</guid>
		<description><![CDATA[if you have a congestion inside your own network, you need to solve that as the problem well before addressing the others.

The points of congestion are interconnects between the different networks where as a network operator I can control only one side and I&#039;m speaking BGP to my peer.]]></description>
		<content:encoded><![CDATA[<p>if you have a congestion inside your own network, you need to solve that as the problem well before addressing the others.</p>
<p>The points of congestion are interconnects between the different networks where as a network operator I can control only one side and I&#8217;m speaking BGP to my peer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivan Barrera</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2606</link>
		<dc:creator><![CDATA[Ivan Barrera]]></dc:creator>
		<pubDate>Thu, 24 Feb 2011 17:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2606</guid>
		<description><![CDATA[Mohit,

When I did research in AQM, I noticed there were many algorithms out there. Mainly because anything you do will have an impact. The question is how big of an impact. RED was conceived as an initial almost empirical approach, where the piece wise linear function had absolutely no theoretical support except the one of being simple.

Based on this idea the RED worked, many researchers started to make modifications to improve its performance. You see however that something like Kelly/Gibbens VQ provides a first insight to marking instead of dropping, and it &quot;works&quot; with a simpler approach. Again the issue its not that it works, but how good is it and what computer processing requires. RED is simple, but it has nonlinearities that are hard to account for. ARED is just a modification to actively modify some of RED&#039;s parameters.

On the other hand, you see for example PI or REM, with a little more theoretical background, but making the algorithms a bit more complex.  You see that linear solutions such as REM are more stable, yet a bit slow. In fact, if you carefully read REM and AVQ you see both faced the same problems and while REM added the backlog into their algorithm to account for instabilities, AVQ didn&#039;t reason why S-AVQ was later proposed. 

I initially worked developing estimators of network parameters and modeling TCP. But noticed that accurate modeling requires too many parameters and estimators of such parameters are processor hungry. 

Thus, my issue turned into using nonlinear systems that would act faster under extreme changing conditions, but reacted smoothly when the change in conditions weren&#039;t significant. Therefore avoiding the speed/stability trade-offs of linear systems. 

It certainly depends on what your goal is and what are you trading to achieve those goals. I broke the problem of AQM into three main parts: detection, mapping and marking. After RED proposed a Bernoulli like approach for marking, everyone gave marking for granted. And most people concentrate on the mapping scheme. For RED, the detection is performed using the EWMA filter, the mapping uses the piece-wise linear function and the marking uses the geometric/bernoulli like mechanism. 

Using statistical theory, I found that a non-standard likelihood detector could dramatically improve the detection mechanism, and a Sigma Delta modulator could also improve the marking scheme in such way that the mapping mechanism wasn&#039;t required to be processing intensive. 

You can check a journal paper recently published &quot;statistical approaches to congestion control in computer networks&quot;, where I describe such blocks. The detector itself was proposed in another paper. But the main trade I gave was processing power. The algorithm is still complex compared to that one of the original RED. 

Note that Cisco proposed an alternative WRED based on base-2 values and coefficients to make it easier to calculate and faster on switches. If you think about it, having a 48 1Gbps ports, and assuming worst case scenarios of 125 bytes per packet to make math simple, this means a rough 48 million of AQM operations per second. Having processor intensive AQMs translate those 48Mops into heavy work for the switches/routers. This, without taking into account using ECN and requiring to reassemble packets and re-calculating checksums (depending if the ECN is in the TCP or IP header of course). 

ARED doesn&#039;t seem to provide the performance improvement worth implementing it, which causes: 1. Impact on packet processing (and risk of bugs) 2. Scalability problems for large x-connects 3. Companies rather sell expensive cards to telcos, instead of providing them with improved software techniques. 

That&#039;s just a brief explanation of my perspective, but of course I&#039;m willing to elaborate a bit further on it.]]></description>
		<content:encoded><![CDATA[<p>Mohit,</p>
<p>When I did research in AQM, I noticed there were many algorithms out there. Mainly because anything you do will have an impact. The question is how big of an impact. RED was conceived as an initial almost empirical approach, where the piece wise linear function had absolutely no theoretical support except the one of being simple.</p>
<p>Based on this idea the RED worked, many researchers started to make modifications to improve its performance. You see however that something like Kelly/Gibbens VQ provides a first insight to marking instead of dropping, and it &#8220;works&#8221; with a simpler approach. Again the issue its not that it works, but how good is it and what computer processing requires. RED is simple, but it has nonlinearities that are hard to account for. ARED is just a modification to actively modify some of RED&#8217;s parameters.</p>
<p>On the other hand, you see for example PI or REM, with a little more theoretical background, but making the algorithms a bit more complex.  You see that linear solutions such as REM are more stable, yet a bit slow. In fact, if you carefully read REM and AVQ you see both faced the same problems and while REM added the backlog into their algorithm to account for instabilities, AVQ didn&#8217;t reason why S-AVQ was later proposed. </p>
<p>I initially worked developing estimators of network parameters and modeling TCP. But noticed that accurate modeling requires too many parameters and estimators of such parameters are processor hungry. </p>
<p>Thus, my issue turned into using nonlinear systems that would act faster under extreme changing conditions, but reacted smoothly when the change in conditions weren&#8217;t significant. Therefore avoiding the speed/stability trade-offs of linear systems. </p>
<p>It certainly depends on what your goal is and what are you trading to achieve those goals. I broke the problem of AQM into three main parts: detection, mapping and marking. After RED proposed a Bernoulli like approach for marking, everyone gave marking for granted. And most people concentrate on the mapping scheme. For RED, the detection is performed using the EWMA filter, the mapping uses the piece-wise linear function and the marking uses the geometric/bernoulli like mechanism. </p>
<p>Using statistical theory, I found that a non-standard likelihood detector could dramatically improve the detection mechanism, and a Sigma Delta modulator could also improve the marking scheme in such way that the mapping mechanism wasn&#8217;t required to be processing intensive. </p>
<p>You can check a journal paper recently published &#8220;statistical approaches to congestion control in computer networks&#8221;, where I describe such blocks. The detector itself was proposed in another paper. But the main trade I gave was processing power. The algorithm is still complex compared to that one of the original RED. </p>
<p>Note that Cisco proposed an alternative WRED based on base-2 values and coefficients to make it easier to calculate and faster on switches. If you think about it, having a 48 1Gbps ports, and assuming worst case scenarios of 125 bytes per packet to make math simple, this means a rough 48 million of AQM operations per second. Having processor intensive AQMs translate those 48Mops into heavy work for the switches/routers. This, without taking into account using ECN and requiring to reassemble packets and re-calculating checksums (depending if the ECN is in the TCP or IP header of course). </p>
<p>ARED doesn&#8217;t seem to provide the performance improvement worth implementing it, which causes: 1. Impact on packet processing (and risk of bugs) 2. Scalability problems for large x-connects 3. Companies rather sell expensive cards to telcos, instead of providing them with improved software techniques. </p>
<p>That&#8217;s just a brief explanation of my perspective, but of course I&#8217;m willing to elaborate a bit further on it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Täht</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2585</link>
		<dc:creator><![CDATA[Dave Täht]]></dc:creator>
		<pubDate>Mon, 21 Feb 2011 14:54:21 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2585</guid>
		<description><![CDATA[I will gladly slam more AQMs into my tree if you have working - or even semi-working - code.]]></description>
		<content:encoded><![CDATA[<p>I will gladly slam more AQMs into my tree if you have working &#8211; or even semi-working &#8211; code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gettys</title>
		<link>http://gettys.wordpress.com/2010/12/17/red-in-a-different-light/#comment-2584</link>
		<dc:creator><![CDATA[gettys]]></dc:creator>
		<pubDate>Mon, 21 Feb 2011 14:51:28 +0000</pubDate>
		<guid isPermaLink="false">http://gettys.wordpress.com/?p=391#comment-2584</guid>
		<description><![CDATA[I&#039;ve never worked on AQM.  Asking me is of limited benefit...

For ARED to be &quot;interesting&quot; it needs to be implemented and tried out.  I suggest you implement a Linux queue discipline.  As the driver debloating work already underway for Linux (&lt;a href=&quot;https://lists.bufferbloat.net/pipermail/bloat-devel/&quot; rel=&quot;nofollow&quot;&gt;see the bloat-devel mailing list&lt;/a&gt;show, at some point over the next few months it will be time to move on to how to deal with routing queues. Simulation is one thing: trial by fire quite an another (and I don&#039;t know if there has even been recent simulation of ARED; note Sally Floyd&#039;s reasonably famous statement to the effect that a simulator can be used to show anything you like).

Note I don&#039;t believe &quot;one size fits all&quot;  is a likely outcome (pleasant as that might be if it turns out to be possible). We have a number of quite dramatically different environments where bloat is occurring, and it doesn&#039;t follow in my mind that we&#039;ll necessarily end up with a single solution.  Beyond history having shown (and one of the the authors of RED 93 having said) that classic RED 93 isn&#039;t really adequate, I take no position.

I do note that algorithms that primarily depend on output goodput, in my intuition, are most likely to succeed for wireless.  The big challenge of wireless is the very large dynamic range and variability of goodput.

Please do make it a contender!  We&#039;re in a world of hurt.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve never worked on AQM.  Asking me is of limited benefit&#8230;</p>
<p>For ARED to be &#8220;interesting&#8221; it needs to be implemented and tried out.  I suggest you implement a Linux queue discipline.  As the driver debloating work already underway for Linux (<a href="https://lists.bufferbloat.net/pipermail/bloat-devel/" rel="nofollow">see the bloat-devel mailing list</a>show, at some point over the next few months it will be time to move on to how to deal with routing queues. Simulation is one thing: trial by fire quite an another (and I don&#8217;t know if there has even been recent simulation of ARED; note Sally Floyd&#8217;s reasonably famous statement to the effect that a simulator can be used to show anything you like).</p>
<p>Note I don&#8217;t believe &#8220;one size fits all&#8221;  is a likely outcome (pleasant as that might be if it turns out to be possible). We have a number of quite dramatically different environments where bloat is occurring, and it doesn&#8217;t follow in my mind that we&#8217;ll necessarily end up with a single solution.  Beyond history having shown (and one of the the authors of RED 93 having said) that classic RED 93 isn&#8217;t really adequate, I take no position.</p>
<p>I do note that algorithms that primarily depend on output goodput, in my intuition, are most likely to succeed for wireless.  The big challenge of wireless is the very large dynamic range and variability of goodput.</p>
<p>Please do make it a contender!  We&#8217;re in a world of hurt.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
