Re: [aqm] ECN: was Control Theoretic Analyses of PI(E)

Dave Taht <dave.taht@gmail.com> Mon, 26 January 2015 23:02 UTC

Return-Path: <dave.taht@gmail.com>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB0E21B2AF5 for <aqm@ietfa.amsl.com>; Mon, 26 Jan 2015 15:02:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.6
X-Spam-Level:
X-Spam-Status: No, score=-0.6 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 430NErgWDD20 for <aqm@ietfa.amsl.com>; Mon, 26 Jan 2015 15:02:45 -0800 (PST)
Received: from mail-oi0-x22e.google.com (mail-oi0-x22e.google.com [IPv6:2607:f8b0:4003:c06::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C99E81B2AED for <aqm@ietf.org>; Mon, 26 Jan 2015 15:02:44 -0800 (PST)
Received: by mail-oi0-f46.google.com with SMTP id a141so9751984oig.5 for <aqm@ietf.org>; Mon, 26 Jan 2015 15:02:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=eZf9Hhqc9NJMUXSIt9ZDJsAH5g50hmT1Xt2UHZpzp34=; b=eBsqjZbDcU2QEGyWz1GUd9mRapVD8UjoW8/wRwgegWIiIfzW3p2IX1Q7R28c2jUxgt bXmFK7mNDdoSEfRlLZoh4fXLayrFhKmDYTLUYcY0Ih61P2hZFOhj8X/Dzeg8W98CZx0r 4moFJSas752yv58Q1Y5xqtx24eep1W9o2ylxZ9lTr1uG8JRsIphFmg5MkFO9wEr/Yd0Z IvSBrV88dcwu5QpucC1M4fzau9E9A6RCVvNvcINFmRoygCnMRKvhChllfn4UzM9T+VOl 7rSNfHVizEeiuipQAB578rjdHXvjNnK4uIq9+djYnzr07UfZNNsKQQ91EYlGX4TcW513 5osQ==
MIME-Version: 1.0
X-Received: by 10.202.62.6 with SMTP id l6mr13626455oia.59.1422313364005; Mon, 26 Jan 2015 15:02:44 -0800 (PST)
Received: by 10.202.51.66 with HTTP; Mon, 26 Jan 2015 15:02:43 -0800 (PST)
In-Reply-To: <C4A57039-EBE5-4ED6-BF74-E52B3DFBE27C@cs.columbia.edu>
References: <039049E6-71E2-4E55-8678-E1E0E472F87B@cs.columbia.edu> <20150126171439.GC49615@verdi> <C4A57039-EBE5-4ED6-BF74-E52B3DFBE27C@cs.columbia.edu>
Date: Tue, 27 Jan 2015 12:02:43 +1300
Message-ID: <CAA93jw78h76r0tXJ9e21jjAC3Ps12E0h_bVk9a9CNrDmxrYWug@mail.gmail.com>
From: Dave Taht <dave.taht@gmail.com>
To: Vishal Misra <misra@cs.columbia.edu>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/0Lp8LDy1bdXYwXMSrYQ585pn1K4>
Cc: John Leslie <john@jlc.net>, "aqm@ietf.org" <aqm@ietf.org>
Subject: Re: [aqm] ECN: was Control Theoretic Analyses of PI(E)
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <aqm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/aqm>, <mailto:aqm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/aqm/>
List-Post: <mailto:aqm@ietf.org>
List-Help: <mailto:aqm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/aqm>, <mailto:aqm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 26 Jan 2015 23:02:48 -0000

On Tue, Jan 27, 2015 at 9:34 AM, Vishal Misra <misra@cs.columbia.edu> wrote:
>>
>>   We should (IMHO) note that it's many years since its use in congestion
>> control could possibly be "the same as packet drop" -- and by the nature
>> of AQM, packets need to be ECN-marked before anything must be dropped
>> due to buffer overflow.
>>
>>   Obviously (IMHO), an ECN-capable packet which encounters buffer
>> overflow needs to be dropped: not held until it can be ECN-marked and
>> forwarded.
>>
>
> John,
>
> Couldn't agree more.

Actually what happens on overflow in fq_codel is a packet from the
largest flow is dropped from
it's head, regardless of it's ecn marking. The ingress packet is
always accepted in the current implementation. It is certainly
possible to change this behavior, but as overflow is a very rare case
with the default packet limit, it does not seem to be a problem in
practice.

ecn is enabled by default in fq_codel. Some notes on actual use I've
seen are that it is entirely possible to have a fully utilized, low
latency, drop free network, and that at typical or long RTTs drop/mark
percentages decrease proportional to the rate of transmittal to
inconsequential values, while still preserving low latency and
throughput.

I would like to try a dctcp implementation against the aqms as
available today, and to compare the results against the default highly
specialized RED implementation dctcp presently requires.

> That was sort of the whole idea behind the PI controller - something that predicts onset of congestion by observing the derivative in the queue length as well as the absolute value of the queue. One of the failings of RED that we identified in a companion paper to the PI one (http://dna-pubs.cs.columbia.edu/citation/paperfile/22/hollot01control.pdf) was that RED used _averaged_ queue length as the congestion indicator. That introduced a further delay to the feedback loop - by the time your average rose and you to decided to "mark" a packet the buffer was already close to overflowing.

There is not a lot of useful information in "average" queue length, yes.

http://www.pollere.net/Pdfdocs/QrantJul06.pdf page 14.

> With a PI(E) like scheme you can proactively ECN mark packets, keep the delays low but still

I note that the pie implementation in linux does, indeed, implement
ecn. (it is not enabled by default, you can enable it by specifying
the ecn parameter at instantation) However, due to the method it uses
for avoiding overflow, it will still drop ecn marked packets, when
perhaps it shouldn't, due to the randomized time it reacts within. I
have plenty of packet captures showing ecn and non ecn behaviors for
all the proposed aqm and packet scheduling schemes.

The current linux codel's ecn implementation is fully deterministic,
as is fq_codel's. I have a version under test that is also
deterministic but more explicitly handles the more dramatically out of
bounds  conditions by dropping, rather than marking ecn-marked
packets, before the overall queue limit is hit. That portion of the
revised algorithm works well, but there is another tweak that isn't
working, and no further development has been funded.

>keep the pipe fully utilized without needing to drop any packets. You can also use ECN marks with DiffServ and handle multiclass traffic (voice/real time streaming vs video downloads etc.) much more efficiently.

I look forward to seeing a diffserv enabled implementation of pie or
pie-fq. In the "sqm-scripts" package for openwrt and cerowrt, there is
the ability to test variants of a 3 tier classification scheme, with
pie, codel, fq_codel, multiple test *codel variants, sfq, sfb, and
fifo qdiscs. Extensive benchmark results are available, and you are
perfectly welcome to merely run these scripts on any linux distro
shipped in the past 2 years.

Essentially this 3 tier scheme is what has deployed in many
aftermarket home router distributions, and in netgear's dynamic QoS.
What streamboost does (partially fq_codel based) is a bit different,
attempting to provide bandwidth garuntees for various services like
netflix, and it's too confusing to describe here.

Since there seemed to be no interest in the ietf for documenting what
has deployed, I have not taken this draft any further,
http://snapon.lab.bufferbloat.net/~d/draft-taht-home-gateway-best-practices-00.html

Work proceeds slowly on "cake", which incorporates what works so far
in the above deployments in pure C, and adds full diffserv support to
multiple levels of fq_codel. Patches for that are available on
request. I am told there are several wfq + codel implementations being
developed, and there is out there somewhere, an fq-pie.

> -Vishal
> --
> http://www.cs.columbia.edu/~misra/
> _______________________________________________
> aqm mailing list
> aqm@ietf.org
> https://www.ietf.org/mailman/listinfo/aqm



-- 
Dave Täht

thttp://www.bufferbloat.net/projects/bloat/wiki/Upcoming_Talks