Re: Q and L loss bits: which is which?

"Brian Trammell (IETF)" <ietf@trammell.ch> Wed, 20 November 2019 00:16 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 255E7120133 for <quic@ietfa.amsl.com>; Tue, 19 Nov 2019 16:16:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 d1FobO_a4DUs for <quic@ietfa.amsl.com>; Tue, 19 Nov 2019 16:16:44 -0800 (PST)
Received: from smtp-sh.infomaniak.ch (smtp-sh.infomaniak.ch [128.65.195.4]) (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 A8F04120115 for <quic@ietf.org>; Tue, 19 Nov 2019 16:16:43 -0800 (PST)
Received: from smtp-3-0000.mail.infomaniak.ch ([10.4.36.107]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id xAK0GWGK005888 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 20 Nov 2019 01:16:32 +0100
Received: from [10.128.30.18] (unknown [61.8.238.244]) by smtp-3-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4B4BC1013CEF6; Wed, 20 Nov 2019 01:16:30 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (1.0)
Subject: Re: Q and L loss bits: which is which?
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
X-Mailer: iPhone Mail (16G102)
In-Reply-To: <ffa583fd76c44ad9b99427341841d740@ustx2ex-dag1mb5.msg.corp.akamai.com>
Date: Wed, 20 Nov 2019 08:16:28 +0800
Cc: Christian Huitema <huitema@huitema.net>, "alexandre.ferrieux@orange.com" <alexandre.ferrieux@orange.com>, IETF QUIC WG <quic@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <EFE60BCA-89EE-4A78-8E5B-EB8B8ED25DD9@trammell.ch>
References: <20191119143218.GB2789@ubuntu-dmitri> <24388_1574174932_5DD400D4_24388_372_7_1574174948.30247.49.camel@orange.com> <20191119150829.GD2789@ubuntu-dmitri> <20191119192622.GE2789@ubuntu-dmitri> <a21bc373-1fda-836e-7efc-599832ae575d@huitema.net> <ffa583fd76c44ad9b99427341841d740@ustx2ex-dag1mb5.msg.corp.akamai.com>
To: "Lubashev, Igor" <ilubashe@akamai.com>
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/dY54o-dRaLLu9q2WTObxaH8FbZQ>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Nov 2019 00:16:47 -0000

Hi Igor, all,

Sent from my iPhone

> On 20 Nov 2019, at 07:56, Lubashev, Igor <ilubashe@akamai.com> wrote:
> 
> Christian, I actually thought about this, and decided that the recommendation is not to decrement L counter.  It is in the -tsvwg- version of the draft but somehow did not have it into the -quic- version (keeping two versions in sync is apparently hard), sorry. (https://tools.ietf.org/html/draft-ferrieuxhamchaoui-tsvwg-lossbits-02#section-3.2)

FWIW I agree that these are the right semantics.

With these semantics, if I follow correctly, the L bit is basically signaling that the sender has detected a loss _to which it will react_ (or rather, to which it would react if it were already network limited), by reducing the congestion window, updating its loss estimate or capacity model, or whatever sending-rate-relevant parameters its congestion control and avoidance scheme uses. 

This makes the condition it is signaling pretty close to the CWR bit (if the CWR bit covered all such reactions, not just those triggered by ECN), which is basically the proposal I (poorly and cryptically) alluded to in the issue and the mic.

(Two nice properties of exposing loss reaction as opposed to raw loss: one, you’re closer to measuring what you actually care about — poor transport performance — and two, since the signal is correlated with the time series of the sending rate, statistical techniques are applicable to verifying the signal: it’s harder to lie.)

Cheers, B

> "
> If the protocol is able to rescind the loss determination later, the Unreported Loss counter SHOULD NOT be decremented due to the rescission.
> "
> 
> I thought this rule would limit the confusion of the observer who is trying to correlate Q and L bits. I'm happy to hear alternative opinions on this.
> 
> - Igor
> 
>> -----Original Message-----
>> From: Christian Huitema <huitema@huitema.net>
>> Sent: Wednesday, November 20, 2019 7:19 AM
>> To: alexandre.ferrieux@orange.com; IETF QUIC WG <quic@ietf.org>
>> Subject: Re: Q and L loss bits: which is which?
>> 
>> I am willing to do the same in Picoquic, but I would really like to get the
>> transport parameter defined first.
>> 
>> Also, I would like some clarification. The loss counter is supposedly
>> incremented using Quic's loss detection machinery, but the loss detection
>> mechanism sometimes err on the false positive side. This is detected if an ack
>> arrive late for a packet that was supposed lost, and the loss is classified as
>> spurious.
>> 
>> Any guidance on how to handle spurious loss detection?
>> 
>> -- Christian Huitema
>> 
>>> On 11/20/2019 3:26 AM, Dmitri Tikhonov wrote:
>>> I added a loss bits server on
>>> 
>>>    http3-test.litespeedtech.com:4440
>>> 
>>> Feel free to give it a shot!
>>> 
>>> Both lsquic server and client can be compiled with loss bits support
>>> by doing
>>> 
>>>    EXTRA_CLFAGS=-DLSQUIC_LOSS_BITS=1 cmake ....
>>> 
>>> The code is on a branch for now:
>>> 
>>> 
>>> 
>> https://github.com/litespeedtech/lsquic/commit/0b83dfa304bcd9750b67e62
>>> 97416ce493d9fb5b1
>>> 
>>>  - Dmitri.
>>> 
>>>> On Tue, Nov 19, 2019 at 10:08:29AM -0500, Dmitri Tikhonov wrote:
>>>> On Tue, Nov 19, 2019 at 03:49:08PM +0100,
>> alexandre.ferrieux@orange.com wrote:
>>>>> Thanks for your offer: experimentations are very welcome !
>>>>> You're right we forgot to just define which is what, we'll fix the
>>>>> draft shortly. We'll choose: 0x10 for Q and 0x08 for L.
>>>>> This means the first byte layout becomes:
>>>>> |0|1|S|Q|L|K|P P|
>>>> Thank you!
>>>> 
>>>> I also assume that these two bits would now be outside of the header
>>>> protection?  That is, the short header header protection mask [1] is
>>>> now 0x7 instead of 0x1F?  This is not mentioned in your draft, but I
>>>> don't see how an observer could get at those bits otherwise.
>>>> 
>>>>  - Dmitri.
>>>> 
>>>> 1. https://tools.ietf.org/html/draft-ietf-quic-tls-24#section-5.4.1
> 
>