Re: [tsvwg] Fwd: New Version Notification for draft-white-tsvwg-lld-00.txt

Luca Muscariello <luca.muscariello@gmail.com> Thu, 28 March 2019 11:50 UTC

Return-Path: <luca.muscariello@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 E8C71120295 for <tsvwg@ietfa.amsl.com>; Thu, 28 Mar 2019 04:50:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 oUlTh36KACQl for <tsvwg@ietfa.amsl.com>; Thu, 28 Mar 2019 04:50:32 -0700 (PDT)
Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com [IPv6:2607:f8b0:4864:20::335]) (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 C2FB51202A1 for <tsvwg@ietf.org>; Thu, 28 Mar 2019 04:50:31 -0700 (PDT)
Received: by mail-ot1-x335.google.com with SMTP id f10so18006014otb.6 for <tsvwg@ietf.org>; Thu, 28 Mar 2019 04:50:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rIiSz7NvuQGNw2+ZWKrZDdztfJscfSe31WswxpVLIB8=; b=CMDYrFtDwUKupF9ra579usSd+YhokP/YVghy7X+/rVmohBFspzLjM6DCb3u9hZ1sp/ m/5EBbGO4wcZoIJzD+nTMExLNqjVHczFUZyFMv3Pp9tRxC9aMH1c9tmjGbuUhxw6eDA2 HuE/hhl5qkljZ6o1ZwO/GF1W/FrPDah6ODUlX4KAfuQVRWbxvMxrEyD+c9+Y80ggFsCl cKyu2/T0TQbO3+KiwCZE78qWsizNz1AznkNJYKpY3KvL8ZfnQBBMiPtVivs0hUrgdN7E bhFR77LiNJHo05843COs7OPI7q4bA9B9Ynz93HFa2twn+Trij4kDSFPz2iUYcBz9CNhD iwfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rIiSz7NvuQGNw2+ZWKrZDdztfJscfSe31WswxpVLIB8=; b=UTi8wPOKLyNQrnN5IfKY/Ok8TWMJvCoyOtf5q1yTnf/Of6BPB7oNx/H28jrmjcL8sF 0cn4/RuTCu+1fXh2pf3csyvZH8hgGyVdgqR5KrfX3rYebMSyvDamzfoW3YocuTJJkQdY Ru0xu/CaYlXceP1eNcOopLYs1RxH3BpZ7okz/v/5CeWomHqrY4NFbu+Ia4ff2CUw1+bi 84dLaQQ/r/cbu/e+kdP+bKF/ZXKtCDAYUv4hcFvZ+nM3lef7b4OY4uDNVD2fajmAuR9B MVFUOPMIXs6ahtr0KVQUyS5Y5WN8Q+WQJOPT2mAaQ4URwOZQ5sFWG4BZ6Lia2CzUhtqY bWRQ==
X-Gm-Message-State: APjAAAXqQw1k1ePEYhjTlnn9OnYgRMmz0WENMtcjy0mzR8zt1z4HZvew 66L9T+c2B1L+owEgS87FJpTTrqMNow5lz0jcRFs=
X-Google-Smtp-Source: APXvYqz/bqXfEU6QpXum4MhXzwU3JmVcMPjNZ8iPU05mTxj8HaRzurM9mTcLRMyOZxe78LqmcC8fvIkK9ahSQvFEHgM=
X-Received: by 2002:a9d:6255:: with SMTP id i21mr30817582otk.354.1553773830786; Thu, 28 Mar 2019 04:50:30 -0700 (PDT)
MIME-Version: 1.0
References: <0289E1B3-9AFF-4633-A9B1-6BAEE96B7692@cablelabs.com> <CAHx=1M6US_HYjXfqtRr8RbGEe5QxPjjnivLkKMHHBpqMQRyP8g@mail.gmail.com> <C689234C-6A08-47B1-90B5-07DE77112BBD@cablelabs.com> <CAHx=1M5z4fpViHbV+3+VchpyXsPJwwCuhWzNvZ7EU-An3gS0qQ@mail.gmail.com> <300857A4-9483-473E-8D9E-799F6077A4FF@cablelabs.com> <CAHx=1M53q0DG8AmhSxQXFhDfr4UzgrRR+iebmCwrZMcVnMvS5g@mail.gmail.com> <CAHx=1M4y=bEHQ1xt1G59B-DzuU195s4hMapAFmjP0UFqSn403A@mail.gmail.com> <AM0PR07MB4819B13811AE92A48A69CB5BE0460@AM0PR07MB4819.eurprd07.prod.outlook.com> <CAHx=1M6RMgVb+Q0OcjYwFvTr=uVCX6V_yPMUDXX5Z2zNfzWy+g@mail.gmail.com> <AM0PR07MB481913E2901C3F8865741D87E0470@AM0PR07MB4819.eurprd07.prod.outlook.com> <CAHx=1M5kd5Bk0bgkbk3BKuAVFBw+F8wB-xBmsy84BeGfNQPpnQ@mail.gmail.com> <AM0PR07MB4819396BC80290239635FBC8E0470@AM0PR07MB4819.eurprd07.prod.outlook.com> <CAHx=1M5bPynE9g81zors9o0ef7dX80Ey98BfE2F+=HLg-xPfBA@mail.gmail.com> <553154E6-7883-45F4-A8B1-510849D94AAA@cablelabs.com> <CAHx=1M52n0nsbv4Y9F3SFeByPk1o4c9t4-U17x92VtJ9efUD2A@mail.gmail.com> <433425C1-C806-42B0-B9F4-A4B4B0720A64@cablelabs.com> <CAHx=1M5c1cEm=6F6xLXU9m3pjv6WWbSUeXGEJtD1C-XT=w5OhQ@mail.gmail.com> <CBDCFCE7-03BC-42CE-977B-520AA21555E1@cablelabs.com>
In-Reply-To: <CBDCFCE7-03BC-42CE-977B-520AA21555E1@cablelabs.com>
From: Luca Muscariello <luca.muscariello@gmail.com>
Date: Thu, 28 Mar 2019 12:50:19 +0100
Message-ID: <CAHx=1M7exM1CE+v5OOUW_egBDyYpJOhbaYStZnm0rijaZo8e5g@mail.gmail.com>
To: Greg White <g.white@cablelabs.com>
Cc: "Tilmans, Olivier (Nokia - BE/Antwerp)" <olivier.tilmans@nokia-bell-labs.com>, tsvwg IETF list <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003ed3b605852629ca"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/6IedBgmTlui_ec-rx5zF2uD2PQY>
Subject: Re: [tsvwg] Fwd: New Version Notification for draft-white-tsvwg-lld-00.txt
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: Thu, 28 Mar 2019 11:50:37 -0000

Hi Greg,

sorry for my belated follow up on this. More comments below. I cut most of
the history for readability.

Luca


On Wed, Mar 20, 2019 at 9:03 PM Greg White <g.white@cablelabs.com> wrote:

> Hi Luca,
>
>
>
> First off, thank you for your review and probing questions.  I very much
> appreciate it.
>
>
>
> Now on the points where you still have concerns, either I am not
> understanding them, or you aren’t understanding my answers.  I’ve added
> some responses inline below.  Hopefully we can get to the point that we
> agree.
>
>
>
> -Greg
>
>
>
>
>
>
>
> *From: *Luca Muscariello <luca.muscariello@gmail.com>
> *Date: *Tuesday, March 19, 2019 at 4:13 PM
> *To: *Greg White <g.white@CableLabs.com>
> *Cc: *"Tilmans, Olivier (Nokia - BE/Antwerp)" <
> olivier.tilmans@nokia-bell-labs.com>, tsvwg IETF list <tsvwg@ietf.org>
> *Subject: *Re: [tsvwg] Fwd: New Version Notification for
> draft-white-tsvwg-lld-00.txt
>
>
>
> Greg,
>
>
>
> You may be right. We may be doing different assumptions.
>
> To me the point where we disagree is that you assume that an application,
>
> to get access to the low latency queue, is not only well behaving
>
> but also sending at a very low rate compared to the link capacity.
>
>
>
> [GW]  No, that is not the assumption. The fundamental requirement is that,
> in order to have 100% of its packets remain in the low latency queue, a
> flow cannot be contributing appreciably to queuing latency.  Note, we are
> actually not describing the performance of the low latency queue as being a
> DetNet guarantee, so the requirement for 100% of packets to have
> deterministic latency does not exist.  Rather, the focus is on 99th
> percentile latency.  Nonetheless, in the abstract, a single application
> flow could send smooth (CBR) non-responsive traffic that fully utilizes the
> link capacity, and have all of that traffic utilize either queue (low
> latency or classic, depending on if it marked its packets NQB or not).
>


[LM] If a single CBR marked application can absorb say 90% of the link
capacity then what you are describing is equivalent to a strict priority
queue.
I noticed that this is one option in DualQ that is, wisely, dismissed in
the related I-D document too. Even a D/D/1 Queue with the right values can
get very
close to saturation and a single packet in the queue at most. But that is
not the kind of sharing we want because it would also contradict what you
write
in the abstract:
"LLD makes the internet experience better for latency sensitive
applications without any negative impact on other applications."
This example you make has very negative impact on other applications.



>
>
> The point I'm trying to make is that in general, we do not know that rate.
>
> As long as we have no predictable information about the amount of non
> classified
>
> traffic that can be admitted to the low latency queue, the coupling
> factor, that
>
> determines how time is shared between the two queues, cannot be set.
>
> Any value would break the stable equilibrium assumed by the system and
> therefore
>
> that much traffic has to be kicked out of the queue.
>
>
>
> [GW] In practice, as you point out, an application generally cannot know
> the link rate (nor can it know whether it is the only application).  So, in
> practice, an application that is interested in low latency has 2 options in
> order to ensure that it isn’t causing queuing delay.  One option is that it
> simply does not send traffic that is likely to exceed the available
> capacity of the link. There are a lot of applications that do just this,
> and are great candidates for being marked NQB.  (Even without dual-queue,
> this is a practical constraint for any non-responsive application that
> cares about latency or loss performance, the only additional factor in the
> low latency queue is that the constraint applies on a more instantaneous
> basis than for a deep buffered link.) Given that the application cannot
> “know” the available capacity, all non-responsive applications take on some
> risk that they have guessed wrong, and have to accept the consequences
> (latency or loss) in the case that they have.  Of course, the lower the
> sending rate, the greater the likelihood that it won’t exceed the link
> capacity. The other option is to implement a low latency scalable
> congestion control (e.g. TCP Prague).  TCP Prague can fully utilize its
> per-flow-fair share of the link capacity across a very wide range of cases
> without the need to tune any parameters in the dual-queue configuration.
> Outside that range of cases, the behavior is not catastrophic.   I’m not
> certain what you mean by “non-classified traffic” do you mean
> non-responsive (or non-congestion-controlled)? Also you used the term
> “coupling factor” which is a specific term used in dual-queue coupled AQM
> to refer to the multiplicative factor that relates the L4S ECN marking
> probability to the Classic AQM drop probability.  I don’t think that is
> what you were referring to.  I think you intended to mean the WRR weight.
> In case I am right on both counts, I thought I had explained this in my
> earlier email, but let me make it clear.  Stability is not in question.
> What you are arguing is that per-flow-fairness isn’t guaranteed in certain
> situations.   This is true, but as I pointed out, the range of conditions
> where fairness is more-or-less achieved is pretty large, and outside that
> range things aren’t so bad.  I say “more-or-less achieved” because, with
> the dual-queue, just like a single queue, flows will only tend toward
> fairness (with the caveats of RTT differences, variations in congestion
> controllers, etc.).   But, a goal of TCP Prague is to at least reduce this
> RTT dependence.
>

[LM]  Non classified traffic is traffic that is not marked. So it has to go
to the classic queue UNLESS you can classify it locally and then enqueue it
in the low latency queue even if it is not Prague.
Take WebEx, Skype, WebRTC voice as an example, w/o assuming that there is
one single voice call at the same time. Assume I have several voice calls
in progress and maybe video.
But I also do care about DNS traffic and so on that has impact on other
applications' completion time.
I am not arguing for per-flow fairness intended as per-flow rate
equalization. I'm arguing for fairness in the sense that my application is
not killed by this system by starvation.
The queue coupling factor includes also WRR weight which plays a role in
coupling both queue service times together with ECN and packet loss.
Whatever is the set of parameters used in the 2-queue systems, as long as
both queues are backlogged, ECN marking and packet loss rate have no impact
in queue scheduling time, only WRR is responsible for time sharing.
Coupling factors are used to create idle periods in the low latency queue
that are exploited by the classic queue.
Now, my point is that this approach is harmful and you cannot stabilize the
control loop as intended therefore performance will not be as expected.



>
>
> This is not a positive incentive but rather policy enforcement.
>
> This is in itself a subject of discussion.
>
>
>
> [GW] This seems to be a matter of opinion, but I’m actually not sure why
> you feel the need to make the distinction.  The low latency queue is only
> for flows that aren’t causing queuing delay.  If a flow is causing queuing
> delay then the system (and in some cases the application itself) is better
> off if the application’s packets take the classic queue.  The job of Queue
> Protection is to enforce this, and ideally create incentives for
> “correctly” marking packets.  Furthermore, the applications that are the
> best behaved are the most likely to be able to send all of their packets
> via the low latency queue, so this is an incentive. Keep in mind, that this
> isn’t DetNet.
>

[LM] I think that queue protection has to be mandatory. Not only, I think
that queue protection should also be used to classify packets. DualQ as it
is, is harmful and cannot be fixed.
A coupled queueing system where service time and switch over time is
determined by the input traffic is very difficult to stabilize.
And what I have in mind is a stochastic process not a detnet like system.
Very far from that.




>
>
>
>