Re: [tsvwg] Normative 'Prague' L4S requirements: Edits in draft-ietf-tsvwg-ecn-l4s-id-15

Bob Briscoe <ietf@bobbriscoe.net> Fri, 07 May 2021 15:57 UTC

Return-Path: <ietf@bobbriscoe.net>
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 B91853A277A for <tsvwg@ietfa.amsl.com>; Fri, 7 May 2021 08:57:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.432
X-Spam-Level:
X-Spam-Status: No, score=-1.432 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 VlDnzBXRebAh for <tsvwg@ietfa.amsl.com>; Fri, 7 May 2021 08:56:58 -0700 (PDT)
Received: from mail-ssdrsserver2.hosting.co.uk (mail-ssdrsserver2.hosting.co.uk [185.185.85.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 18C503A276F for <tsvwg@ietf.org>; Fri, 7 May 2021 08:56:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=5gzDtItMdBFO3mNSidJ9SIeo8z3d+KzYkXMWJMzLA2U=; b=OjSboDb/Lkiw2JQzSpZ3xTs49G 0RfuEwvVy4UpadN2xpndWE2nEDBU99590P7wXqE1OUxe0a572hamf+P4nlqKk5Z7+O2xvIMdcihhG Cws3XMs6Bd+EPlYe5yKyMsnB3udzDXR6Fy8LKXlOH/m1GKLFPe3vY+oCMuPsRkKkcu7tNKjfe1mdZ r7SgxdlgQKaLfUo2jgprnZ8E+6ZQkMJ2JgLb8EQJ1TzJp2RCTs6FruyoWlvsyMrzAngF8ZQ/TJSBn qL9/DV9R1D7eNwWNpT4h5cozhsMiUuMJEGNHO/zcVJ3iu7GXCMw8oH5HUSSYj8nyYvixCc4BLhjN8 Ia/ubl+A==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:33864 helo=[192.168.1.11]) by ssdrsserver2.hosting.co.uk with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <ietf@bobbriscoe.net>) id 1lf2q1-0003KV-OA; Fri, 07 May 2021 16:56:23 +0100
To: Neal Cardwell <ncardwell@google.com>
Cc: tsvwg IETF list <tsvwg@ietf.org>
References: <162038901163.1591.11201840657858958971@ietfa.amsl.com> <97933e2c-2899-9700-6df4-4c89bece40a4@bobbriscoe.net> <CADVnQynKyXJyobb__HTcwCXOc74PtaPRSmHxSzC82mhoc4JmKg@mail.gmail.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <d27d64eb-4d84-d5aa-d753-1e41b1715c0b@bobbriscoe.net>
Date: Fri, 07 May 2021 16:56:21 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <CADVnQynKyXJyobb__HTcwCXOc74PtaPRSmHxSzC82mhoc4JmKg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------76AD07BED19C61E89A345250"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hosting.co.uk
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: ssdrsserver2.hosting.co.uk: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hosting.co.uk: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/0-HFZORqio0tOFJdkkSSgLaObRY>
Subject: Re: [tsvwg] Normative 'Prague' L4S requirements: Edits in draft-ietf-tsvwg-ecn-l4s-id-15
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: Fri, 07 May 2021 15:57:04 -0000

Neal,

