Re: [aqm] think once to mark, think twice to drop: draft-ietf-aqm-ecn-benefits-02

Michael Welzl <> Fri, 27 March 2015 04:03 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 267271A1B46 for <>; Thu, 26 Mar 2015 21:03:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 6RatDyJkAkd6 for <>; Thu, 26 Mar 2015 21:03:41 -0700 (PDT)
Received: from ( [IPv6:2001:700:100:10::15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8241D1A1F1D for <>; Thu, 26 Mar 2015 21:03:41 -0700 (PDT)
Received: from ([]) by with esmtp (Exim 4.80.1) (envelope-from <>) id 1YbLUh-0001TG-KB; Fri, 27 Mar 2015 05:03:39 +0100
Received: from [] (helo=[]) by with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) user michawe (Exim 4.80) (envelope-from <>) id 1YbLUg-0006v1-SP; Fri, 27 Mar 2015 05:03:39 +0100
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Michael Welzl <>
In-Reply-To: <>
Date: Thu, 26 Mar 2015 23:03:37 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <>
X-Mailer: Apple Mail (2.2070.6)
X-UiO-Ratelimit-Test: rcpts/h 2 msgs/h 1 sum rcpts/h 4 sum msgs/h 2 total rcpts 27034 max rcpts/h 44 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: 23163C42F0680DD7A80179FF377036BD68963601
X-UiO-SPAM-Test: remote_host: spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 72 max/h 12 blacklist 0 greylist 0 ratelimit 0
Archived-At: <>
Subject: Re: [aqm] think once to mark, think twice to drop: draft-ietf-aqm-ecn-benefits-02
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 27 Mar 2015 04:03:44 -0000

> On 26. mar. 2015, at 15.36, David Collier-Brown <> wrote:
> On 03/25/2015 03:03 PM, Michael Welzl wrote:
>> Hi,
>> Below:
>>> On 25. mar. 2015, at 13.12, De Schepper, Koen (Koen) <>
>>>  wrote:
>>> Hi all,
>>> Related to DCTCP and different (more) marking ECN than dropping (let's call it ECN++ in this mail), the talk I gave in iccrg (Data Center to the Home) shows that it is possible to have fairness between ECN++ flows (DCTCP, Relentless TCP, Scalable TCP, ...) and drop based Reno/Cubic flows.
>>> The ECN++ flows typically respond to marking proportional to 1/p (with p the marking or dropping probability), while the Reno flavors respond proportional to 1/p^0.5 (one over square root of p).
>>> This means that the only difference between marking and dropping is that an AQM has to think twice before it drops, and that is what we want, right? We mark fast by comparing our congestion indicator (derived from the queue size or packet sojourn time, or PI controller) with a random generated value. For a drop decision we just can compare the congestion indicator with the maximum of 2 random values (= thinking twice and is resulting in a drop probability which is the square of the marking probability). This will compensate the square root in Reno-like TCPs. If it is a problem to generate 2 random values per packet, you can keep your previous random value, as it is (pseudo) independent of the newly generated.
>>> As this is a very simple relation between marking and dropping, AND it gives extra advantages, it is worth considering. The EXTRA advantages are:
>>> - low latency AND high throughput (compared to low latency OR high throughput)
>>> - less variability in flow fairness between competing flows (because of the high marking probability, the flows get more signals and will stray of less). If you get one drop every 10 seconds, and you had bad luck that your flow got 2 drops in a row, you have reduced your throughput by 4, compared to the other flow who should have had the second mark, running still at full throughput.
>>> - The marking will scale to higher throughputs, every flow will get the same signal rate independent from the throughput (preferably every millisecond). It is a solution which scales to the future.
>>> If we want to promote the use of ECN, let's make sure we get all the benefits, and have a solution that doesn't need to be revised after x years anyway. This is an opportunity to do it better this time, with lots of benefits which might convince people to finally use ECN.
>>> I propose to recommend the "think twice" concept, or at least describe its extra benefits in the draft.
>> This draft is not specifying a new behavior for ECN, which is what you propose. Thus I think this is out of scope of this document.
> I might suggest this is an implementation of a relationship between ECN and drop, based on an observation of how fairness might be achieved.  
> The implementation doesn't belong, unless you have an appendix of interesting implementation concerns.

Yes -

>  The observation that 
> 	• there is a relationship between ECN and drop
> 	• there are fairness problems to consider, and
> 	• there are values of the relationship that minimize or exclude the fairness problem
> is new, a genuinely good thing, and arguably deserves mention as a benefit.

Every item in your list is so vague that I can't see the value of adding it. I think these things have to be coupled with a specific algorithm (such as the one described above) to make sense - but I think we agree that this document isn't the place for a new algorithm.