Re: ECN in QUIC connection migration

Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> Mon, 12 February 2018 15:26 UTC

Return-Path: <mirja.kuehlewind@tik.ee.ethz.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 4941312D7E3 for <quic@ietfa.amsl.com>; Mon, 12 Feb 2018 07:26:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, T_RP_MATCHES_RCVD=-0.01] 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 SvGiT99NmoCy for <quic@ietfa.amsl.com>; Mon, 12 Feb 2018 07:26:26 -0800 (PST)
Received: from virgo02.ee.ethz.ch (virgo02.ee.ethz.ch [129.132.72.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6D2BE12D0C3 for <quic@ietf.org>; Mon, 12 Feb 2018 07:26:25 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by virgo02.ee.ethz.ch (Postfix) with ESMTP id 3zg8dr2TFwz15JYh; Mon, 12 Feb 2018 16:26:24 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at virgo02.ee.ethz.ch
Received: from virgo02.ee.ethz.ch ([127.0.0.1]) by localhost (virgo02.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5VNIluRSjmLe; Mon, 12 Feb 2018 16:26:22 +0100 (CET)
X-MtScore: NO score=0
Received: from [192.168.178.33] (i577BCE78.versanet.de [87.123.206.120]) by virgo02.ee.ethz.ch (Postfix) with ESMTPSA; Mon, 12 Feb 2018 16:26:22 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\))
Subject: Re: ECN in QUIC connection migration
From: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <HE1PR0702MB36256D92C008302CBD908DE9C2F20@HE1PR0702MB3625.eurprd07.prod.outlook.com>
Date: Mon, 12 Feb 2018 16:26:21 +0100
Cc: "De Schepper, Koen (Nokia - BE/Antwerp)" <koen.de_schepper@nokia-bell-labs.com>, "ekinnear@apple.com" <ekinnear@apple.com>, "Lubashev, Igor" <ilubashe@akamai.com>, Ian Swett <ianswett@google.com>, QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>
Content-Transfer-Encoding: quoted-printable
Message-Id: <EFA61DBC-1F6F-49C2-906C-D0054F2341C7@tik.ee.ethz.ch>
References: <HE1PR0702MB36252D61A7A51B848B5DA9E7C2FA0@HE1PR0702MB3625.eurprd07.prod.outlook.com> <639A6936-34F2-4C27-973A-EEAE878677FA@apple.com> <VI1PR0701MB2126E79A17DB715F6C91EA05B9F90@VI1PR0701MB2126.eurprd07.prod.outlook.com> <HE1PR0702MB36256D92C008302CBD908DE9C2F20@HE1PR0702MB3625.eurprd07.prod.outlook.com>
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
X-Mailer: Apple Mail (2.3445.5.20)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/NgV02J_EgHDIxX4kCLYq1lF2SjY>
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: Mon, 12 Feb 2018 15:26:29 -0000

Hi Ingemar,

two points. 

I think it would be good to be as explicit as possible here, therefore I would prefer if an endpoint that knows that it can not access the ECN IP bits indicates this directly in the handshake. In this case no further testing is needed.

Further, the path testing itself is independent of QUIC and can be used for any protocol. Moreover, it’s more complicated than just testing ECT. I guess the general advice here is to remember which codepoints were send and compare this to the feedback provided. If discrepancies are observed that indicate that a middlebox has changed these bits, all packets should be marked as no-ECT (while additional testing MAY be performed at any later point in time). However, how exactly this testing should look like, should not be specified in this doc (but more generally).

Mirja


> Am 09.02.2018 um 08:34 schrieb Ingemar Johansson S <ingemar.s.johansson@ericsson.com>:
> 
> Hi Eric, Koen + others
>  
> Thanks for the comments and the update. A question to the rest of the audience, does the presented text explain sufficiently enough how ECN works with connection migration ?
> https://github.com/quicwg/base-drafts/wiki/ECN-in-QUIC#transport-draft-connection-migration
>  
>  
> /Ingemar
>  
>  
> From: De Schepper, Koen (Nokia - BE/Antwerp) [mailto:koen.de_schepper@nokia-bell-labs.com] 
> Sent: den 2 februari 2018 15:44
> To: ekinnear@apple.com; Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
> Cc: QUIC WG <quic@ietf.org>; Ian Swett <ianswett@google.com>; Lubashev, Igor <ilubashe@akamai.com>; Christian Huitema <huitema@huitema.net>
> Subject: RE: ECN in QUIC connection migration
>  
> Hi Ingemar,
>  
> I also read again through the document, and had following comments:
>  
> I replaced:
> “The ACK_ECN frame is used to convey ACKs when the ECN capability exchange concludes that ECN should be used for the given connection.”
> Originally it sounds as if the counters are not echoed anymore if the ECN capability check fails. I assume this was not the intention, but if it is: First, we don’t have a protocol or decision point defined when that condition is met (sender should let the receiver know in the next packet), and second, I would always send the echo, as we might “try again later (with another ECT?)”, or might decide to use the ECN bits differently later.
>  
> I also changed the text around the connection migration, I think before Eric reviewed it. I made it such that every new path creates a new connection state with an initialized congestion control state and ECN counters (at least ECN counters reset to 0s). Not sure if this matches with the other sections in the QUIC draft.
>  
> I also had the thought whether it was really needed to have the 2 cases. I agree we should simplify, by just starting over and doing the check unconditionally whether it was successful or not in a previous path.
>  
> Regards,
> Koen.
>  
> From: ekinnear@apple.com [mailto:ekinnear@apple.com] 
> Sent: Friday, February 2, 2018 12:02 AM
> To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
> Cc: QUIC WG <quic@ietf.org>; Ian Swett <ianswett@google.com>; Lubashev, Igor <ilubashe@akamai.com>; Christian Huitema <huitema@huitema.net>; De Schepper, Koen (Nokia - BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com>
> Subject: Re: ECN in QUIC connection migration
>  
> Hi Ingemar, 
>  
> This generally looks good to me!
> A few questions and observations: 
>  
> There are two unique cases:
> 
>                 • ECN capability check successful at initial connection setup
>                 • ECN capability check failed at initial connection setup
>  
> Are these actually any different in terms of action taken by an endpoint?
> It seems like on the new network path the endpoint would go through the same process of: (a) verify ECN capability and if successful to whatever degree then (b) run the rest of the ECN machinery as appropriate.
>  
> In other words, as long as you allow people to start using ECN upon migration (in other words, to allow starting it after the initial connection establishment), then the specifics for ECN with migration is essentially one statement, which is “do the ECN process on each new network path that you use”. 
>  
> Connection migration has impact on the number of reported CE marked packets. A new connection state with new congestion control state and ECN counters is instantiated at the sender and receiver. The ECN counters MUST start from zero again.
>  
> This seems fine to me, it’s inline with the rest of the congestion control/loss recovery state that also needs to be reset for the new path. 
>  
> Given that each migration requires at least one exchange of packets at the beginning (at the very least for address validation from the side of the endpoint that didn’t migrate), it seems like that’s an excellent moment to mark the packets and perform the ECN capability detection. Those packets are also likely padded, etc. similar to initial packets since they’re on a previously unused network path. 
>  
> I think the current proposed requirement of just using the “first” packets and marking those is sufficient (and good to avoid any requirement as to which frames are contained in those packets), since we are always exchanging packets in both directions immediately after migration. 
>  
> This has the added benefit such that any endpoint “probing” possible network paths could include the bits necessary to detect ECN capability on the path being probed, so it could even know before migrating whether or not it would be able to use ECN on that new path. 
>  
> Thanks,
> Eric
>  
>  
>  
> 
> On Feb 1, 2018, at 3:07 AM, Ingemar Johansson S <ingemar.s.johansson@ericsson.com> wrote:
>  
> Hi
> I have written up different aspects of connection migration and how it plays with ECN.
> https://github.com/quicwg/base-drafts/wiki/ECN-in-QUIC#transport-draft-connection-migration
>  
> A caveat.. I am a bit unsure about the definition of connection migration . My interpretation is that a client moves to a new IP address due to e.g. a NAT rebind or switch from WiFi to cellular, right ?. Is a new connection instantiated at a connection migration ? 
>  
> /Ingemar
>  
> ==================================
> Ingemar Johansson  M.Sc.
> Master Researcher
>  
> Ericsson Research
> Network Protocols & E2E Performance
> 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
>  
>                  You can't start a fire
>   Worrying 'bout your little world falling apart
>                Bruce Springsteen
> ==================================