On 07/05/2021 14:45, Neal Cardwell wrote:
>
>
> On Fri, May 7, 2021 at 9:22 AM Bob Briscoe <ietf@bobbriscoe.net 
> <mailto:ietf@bobbriscoe.net>> wrote:
>
>     tsvwg folks,
>
>     This -15 revision addresses the discussions over the past couple
>     of months since the last IETF meeting about the normative 'Prague'
>     requirements text, in particular addressing points made by
>     developers in the survey of how practical the requirements were.
>
>     We were about to post -15 for the tsvwg L4S interim on Monday,
>     when Gorry sent his review yesterday. So we agreed that we would
>     continue with this posting, and attempt to post a further revision
>     before Monday, to try to address all Gorry's points where
>     necessary. Hopefully we've captured most of the normative
>     requirements in -15, and -16 will be more focussed on editorial.
>
>     I would particularly draw attention to the completely new
>     requirement text for coexistence with Classic Congestion Control
>     in a Classic ECN AQM. It's quoted below. The intent is to be
>     consistent with the approach in l4sops. Greg posted the first WG
>     draft of that about 12hrs ago: draft-ietf-tsvwg-l4sops-00
>
>     This requirement considerably longer than the other requirements,
>     and I'll be surprised if we've got it completely right, 'cos it
>     tries to constrain a multitude of possible approaches, allowing
>     flexibility but also keeping the important constraints. So pls
>     review closely.
>
>         o  In uncontrolled environments, monitoring MUST be implemented to
>            support detection of problems with an ECN-capable AQM at the path
>            bottleneck that appears not to support L4S and might be in a
>            shared queue.  Such monitoring SHOULD be applied to live traffic
>            that is using Scalable congestion control.  Alternatively,
>            monitoring need not be applied to live traffic, if monitoring has
>            been arranged to cover the paths that live traffic takes through
>            uncontrolled environments.
>
>            The detection function SHOULD be capable of making the congestion
>            control adapt its ECN-marking response to coexist safely with
>            Classic congestion controls such as standard Reno [RFC5681], as
>            required by [RFC5033].  Alternatively, if adaptation is not
>            implemented and problems with such an AQM are detected, the
>            scalable congestion control MUST be replaced by a Classic
>            congestion control.
>
>            Note that a scalable congestion control is not expected to change
>            to setting ECT(0) while it transiently adapts to coexist with
>            Reno.
>
> If a scalable congestion control transiently adapts to coexist with 
> Reno, and keeps marking its data segments with ECT(1), then if its 
> estimation that it is coexisting with Reno was incorrect, and instead 
> it is actually traveling through an L4S bottleneck, won't its 
> Reno-style reactions to L4S CE marks cause it to suffer very low 
> throughput? To avoid this problem, would it perhaps be advantageous to 
> have a scalable congestion control sender that is emulating Reno 
> instead switch to using ECT(0), so that the L4S bottleneck runs it 
> through the classic queue?

[BB] There are arguments both ways, so we didn't state this as a 
normative requirement, we just said it's 'not expected to'. But on 
balance we decided there were more points in favour of sticking with 
ECT(1) than switching:
* Avoids flipping to another path if there's load balancing or ECMP 
hashed on the ex-ToS byte, which is still unfortunately common.
* If it turns out to have been wrong to switch to Classic /behaviour/ 
because there is an L4S AQM at the bottleneck, if it switches to the 
ECT(0) /codepoint/ as well, it will definitely get classified into the 
Classic queue and never get the chance to measure that it should switch 
back again.
* But if it stays as ECT(1) but behaves as Classic:
     - a classic AQM will treat it as ECT(0), which is fine.
     - but, if it's actually still in an L4S queue, yes, it could suffer 
as you say, but it will also be able to continue measuring, including 
measuring that it's suffering, which could help it switch back to the 
correct (L4S) behaviour.

Let me know if you still think the text ought to say the opposite.

==Example plot==

For instance, in the Classic AQM detection algorithm that we implemented 
in TCP Prague, there were some cases at large base RTT where the algo 
switched to Classic behaviour then realized it's true identity and 
switched back. Here's an example:
https://l4s.net/ecn-fbk/results_v2.2/one_aqm/dualpi2_release/40mb_100ms/classic_ecn.html
it's over a DualQ bottleneck with Prague flows (rows) competing with 
Cubic (columns). The plots show the 'Classic ECN variable' of the 
detection algo in the Prague flows. And the green background shows where 
the variable should be if detection is correct (orange is when it 
incorrectly thinks it's in a Classic AQM):

* At (1 Prague : 9 Cubic) you can see the Prague flow starts to think 
it's in a Classic AQM, then when it gets there it finds it's probably 
not, so it retreats back and stays on the correct side.
* At (9:9) the red plot is a counter example that switches to Classic, 
starts to retreat back to L4S again, then bounces back into Classic as 
soon as it starts to behave as L4S. And the dark olive one is a 
counter-counter example; it does the two bounces like the red one, but 
then later, after a period of prevarication, it decides it really is 
L4S. Then the run ended, and we'll never know what it would have done 
next... ;)
* Note that it's hard to see the blue line on some of the plots that 
stay firmly at the bottom, where they should be.

