Re: [tsvwg] What does the low queueing delay that L4S offers actually mean for the latency experienced by an application?

Sebastian Moeller <moeller0@gmx.de> Thu, 28 March 2019 12:01 UTC

Return-Path: <moeller0@gmx.de>
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 7119B1202A9 for <tsvwg@ietfa.amsl.com>; Thu, 28 Mar 2019 05:01:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.349
X-Spam-Level:
X-Spam-Status: No, score=-2.349 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gmx.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 b3BsB1ODP3Ug for <tsvwg@ietfa.amsl.com>; Thu, 28 Mar 2019 05:01:47 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (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 6BFBC1202B4 for <tsvwg@ietf.org>; Thu, 28 Mar 2019 05:01:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1553774502; bh=rhy395Y8n1uHhr1Cz7mU4u+XGiG4L9boasK346owhtI=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=JyuSJ3kQ9jcWnqGKbqpsC6+0Shd+qPX405KGbro98mkGjbTVh7HZk48dQzPas89WL mDEmqzRGbWQrwhbt4THmZl/uiXo5ItpXfInCNpU3nMk+0vukB5nnN38A3YpzADI2W8 l2dPf4aioJMr8Rja/JEHSfnhMkEu0YC4QIlDgH3c=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from [172.16.12.10] ([134.76.241.253]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MVZuV-1hT1LN0bC3-00Z3D6; Thu, 28 Mar 2019 13:01:42 +0100
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Sebastian Moeller <moeller0@gmx.de>
In-Reply-To: <AM0PR07MB48194E5195C822DCD842C84DE0590@AM0PR07MB4819.eurprd07.prod.outlook.com>
Date: Thu, 28 Mar 2019 13:01:40 +0100
Cc: tsvwg IETF list <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <E96421AF-79E3-45F3-B05B-08F2C0C73607@gmx.de>
References: <390EEF00-4CFF-4F22-8492-7D6D178756D5@gmx.de> <AM0PR07MB48199CD0EE0C27B9A6AC792FE0580@AM0PR07MB4819.eurprd07.prod.outlook.com> <91DCADC2-BB35-4CBA-9425-136D22A81538@gmx.de> <AM0PR07MB481927C4B6B3A52C62B60F74E0580@AM0PR07MB4819.eurprd07.prod.outlook.com> <38F6C2D8-38FB-417B-AF76-083388584F2E@gmx.de> <AM0PR07MB48194E5195C822DCD842C84DE0590@AM0PR07MB4819.eurprd07.prod.outlook.com>
To: "Tilmans, Olivier (Nokia - BE/Antwerp)" <olivier.tilmans@nokia-bell-labs.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-Provags-ID: V03:K1:jt5Et1Q27gAH6ajurs62qRLEmqxNVksmf+vLNM8+1F8hRqElL8u anLL4/xAAgIG7lJXouZ66W/Nxp9w+gbJJM87Zz93RNHkdtpWkEUsanWmu0dDu409GxW4L7E UW5SeRcIrJSUKGfeXS9junH7oYCvPd8jPolcte7HrBEnyZCt1YtaFHaR6sr8QE82e1vh7of GDN9sOIOyVVO3I6+qexAw==
X-UI-Out-Filterresults: notjunk:1;V03:K0:NXmJuwCHMSI=:XQir0Y4jU3mMzk2fDjb7Ix Vlhv7ONEtCVOOP3OvZP8abILuBVsOO+LCo/xd/sQtv8fHmygpk3hOEFkbQXLcFLa8Kd9SEtLB 6cl0jnBrEtFbj30LIVeWM6iO1A173Swo9GEKqAvIE/R+oTJshSUtgxEqtG2sSRMkVWJSLsqav BAYxmh8DSRiR6ZSfSV9ZqkEHqa1PSdvwV423fwgxitCn18pbOIFI13lGeU/8fDkJ9xGgdn1hl 541ywMnMun4nVrKUEE4ik8TJ+eGeBjSUgdlXKR0wAsePFelGzqW+RbdaAGD/lgXOB62VcMunv vHPHAGHcUogn4VN3cHIf/Skr3xOPj342MFimlXXAMoJgbENEoYcnWFQxFVbYDKwTRlgVIJGM2 R8VYQqFItzS3N+nGvluJEU8roB5TV0InHHEbpor9C6+hfD1phyT56Y6h1ha4Hv+Smk9Vo9ivn MbizZlz59byRiaSGen+AYsZwqtrIFOHzeW2Tu91r3s2ri2hMe1Rr0Mi9YrLqQkPNdKkQldwGw /iIELaGE2/XjJpua4nv/C8+g/6EIeObEiStrOdPIOvj1RBhkF4V/pJr26OF1WjcllBGpEKVAW Gub0hPe3T3Y+cq1Uh7jxoR7qHyXBGpuPne4cmiRpCsyFh7n83QjMj78GjrmQSYPwukGZonFTv GYBZfprnkfPGooNveeXu8LvDjy4ZQ2cgY5s6nnznOn9ch4UZms+eTdPphbFp1JmjDaJh508tJ 6PHnM2kZnY7GBANBoBg0LMkcIDa+4/sO9lFK8IaN1RIJ2fcLWxkVMFkqi/rNZNttLmw+skKKm WwJck68kwgG0IbpatE2EvmwAOLeMdC+eso1sXobcS2AC0LFLeCbaGmjupUyb1DRft0zMM43Ej kzxIWAj2O/rvahf6hP8xyTMXfjIjBAIZIEZymFwdN3VKjTYUjxviGQS7WJFw5rgzu1DQYMDhg 1uKUdihU52Q==
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/ICC_rVr0QSJ3E8q31UNLT6Plqho>
Subject: Re: [tsvwg] What does the low queueing delay that L4S offers actually mean for the latency experienced by an application?
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 12:01:51 -0000

Hi Olivier

> On Mar 28, 2019, at 11:35, Tilmans, Olivier (Nokia - BE/Antwerp) <olivier.tilmans@nokia-bell-labs.com> wrote:
> 
> Hi Sebastian,
> 
>> 	Fair-enough, it shows though that ultra-low queueing delay is not
>> going to magically improve all applications.
> 
> Today's applications "work". Reducing queuing delays may help some of them,
> but latency wasn't their limiting factor in the first place (or we wouldn't say they
> work).

	It is not an accident I used the word improve instead of work.

> 
> Providing a LL service over the public Internet however enables a new class of
> applications that otherwise require dedicated/ad-hoc infrastructure.

	Build it and they will come, but what if they never come? I ask this in the context of whether to bet the ECT(1) codepoint on L4S making it, other than that I see L4S as at least a worthwile and interesting experiment.


> Dynamic applications such as AR/VR, thin clients, or interactive videos are
> example use-case where the content displayed to the user depends on his
> action.

	Sure, but all of these are RTT limited, so all L4S is going to give you is that the end-points can be a bit further away, this will not magically work from Europe to the west-coast.


> If we don't want the user to complain about input lag, motion sickness, 
> ... latency as to be brought down significantly (and reliably) without sacrificing
> the quality of the displayed content (e.g., going beyond wireframe/low-res).
> 
> This new service is part of the rationale why L4S' designers think it can get
> deployment traction with ISPs (as opposed to Today's status quo with 
> classic ECN AQMs).
	
	An ISP will only do this if it will allow either lower Cap/OpEX or higher revenue from the customers. How exactly is L4S helping with either in a way that the latency reduction already delivered by TCP-friendly ECN marking AQMs do not promise tp do so already? Not being an ISP I might not see the forest for the trees, but I am not seeing a qualitatively different deployment scenario than before.

> Other reasons/use-cases are documented in 
> draft-ietf-tsvwg-l4s-arch (e.g., using shallow buffers over high-BDP 
> links--stallite--is an economic incentive, complementary to PEPs discussed in
> RFC3135/RFC3449)
> 
>> 	Sorry that does not sound actually true. The encoder might have a
>> better prediction about the path characteristics, but unless it uses an oracle
>> that prediction might not reflect the characteristics the packets will
>> encounter en-route. 
> 
> Which is why we care about the tail latencies in all tests/demos/presentations,
> and not the average. Having some bounds on the feedback loop, enables to 
> design systems around it. 

	All true, and not counter to my argument. Also "bounds on the feedback loop" is optimistic, I give you lower average RTT and even less variation, but that is different from a hard bound, no?

> 
>> But sure this is an application where reasonable low RTT
>> can be useful, albeit once your RTT exceeds the inter-frame period this
>> example will not be generally useful, no?
> 
> Yes, hence why having bounds on your service quality is key to optimize
> its deployment (e.g., how much frame time do you allocate to the transmission
> delays, the server-side rendering, ...). Currently, one can only hope that the
> locations where he placed his service instances are "close-enough" to the
> user (as in: we hope the ISP has reasonable queues wrt. where we deployed 
> our service).

	That really does not change qualitatively, close-enough will increase a bit, sure, but L4S still offers no hard bounds (let me mention the overload protection by tail-dropping in the dual queue RFC).


> 
>> 	Well, I would like to see how you achieve the required microsecond
>> synchronization across multiple flow active at the AQM hop, on a > 20 ms
>> path, in my layman's view the ACK-"clock" is not really precise enough for
>> this. I am sure this works for DCTCP in the datacenter, but there RTT probably
>> is < 1 ms to begin with.
>> 
>>> In other words, past the initial window, you never send more data unless
>> you
>>> receive an ACK that lets you slide your sending window.
>> 
>> 	Sure, but if say 10 more flows start up and hit the AQM bottleneck,
>> the old send timing will be wrong; my question is how long does it take to re-
>> synchronize all L4S flows again to achieve the empty queue?
>> 
>>> 
>>> All data packets that traverse a given link are "spread" by the bottleneck
>> ingress
>>> router (i.e., they are serialized over that bottleneck link, one at a time).
>> These
>>> packets, even if initially sent at the same time, will now arrive at different
>> times
>>> to their destination (i.e., wake their corresponding TCP stacks at different
>>> moments). This will results in ACKs also sent at different times (and also
>> serialized
>>> at different times by the bottleneck link). This will cause the next data-
>> packets to
>>> no longer be sent at the same time, as the ACKs allowing them to be sent
>> will not
>>> be received simultaneously. Note that this is an over-simplification (see
>> e.g., [1,2]
>>> for more thorough analyses of classic TCP and [3] for DCTCP).
>> 
>> 	Sure, but that just desynchronizes them, for you scheme to work
>> IMHO you require more than de-phasing, you need each sender to send at
>> that point in time that this packet will basically encounter an empty queue at
>> the AQM
> 
> I am not certain I understand where this us synchronization requirement came
> from, as we're not speaking here of TSN/detnet.

	The synchronisation requirement comes from the fact, that once Packets bunch up in your queue the later packets will need to wait for the earlier packets to clear; queueing delay is a function of how-many bytes need to be pushed out at a given rate before the current packet gets pushed out (I am simplifying here of course). To guarantee ultra-low queueing delay _you_ need to make sure all L4S senders at the bottleneck spread their packets such that there is minimal bunch-up in the AQM queue. And that requires IMHO a somewhat stricter synchronisation of the senders than the simple de-phasing that will help spread out the packet arrival times from different senders that started fully synchronized.


> 
> We're not requiring sender to synchronize themselves (although they eventually
> will if running in a stable environment, as shown by prior research), we're directly
> giving them feedback through CE marks if their packets caused the L4S queue to 
> build up (typically using a 1ms step threshold). The L4S queue does not have to
> be empty, it has to contain e.g., less than 10 1500bytes packets on a 120Mbps
> link.
> Any more than that, and the receiver will echo the CE marks when ACKing
> the received burst of packets, causing the sender to backoff linearly wrt. the 
> number of marks when sending its next burst.
> Senders are also required to backoff if they take more than fair share of BW,
> i.e., if they receive the random marks due to the buildup of the classic queue.

	Agreed on all of this, it does not address my point though.

