Re: [tsvwg] [Ecn-sane] per-flow scheduling

Jonathan Morton <chromatix99@gmail.com> Tue, 23 July 2019 22:24 UTC

Return-Path: <chromatix99@gmail.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 348B512039B for <tsvwg@ietfa.amsl.com>; Tue, 23 Jul 2019 15:24:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.748
X-Spam-Level:
X-Spam-Status: No, score=-1.748 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 vaM_bpigN07X for <tsvwg@ietfa.amsl.com>; Tue, 23 Jul 2019 15:24:57 -0700 (PDT)
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 906DB120352 for <tsvwg@ietf.org>; Tue, 23 Jul 2019 15:24:57 -0700 (PDT)
Received: by mail-qt1-x836.google.com with SMTP id n11so43503007qtl.5 for <tsvwg@ietf.org>; Tue, 23 Jul 2019 15:24:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=s64tPHGKhckNBszrCAtgWZsuRhbQ5keiO+5ycPsHpRk=; b=nulcMKpORTeu5Lxe5/c9sWQNdSCCBrSbohNBT9tfq0J9f1gv2smHVNdD5eJJwE4yrg 4aCgZPq2p3j+jAtCAMP4Z0PPTt5q/hzTdTSKvvYFxqK4gvUOLx3S5WiTkmJRPP7j7z+Z JlqJadmd/fJjfb8Hf0Ek8RZvpnEPK2ptGUHeVctSwNR9KY2Pfn0r0Pz0NcjRQ7I+BjD3 Zo1Wg7LNreaRFykXTzC7q28NbiXuCKX6aY8qKen1dlGO6VahfxQ8J/75BHb3udh9cWpi 4+PHlvtUkinleWgmO3JarHYLQh0mCzmT9yqwGdHTWCFRjVzS95iEkfx8K6NQ0LH/TZuS n62Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=s64tPHGKhckNBszrCAtgWZsuRhbQ5keiO+5ycPsHpRk=; b=XRqUyPrGPd81zJ17TfiKWCelssWQxsqJsxtk9MATb7OsEo9W5Mt0TFAGWyxhV/7c0h Im6Haqkb6V072+VA9IO8eCab0eId6hPgzVReM4MsT7F1ATN9gM7aRVhXHb+1q1R5cyd1 5hyRcvqTyuOp7O7wX2Sbti7iTE/Z6Hj0AGUTlKXHBYtngNzkGrLbeNBg0toITpAepijJ mIm5QWa6Z9rjS7R6X6IghWKPDaIXJEWRL5O1+L6Vbh8gzoYDch+8J6nD0kvZ04dv0XFh SzKNaXmlYPQls24A5HR13X7Kz6+pvsPBMubn+eNUSh41tjUFdk49n8p+RZTeSHPXMMg0 KN9g==
X-Gm-Message-State: APjAAAXD65X03ylw3nWTyhd32JULvdT9s9f7z5KaAoEr1aYhPT2eYzNQ pChsWtl7JQeHiEvjS8DzKys=
X-Google-Smtp-Source: APXvYqwF/ha3Z9qSI+zGYnHG8ruIw9V+qKeDEvn0MFMUfeU5JN85HzhV3GCU3dXdoAgdtn6sd3PShg==
X-Received: by 2002:ac8:520e:: with SMTP id r14mr54853850qtn.50.1563920696720; Tue, 23 Jul 2019 15:24:56 -0700 (PDT)
Received: from jonathartonsmbp.lan (173-246-8-242.qc.cable.ebox.net. [173.246.8.242]) by smtp.gmail.com with ESMTPSA id a23sm18547030qtp.22.2019.07.23.15.24.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jul 2019 15:24:56 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Jonathan Morton <chromatix99@gmail.com>
In-Reply-To: <629a1cef-d49c-b6dc-b495-5dd8087b849f@bobbriscoe.net>
Date: Tue, 23 Jul 2019 18:24:55 -0400
Cc: "ecn-sane@lists.bufferbloat.net" <ecn-sane@lists.bufferbloat.net>, tsvwg IETF list <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <FD7FD1ED-6225-4591-B341-9DDA98E9DAB3@gmail.com>
References: <350f8dd5-65d4-d2f3-4d65-784c0379f58c@bobbriscoe.net> <40605F1F-A6F5-4402-9944-238F92926EA6@gmx.de> <1563401917.00951412@apps.rackspace.com> <D1595770-9481-46F6-AC50-3A720E28E03D@gmail.com> <d8911b7e-406d-adfd-37a5-1c2c20b353f2@bobbriscoe.net> <8741152A-EBF0-48F4-A123-B34A638322A1@gmail.com> <629a1cef-d49c-b6dc-b495-5dd8087b849f@bobbriscoe.net>
To: Bob Briscoe <ietf@bobbriscoe.net>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/aJOyc6bMU5avs3chaessxXtgzmA>
Subject: Re: [tsvwg] [Ecn-sane] per-flow scheduling
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jul 2019 22:24:59 -0000

