Re: Heads up -- unifying of multipath options.

Dave Taht <dave.taht@gmail.com> Mon, 13 June 2022 14:02 UTC

Return-Path: <dave.taht@gmail.com>
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 96A75C15AAC4 for <quic@ietfa.amsl.com>; Mon, 13 Jun 2022 07:02:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 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, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V0JZqrwLuRba for <quic@ietfa.amsl.com>; Mon, 13 Jun 2022 07:02:45 -0700 (PDT)
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6F749C14F722 for <quic@ietf.org>; Mon, 13 Jun 2022 07:02:45 -0700 (PDT)
Received: by mail-ej1-x62a.google.com with SMTP id kq6so11346622ejb.11 for <quic@ietf.org>; Mon, 13 Jun 2022 07:02:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=WkOaQfARO04rmVS7W1wJerC4rASWATFnYD+Xcz4HM18=; b=a/iEwPO7l8GSpBdkioENomPCA1tTXCfCfGUAZWINn2w3QANPe4xbMUxoIPxZNfktOR cWsQZoRlj2wTJm+0okomba0bCnK4LLwIsEl+3fKsfHrYdbwRM9JXTnCQWbTwwrVbt+Nb yu8zlOg31i0CZGX1IndOEUmRXYNzsT+T0CJD36ngvdjcmnkOdwKi1txfxn0KBsQ148Mx wqAUEU23GTk5ZG/XpzjxWLW72ExhX2GT0GB/RFHfitbK0an/lZn75J/f1yFdEWI/euex 2ICR7aa7cPuce7S0uiK1lSTyMYlu/Y0mydOsGd7y+GBwLPx6Ccyol+PG4dyKpYmXPnsD SvFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=WkOaQfARO04rmVS7W1wJerC4rASWATFnYD+Xcz4HM18=; b=75xEkCHKbqRIF+3EAS//nVy5OwznA3OXgpl4Hi+yqyalIyqY6qEfFfbpXWNChgHfJf 1KIJ+8MYMSwB+zh1HqpLc60MVL2l7lK5kkInQrIKxekM1Sv8Hf0Q5Dqh9Q1+gGDFc5Vr jRyjb8zzpTD2YUhsFZb/iaSc7IvCtFoNFrxR0R3zybUnggzNdS346WHLJtd9GSyhCxpS gusahyn0mZvhBMlLfpWEy/kkMwj/xheGsZJyr0RSTrJ/H59+1SSaK1VcIdzLHtujWw2/ EYWAirPtowSJVYGqKpQSueUTFLnjjFaFHmCL82TmrxK83b8hIniX8LDtoEayLBvWmLOJ nl0g==
X-Gm-Message-State: AOAM531+iQx0zwk2dkDTIAWqbG2JbpEqdVFBAdfHzUujrC6MqeZbAC7h oBchZQzTKzCfY2+7IXJm5fgp0EAanNWibNQ51AU=
X-Google-Smtp-Source: ABdhPJzw7p8p17FGwj9wQF+QHS9iDzBqfC+jdPqR/AdsyMKRr60f1Q7PPkMSZKVHq4Sd9mnb6xVAzzZ7L9dVodxJq0s=
X-Received: by 2002:a17:906:748b:b0:712:2a23:7395 with SMTP id e11-20020a170906748b00b007122a237395mr33936ejl.666.1655128963485; Mon, 13 Jun 2022 07:02:43 -0700 (PDT)
MIME-Version: 1.0
References: <1c4843da-5503-f02e-00bb-288c5d6aa5c6@huitema.net> <14686ee3-a31b-bbd9-3016-4ac4081353e8@ericsson.com>
In-Reply-To: <14686ee3-a31b-bbd9-3016-4ac4081353e8@ericsson.com>
From: Dave Taht <dave.taht@gmail.com>
Date: Mon, 13 Jun 2022 07:02:31 -0700
Message-ID: <CAA93jw6wSsktwfh=PEzQ_dFqmiGB6q27jFvtnasV9_ROiH_6PA@mail.gmail.com>
Subject: Re: Heads up -- unifying of multipath options.
To: Michael Eriksson <michael.eriksson=40ericsson.com@dmarc.ietf.org>
Cc: Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>, Rebecka Alfredsson <rebecka.alfredsson@ericsson.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/gHwj0kSiMbiyn0CdChy4ogsu2Yo>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
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, 13 Jun 2022 14:02:49 -0000