> 
>> again I am not sure how this is going to work over a partially
>> congested 20ms+ link. If you could point me to data showing how L4S deals
>> with this (preferable gracefully, I hope) I would be thankful.
> 
> The throughput you get over a  network path with a "partially congested link"
> is the available BW over the most congested link/the one with the smallest rate.
> This where the AQM has to be (and is usually the access link).
> It is true that converging with 20ms is slower than with 1ms (i.e., DCTCP 
> currently end up under-utilizing the link for flows lasting only a few packets, see 
> draft-ietf-tsvwg-ecn-l4s-id §A.2.3). 

	So what is the plan to tackle this? Especially in the light of competent AQMs in the path, that might not necessarily show a strong correlation between queue build-up and measurable queueing delay?

> 
>> BTW, the cited DCTCP paper says "While DCTCP converges slower than TCP,
>> we found that its convergence rate is no more than a factor 1.4 slower than
>> TCP." while I believe that L4S would need something that converges faster
>> than TCP if ultra-low queueing delay is to be achieved reliably and robustly; I
>> guess I am still missing something...
> 
> This is a known limitation with DCTCP indeed.
> See draft-ietf-tsvwg-ecn-l4s-id §A.2.3 The main challenge there is properly 
> estimating the bottleneck BW without overshooting (i.e., building up a 
> queue).
> 
> The key here is that the slower convergence causes under-utilization, not 
> queue buildup (cfr. DCTCP stability analysis).

	Good, thanks for pointing that out.

Best Regards
	Sebastian


> 
> 
> Best,
> Olivier