> [BB] The objective measure of famine/plenty that all congestion controls use is a combination of the loss level, ECN level, queue delay, etc. In the paper, I referred to BBRv2's distinction between famine and plenty (which is at 1% loss) and in a footnote I expressed a preference for a more gradual transition.

Coincidentally, 1% loss corresponds to about 1.5Mbps goodput at an Internet-scale 80ms RTT, assuming a Reno transport.  Obviously at different RTTs it corresponds to different goodputs, and you might argue that shorter RTTs are also common.  But now we have a common reference point.

Oh, and under similar conditions, 1% marking corresponds to about 30Mbps with L4S (ie. cwnd=200).  That's a 20:1 ratio versus Reno, which you might want to think about carefully when it comes to fair competition.

> The use of the two words famine and plenty wasn't intended to imply only two states. It's a continuum (like the spectrum between famine and plenty).

Okay.

I still happen to disagree with the argument, but single-queue AQMs are still a valid improvement over single dumb FIFOs.  They improve reliability by reducing losses and timeouts, and help to reduce lag in online games.  That's the practical problem facing most Internet users today, and that's where my solutions are focused.

>> Regardless, my assertion is not that FQ is required for ultra-low latency, but that flows requiring ultra-low latency must be isolated from general traffic…
>> 
>> It is true that SCE doesn't inherently carry a label distinguishing its traffic from the general set, and thus DualQ cannot be directly applied to it.  But there is a straightforward way to perform this labelling if required, right next door in the Diffserv field.  The recently proposed NQB DSCP would likely be suitable.  I don't think that the majority of potential SCE users would need or even want this distinction (the primary benefit of SCE being better link utilisation by eliminating the traditional deep sawtooth), but the mechanism exists, orthogonally to SCE itself.

> To enable SCE and RFC3168 in two queues rather than per-flow queues, if you required SCE packets to be identified by a DSCP, if the DSCP got wiped (which it often does), your SCE traffic would mix with 3168 traffic and starve itself.

Under certain simplifying assumptions, yes.  But those assumptions would include that the 3168 queue was also providing SCE marking in the FQ style, which might not be appropriate for what is effectively a single queue carrying mixed traffic.  It would be as if your DualQ was providing L4S-style signalling in its Classic queue, which I'm sure you would not advocate.

As a de-facto representative of the cable industry, I hope you are aware of the irony that it is chiefly cable ISPs who are bleaching Diffserv information out of consumer traffic?

The starvation problem can be eliminated entirely by providing SCE marking only on the queue intended for SCE traffic (so only CE marks on the 3168 queue).  Mis-marked traffic would then revert to purely 3168 compliant behaviour, which SCE does naturally when given only CE marks.  This option is an important advantage of having a clear distinction between the two signals; there is no ambiguity at the receiver about what type of signal it's receiving and thus which response is demanded.

As a reminder, we *also* have a solution specifically for single-queue AQMs implementing SCE.  It's not a knobs-free solution as the FQ version is, but it exists and it seems to work.  I expect we will need to explore its dynamic characteristics more thoroughly in the near future.

>> I have also drawn up, as a straw-man proposal, CNQ - Cheap Nasty Queuing:
>> 
>> 	https://tools.ietf.org/html/draft-morton-tsvwg-cheap-nasty-queueing-00

> OK. Can you say whether you've tested this exhausitvely? Need to know before we all spend time reading it in too much depth.

To quote Knuth: "I have only proved the above code correct, not tried it."  But we may get time to quickly implement CNQ and/or LFQ, in between preparations for Friday.  (By which I mean implementing it in Linux.)  This stuff is not central to our work on SCE, since we already have Cake for running experiments.

I think Pete Heist wants to try putting CNQ in his offline simulator as well, which already has LFQ.  So that should provide an early sanity check.

 - Jonathan Morton