I endorse all michael's points below.

On Mon, Jun 13, 2022 at 6:33 AM Michael Eriksson
<michael.eriksson=40ericsson.com@dmarc.ietf.org> wrote:
>
> Hi Christian,
>
> Thanks for progressing this!
>
> Single vs multiple packet number spaces
>
> I used to think that a single packet number (PN) space was a cleaner and simpler solution, partly because of less difference with singlepath QUIC. A later insight is that this is mainly an issue if you add multipath to an existing singlepath stack. With a stack designed for multipath from the beginning, multiple PN spaces actually seem more straightforward and efficient. With a careful design of multiple PN spaces, there is very little difference between a singlepath connection and a multipath-enabled connection that only uses one path.
>
> Additionally: At Ericsson Research, we have Rebecka Alfredsson finishing her M.Sc. thesis and prototype of multipath QUIC hardware offload. During that work, we have realized that multiple PN spaces are more or less needed for multipath QUIC offload. The reason is the compressed packet numbers, holes in the packet number sequence makes it difficult to expand the packet number on the receiving side.
>
>
> Both single and multiple packet number spaces
>
> What you suggest is to use both single and multiple PN spaces, which I think is a mistake. The main reason is the increased complexity and double implementation.
>
>
> Zero-length connection identifiers
>
> The stated need for a single PN space is to support zero-length connection identifiers (CIDs). I think that multiple PN spaces can be used also for zero-length CIDs if the IP address and port number ("socket" in practice) is used for demultiplexing on the receiver side.
>
> Zero-length CIDs are very seldom, if ever, used on the server side. The client will normally use separate local network interfaces (e.g., cellular and Wi-Fi) for the different paths, and thus have separate sockets for the different paths anyway. The server can handle a NAT rebinding, since the different paths are separated by the connection ID and the event is handled as in RFC 9000 (i.e., path validation).
>
>
> Path Identification
>
> Each path needs to have an identity for mainly two reasons:
>
> to refer to the path in signaling frames, e.g., PATH_ABANDON.
> to avoid reusing encryption nonces when using multiple PN spaces
>
> The current draft uses the destination CID sequence number to create the nonce. Since zero-length CIDs don't have sequence numbers, they can't be used with multiple PN spaces.
>
> I suggest that the sequence number of the server's CID is used to identify the path in both directions, including for nonce generation. This has two direct advantages:
>
> It allows multiple PN spaces for zero-length CIDs on the client side
> The path has the same identity in both directions, which reduces the complexity and risk for errors
>
> "PN Space ID" should be removed from the specification and Path ID used everywhere.
>
>
> Summary
>
> I suggest that only multiple PN spaces are used for multipath QUIC. I have shown how zero-length CIDs can be used on the client side and argue that they will not be used on servers anyway.
>
>
> /me
>
> ________________________________
> From: Christian Huitema <huitema@huitema.net>
> To: mailing-lists.ietf.quic
> Subject: Heads up -- unifying of multipath options.
> Date: Thu, 9 Jun 2022 06:30:29 +0200 (Central European Summer Time)
>
> When we presented the work on QUIC multipath at the last IETF, we provided two options: one in which there is a packet number space for each path; and one in which there is a single number space. The high level summary is that the "number space per path" option allows for more precise management of packet loss recovery and congestion control, while the single number space option also works well if one of the peers use zero-length CID. The authors believe that we can "unify" the two options, as explained in the PR https://github.com/quicwg/multipath/pull/103.
>
> The PR essentially proposes to use the "packet number space per path" option when both peers generate non-zero-length connection ID, but to fall back to the "number space per path" option for managing packets sent with a zero-length CID and their acks. That, plus a number of nice provision to control code complexity. The issue was discussed on this list, in WG meetings, and on Github. We know that many WG members care about multipath and have either preferences for one or the other option, or maybe opinions about how soon we need to converge. It would be very nice if we heard opinions quickly, and even better if those opinions came before the draft submission cut-off date!
>
> -- Christian Huitema
>


-- 
FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_codel/
Dave Täht CEO, TekLibre, LLC