Re: [Masque] ECN & Flow IDs

David Schinazi <dschinazi.ietf@gmail.com> Thu, 08 April 2021 15:37 UTC

Return-Path: <dschinazi.ietf@gmail.com>
X-Original-To: masque@ietfa.amsl.com
Delivered-To: masque@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 84E8F3A09A5 for <masque@ietfa.amsl.com>; Thu, 8 Apr 2021 08:37:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 Rr9Mci0SBf59 for <masque@ietfa.amsl.com>; Thu, 8 Apr 2021 08:37:00 -0700 (PDT)
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) (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 EAFAC3A0A5E for <masque@ietf.org>; Thu, 8 Apr 2021 08:36:59 -0700 (PDT)
Received: by mail-pf1-x42c.google.com with SMTP id c17so2104429pfn.6 for <masque@ietf.org>; Thu, 08 Apr 2021 08:36:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EhLRn3VhnMMRviB0Iiq9jYN5m/r8s0HE7taZc4OQ30k=; b=BJ3BGTxPPppHiawzuhUbY5YgJUdRxMCVIYiG0OW56QztjICTX9Ks6LPPx7HwRZP8ki aR3SScuvEG9I8IG1SzxHMD7nFX0LhuFBpZ0lAGzj01x2Q/TtCFvsMchoNJRqp90Sk8aj kvC9WeWbcKg3euwOcz69fASlG2UZPapPyCJbYlriQeqNURcSf1InOHycnJT6qlhXnDwL btt2PiCzXMYaQPApW2vsvDF4iQ7nObSfnOZHNM9NiL7SJC9f5N3SENhB/C8VqyHVD4GW aWlJutd+RkjoeESMXxrRokbycKhr9yFWcscQxsXx/SbLHE2GS7dsF3z/Ch6GNHB7NFbe 0Jtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EhLRn3VhnMMRviB0Iiq9jYN5m/r8s0HE7taZc4OQ30k=; b=E5Rg8zTvBQdhzNaHNkqAdLM/RoQoyp9yV6GTIYYnBggTdLZs3EUthDsOSqwv1LpE0i I5446Simgxnt8z+y2arQDEC61E8dbSpBrZtPLpwS+9YEHF7urWHm6VvyH4Va8Q2QF0NZ 8Grxu6bTrc1olBV5wXWOwwdd7TIcFk5tsi/8zkjySVmvQUpDU2dqMRSETiH4wy1nQN82 DolVumUZw6S55XQ3284/f/dwnbKmN2xa2L7hygy1RQvi+wQSanH60pvQP8uOW0dp5iYZ YbC5agnT9Bpbz1XCIW3rhihrBf2x51gxK7H4vt8bahlqXJToasLPIweDTG1I5pyGGHDB bljw==
X-Gm-Message-State: AOAM533vDQiLC9YFmnOb9lBWbnMGHpdE892wDabeRF0bfPna6iX01jxj wJkF9/scBN3RtMPE+cMTeRf5tyu5SX+51BOl/eM=
X-Google-Smtp-Source: ABdhPJwPRH0BRoyJzzDlUsGzXf8DAvep2jlzZpxYUv3cjTRUZOWCsL3MOsWqHAEvDCsLVR/wsz61LF7gOfZX/04Smpc=
X-Received: by 2002:a62:1c8f:0:b029:209:7eb2:748f with SMTP id c137-20020a621c8f0000b02902097eb2748fmr8080287pfc.79.1617896217686; Thu, 08 Apr 2021 08:36:57 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxRmjWr-y-9-KAJmmKvGdONpPufgAbubUhPu_KaS1_Md9Q@mail.gmail.com> <CAPDSy+6go4xh4E55220upECkrept1Yb15diVhC8e3HEWsz52fQ@mail.gmail.com> <BBA47C7D-FBEC-419D-9BED-2D998EF526B0@ericsson.com> <CAPDSy+4FM+02T78r9=JvzO3D1WVKU63_Cs_n7mtKvJGR6BoeSg@mail.gmail.com> <8D2EE3EB-FBE7-4E85-A26C-5F180A02151A@ericsson.com>
In-Reply-To: <8D2EE3EB-FBE7-4E85-A26C-5F180A02151A@ericsson.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Thu, 08 Apr 2021 08:36:46 -0700
Message-ID: <CAPDSy+40KJcoJPLGFUoNwvZ_0TjNQvAAri3GSo=bSfgELADfqQ@mail.gmail.com>
To: Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
Cc: MASQUE <masque@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000056b57305bf77d1ee"
Archived-At: <https://mailarchive.ietf.org/arch/msg/masque/laiM5RHbRIUQwF9WYz-mjIzAYzw>
Subject: Re: [Masque] ECN & Flow IDs
X-BeenThere: masque@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiplexed Application Substrate over QUIC Encryption <masque.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/masque>, <mailto:masque-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/masque/>
List-Post: <mailto:masque@ietf.org>
List-Help: <mailto:masque-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/masque>, <mailto:masque-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Apr 2021 15:37:05 -0000

On Thu, Apr 8, 2021 at 1:56 AM Mirja Kuehlewind <
mirja.kuehlewind@ericsson.com> wrote:

> Hi David,
>
>
>
> please see inline.
>
>
>
> *From: *David Schinazi <dschinazi.ietf@gmail.com>
> *Date: *Wednesday, 7. April 2021 at 19:53
> *To: *Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
> *Cc: *MASQUE <masque@ietf.org>
> *Subject: *Re: [Masque] ECN & Flow IDs
>
>
>
>
>
>
>
> On Wed, Apr 7, 2021 at 10:00 AM Mirja Kuehlewind <
> mirja.kuehlewind@ericsson.com> wrote:
>
> Hi David, hi all,
>
>
>
> to also add to your question about multiple flow IDs. I guess we kind of
> agree that we don’t want flow ID for ECN information, as adding two bits is
> simple enough, however, then it is actually not fully clear to me why
> multiple flow IDs per connect request are needed. You briefly mentioned
> other extension below, however, not all, or only very few information,
> require per-packet information (as it was used for the ECN example).
>
>
>
> Imagine an extension to CONNECT-IP that allows compressing IP addresses.
> That would change the datagram format.
>
>
>
> For compression I would usually think that things are negotiated on a per
> connect association basis and that you doesn’t necessarily need to provide
> any information on a per packet basis. However, if there are any per packet
> information needed, you can always add another extension specific field
> after the flow ID.
>
>
>
> If you want to actually send multiple flows/connections to the same server
> you, can always send multiple connect requests. That’s slightly more
> overhead at connection establishment but not much, and I would say it’s
> architecturally more clean and therefore also simpler.
>
>
>
> That wouldn't work because two separate requests have (a) different
> lifetimes and (b) can land on different HTTP backends.
>
>
>
> If you have two different UDP “connections” without a proxy in between,
> this is the same, no? Maybe we are talking about different scenarios here?
>

If it's the same "connection" (let's say different ECN values for the same
UDP "connection", or different compression contexts for the same IP tunnel)
then you need to go through the same backend. That's why you need a way to
use multiple encodings in one "connection".

