Re: ECN in QUIC

"Brian Trammell (IETF)" <ietf@trammell.ch> Wed, 20 September 2017 14:15 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 1F04A134216 for <quic@ietfa.amsl.com>; Wed, 20 Sep 2017 07:15:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 vjfeHk0bheLv for <quic@ietfa.amsl.com>; Wed, 20 Sep 2017 07:14:57 -0700 (PDT)
Received: from capri.iway.ch (capri.iway.ch [IPv6:2001:8e0:40:325::45]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 59BAA13320B for <quic@ietf.org>; Wed, 20 Sep 2017 07:14:57 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id AD7A3340D5A; Wed, 20 Sep 2017 16:14:55 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/18338.15064); Wed, 20 Sep 2017 16:14:55 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS; Wed, 20 Sep 2017 16:14:55 +0200 (CEST)
Received: from [195.176.111.14] (account ietf@trammell.ch HELO public-docking-cx-0363.ethz.ch) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.18) with ESMTPSA id 30260619; Wed, 20 Sep 2017 16:14:55 +0200
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
Message-Id: <77BE2627-FAF0-4347-8DFF-60D190119ACC@trammell.ch>
Content-Type: multipart/signed; boundary="Apple-Mail=_E2322C38-47CF-4C49-80CA-AA257783CDB6"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: ECN in QUIC
Date: Wed, 20 Sep 2017 16:14:54 +0200
In-Reply-To: <CAKcm_gMbxEMcq4UaQ9R_iGgXSpKJHzA67VMg2ZXDg2K1OhdUNA@mail.gmail.com>
Cc: QUIC IETF mailing list <quic@ietf.org>
To: Ian Swett <ianswett@google.com>
References: <AM3PR07MB34048E916A7B18695313171C2820@AM3PR07MB340.eurprd07.prod.outlook.com> <8E718F38-88DB-4E1D-BC1B-1C0F0E9E5C34@csperkins.org> <DB4PR07MB348F7E2CFAF1574F838ED8CC2610@DB4PR07MB348.eurprd07.prod.outlook.com> <CAKcm_gMbxEMcq4UaQ9R_iGgXSpKJHzA67VMg2ZXDg2K1OhdUNA@mail.gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5LcC3E9aUYJc4vVCLCsa5069gtg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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 Sep 2017 14:15:00 -0000

hi Ian, all,

delurking momentarily to say...

> On 20 Sep 2017, at 14:41, Ian Swett <ianswett@google.com> wrote:
> 
> 
> On Wed, Sep 20, 2017 at 4:39 AM, Ingemar Johansson S <ingemar.s.johansson@ericsson.com> wrote:
>> Hi
>> 
>> 
>> 
>> And sorry for the sloth-ish response (you should see me type  a text message..).
>> 
>> To summarize the two main questions
>> 
>> 	• ECN in ACK frame or in a separate frame : Given the recent discussion on the list and fear that the ACK frame is already enough complex, it seems unwise to try to cram in additional info in the ACK frames. So my personal feeling is that we should use a separate frame type for ECN , but this frame type must be a MUST to implement and support ! Comments are very welcome.
> 
> I was neutral on this before, but I started thinking about implementing this, and separating the frames makes it more complex, and potentially really, really difficult to get the implementation correct.  As an example, if the frames were accidentally sent in two separate packets, I would count the packet as acked, and potentially increase the congestion window and other state variables.  I might even send an extra packet based on this information.  Then in the next packet I'd realize that packet had an ECN marking, and actually should have been treated as lost from a congestion controller perspective.  In order to do this correctly, I'd have to undo a bunch of things.  My experience with undo is that it's terribly error prone, and I would never recommend it.

What Ian said. This is a tradeoff between complexity in frame structure (and therefore frame parsing) and complexity in handling congestion control dynamics in an environment in which we'll be receiving both loss and explicit congestion control signaling. Careful design of the frame structure and decent testing can mitigate the risk that the former will cause problems. The latter is a scary swamp filled with nightmares no matter what you do.

Cheers,

Brian