The full explanation of the visualization is here: 
https://l4s.net/ecn-fbk/results_v2.2/full_heatmap/ and you can find the 
experiment set up off the 'Internals' menu.


Bob

>
> best,
> neal
>
>
>            See Appendix A.1.5 and [I-D.ietf-tsvwg-l4sops] for rationale.
>
>
>
>
>     Bob
>
>     On 07/05/2021 13:03, internet-drafts@ietf.org
>     <mailto:internet-drafts@ietf.org> wrote:
>>     A New Internet-Draft is available from the on-line Internet-Drafts directories.
>>     This draft is a work item of the Transport Area Working Group WG of the IETF.
>>
>>              Title           : Explicit Congestion Notification (ECN) Protocol for Ultra-Low Queuing Delay (L4S)
>>              Authors         : Koen De Schepper
>>                                Bob Briscoe
>>     	Filename        : draft-ietf-tsvwg-ecn-l4s-id-15.txt
>>     	Pages           : 61
>>     	Date            : 2021-05-07
>>
>>     Abstract:
>>         This specification defines the protocol to be used for a new network
>>         service called low latency, low loss and scalable throughput (L4S).
>>         L4S uses an Explicit Congestion Notification (ECN) scheme at the IP
>>         layer that is similar to the original (or 'Classic') ECN approach,
>>         except as specified within.  'Classic' ECN marking is required to be
>>         equivalent to a drop, both when applied in the network and when
>>         responded to by a transport.  Unlike 'Classic' ECN marking, for
>>         packets carrying the L4S identifier, the network applies marking more
>>         immediately and more aggressively than drop, and the transport
>>         response to each mark is reduced and smoothed relative to that for
>>         drop.  The two changes counterbalance each other so that the
>>         throughput of an L4S flow will be roughly the same as a non-L4S flow
>>         under the same conditions.  Nonetheless, the much more frequent
>>         control signals and the finer responses to them result in much more
>>         fine-grained adjustments, so that ultra-low and consistently low
>>         queuing delay (typically sub-millisecond on average) becomes possible
>>         for L4S traffic without compromising link utilization.  Thus even
>>         capacity-seeking (TCP-like) traffic can have high bandwidth and very
>>         low delay at the same time, even during periods of high traffic load.
>>
>>         The L4S identifier defined in this document distinguishes L4S from
>>         'Classic' (e.g. TCP-Reno-friendly) traffic.  It gives an incremental
>>         migration path so that suitably modified network bottlenecks can
>>         distinguish and isolate existing traffic that still follows the
>>         Classic behaviour, to prevent it degrading the low queuing delay and
>>         low loss of L4S traffic.  This specification defines the rules that
>>         L4S transports and network elements need to follow to ensure they
>>         neither harm each other's performance nor that of Classic traffic.
>>         Examples of new active queue management (AQM) marking algorithms and
>>         examples of new transports (whether TCP-like or real-time) are
>>         specified separately.
>>
>>
>>     The IETF datatracker status page for this draft is:
>>     https://datatracker.ietf.org/doc/draft-ietf-tsvwg-ecn-l4s-id/  <https://datatracker.ietf.org/doc/draft-ietf-tsvwg-ecn-l4s-id/>
>>
>>     There are also htmlized versions available at:
>>     https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-l4s-id-15  <https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-l4s-id-15>
>>     https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-ecn-l4s-id-15  <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-ecn-l4s-id-15>
>>
>>     A diff from the previous version is available at:
>>     https://www.ietf.org/rfcdiff?url2=draft-ietf-tsvwg-ecn-l4s-id-15  <https://www.ietf.org/rfcdiff?url2=draft-ietf-tsvwg-ecn-l4s-id-15>
>>
>>
>>     Please note that it may take a couple of minutes from the time of submission
>>     until the htmlized version and diff are available attools.ietf.org  <http://tools.ietf.org>.
>>
>>     Internet-Drafts are also available by anonymous FTP at:
>>     ftp://ftp.ietf.org/internet-drafts/  <ftp://ftp.ietf.org/internet-drafts/>
>>
>>
>
>     -- 
>     ________________________________________________________________
>     Bob Briscoehttp://bobbriscoe.net/  <http://bobbriscoe.net/>
>

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/