David


> Mirja
>
>
>
>
>
>
>
> David
>
>
>
> Mirja
>
>
>
>
>
> *From: *Masque <masque-bounces@ietf.org> on behalf of David Schinazi <
> dschinazi.ietf@gmail.com>
> *Date: *Wednesday, 31. March 2021 at 02:36
> *To: *Martin Duke <martin.h.duke@gmail.com>
> *Cc: *MASQUE <masque@ietf.org>
> *Subject: *Re: [Masque] ECN & Flow IDs
>
>
>
> The trivial other approach to solving ECN would be to prefix the UDP
> payload with a type byte that contains the two ECN bits and 6 unused bits.
>
> That would definitely work, and therefore I don't think ECN is a good
> example to use as a discussion starter for how flow IDs are managed.
>
> I wrote that draft to test out the extensibility of the CONNECT-UDP
> design, I'm not planning on moving it forward at this time.
>
>
>
> More conceptually, the main question is whether we allow one
> client-initiated bidirectional stream to map to multiple datagram flow IDs.
>
> The approach I've taken is to say yes: that allows us to reuse the flow ID
> multiplexing logic to encode additional information in the flow ID.
>
> You could build something isomorphic to this where you say no and have one
> flow ID per stream, and then add a second varint right after the flow ID.
>
> Since datagrams have to fit in a QUIC packet, adding more varints eats
> into available datagram MTU which makes me prefer the multiple flow IDs per
> stream approach.
>
> Both are pretty much equivalent in terms of implementation complexity:
> either way you need a hash table mapping from a varint to what that varint
> means.
>
> There is more complexity in how you convey that mapping (right now this is
> done using parameters on the Datagram-Flow-Id header), but I don't think
>
> requiring one flow ID per stream solves any of that complexity, you'll
> still need a way to convey extension information. The ECN example is so
> simple that
>
> it doesn't require sending much extension information, but if you look
> further at enabling optional IP header compression in CONNECT-IP, then
> you'll want
>
> a way to associate a varint with which IP addresses you're compressing.
>
>
>
> I think the question we have to answer becomes: do we want MASQUE
> protocols to be extensible? Our options are:
>
> - disallow extensibility and slightly simplify the protocol
>
> - allow extensibility via multiple flow IDs per stream, and deal with the
> slight complexity
>
> - allow extensibility with a single flow ID per stream, and deal with the
> slight complexity
>
> Personally, I feel strongly that we should allow extensibility.
>
>
>
> David
>
>
>
>
>
> On Tue, Mar 30, 2021 at 3:40 PM Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
> Hello MASQUE,
>
>
>
> At IETF 110 there was a lot of good discussion challenging the foundations
> of the CONNECT-UDP framework, including the relationship between streams
> and Flow-IDs. While CONNECT-UDP happens to use flow IDs somewhat
> incidentally, the real action with the controversial
> multiple-flow-id-per-CONNECT happens in David's (unadopted) ECN draft:
> https://datatracker.ietf.org/doc/draft-schinazi-masque-connect-udp-ecn/
>
>
>
> Leading up to the interim, it would be great if one of the detractors of
> the flow-id mapping submitted their own approach to solve ECN. This would
> help to illuminate the tradeoffs. Speaking as an individual, I am also
> hoping to move the ECN work forward and having another design would help to
> do that.
>
>
>
> Thanks,
>
> Martin
>
> --
> Masque mailing list
> Masque@ietf.org
> https://www.ietf.org/mailman/listinfo/masque
>
>