> Alternately, the ack could get lost, and the next packet would convey ECN marking information for packets that hadn't been acknowledged yet.  Which is just weird.
> 
> If we require support for ECN, then the implementation has a certain extra level of complexity.  As illustrated above, putting it in one frame is actually simpler overall if the congestion controller needs to use all the information at once to be implemented correctly.  This same logic applies to timestamps as well, in my opinion.
> 
> 	• As regards to the level of detail : There are pros and cons with both alternatives (marked bytes or detailed indication). I would like to hear the opinions from others as well on this matter .
> 
> 
> /Ingemar
> 
> 
> 
> 
> From: Colin Perkins [mailto:csp@csperkins.org]
> Sent: den 16 augusti 2017 12:53
> To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
> Cc: QUIC IETF mailing list <quic@ietf.org>; Magnus Westerlund <magnus.westerlund@ericsson.com>; Bob Briscoe (research@bobbriscoe.net) <research@bobbriscoe.net>; Praveen Balasubramanian <pravb@microsoft.com>; Eggert, Lars (lars@netapp.com) <lars@netapp.com>; marcelo bagnulo braun <marcelo@it.uc3m.es>; Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>; Piers O'Hanlon <piers.ohanlon@cs.ox.ac.uk>; De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com>
> Subject: Re: ECN in QUIC
> 
> 
> 
> 
> 
> On 16 Aug 2017, at 10:33, Ingemar Johansson S <ingemar.s.johansson@ericsson.com> wrote:
> 
> 
> 
> Hi
> 
> 
> 
> Finally back from vacation, and very grateful for the support to continue the work to add ECN in QUIC.
> 
> Just to recap.. there were two main topics raised at the meeting
> 
> 
> 
> 1) ECN info in ACK frame or in dedicated frame : There were concerns about adding extra complexity in an already potentially complex ACK frame, one can have differing opinions about the complexity but can understand the concerns. As far as I am concerned, a separate frame type for ECN is possible, possibly one need to add information about the amount of not-ECT marked packets as well to keep the signaling robust, this needs further investigation though. One concern with a separate ECN frame is that it becomes a not-implemented or optional feature, is there any reason to be worried about this ?
> 
> 
> 
> 2) More detailed ECN information : Earlier versions of the ECN in QUIC draft (seehttps://tools.ietf.org/id/draft-johansson-quic-ecn-01.txt ) provided with examples. We (Myself, Koen, Mirja and Praveen) discussed this and we could not come up with any use case where it is beneficial to know exactly how each packet is ECN marked. I know that this kind of detailed ECN information is suggested for the generic feedback for RMCAT and I personally have a problem to see the gain with the detailed ECN information also here. Input from others is very welcome here.
> 
> 
> 
> For the RMCAT format, we wanted per-packet loss and timing information, and it was as easy to feedback per-packet ECN information along with it as to design something different.
> 
> 
> 
> A benefit of per-packet ECN marking could be to allow a congestion controller that reacted differently to bursts of consecutive ECN marks than it did to isolated ECN marks, given the same fraction of marked packets (i.e., that reacted to ECN marking events rather than ECN marking rate, like how TCP responds to loss events). I don’t think we have such a thing, but certainly in the context of RMCAT where we’re experimenting with novel congestion control schemes for traffic that has very different characteristics to traditional bulk flows, it might be plausible. Per-packet marking information is also useful for troubleshooting.
> 
> 
> 
> Certainly we need to know number of NotECT, ECT(0), ECT(1), and ECN-CE marks since the last report, but I guess that’s already possible.
> 
> 
> 
> Cheers,
> 
> Colin
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> There are a consequences with detailed ECN marking information.
> 
> a) necessary to correlate with the list of transmitted packets, this increases amount of code on sender side, not sure of that is a large concern as lookup is anyway needed to process incoming ACKs
> 
> b) necessary to embed ECN information in ACK frame ?, at least this was my conclusion when I devised the detailed ECN marking info in the 01 version of the draft.
> 
> 
> 
> Comments are welcome
> 
> /Ingemar
> 
> 
> 
> 
> 
> 
> 
> ==================================
> 
> Ingemar Johansson  M.Sc.
> 
> Master Researcher
> 
> 
> 
> Ericsson AB
> 
> Wireless Access Networks
> 
> Labratoriegränd 11
> 
> 971 28, Luleå, Sweden
> 
> Phone +46-1071 43042
> 
> SMS/MMS +46-73 078 3289
> 
> ingemar.s.johansson@ericsson.com
> 
> www.ericsson.com
> 
> 
> 
> A mistake is to commit a misunderstanding
>                      Bob Dylan
> ==================================
> 
> 
> 
> 
> 
> --
> Colin Perkins
> https://csperkins.org/
> 
> 
> 
> 
> 
>