Re: Demultiplexing QUIC
Marten Seemann <martenseemann@gmail.com> Sun, 23 July 2023 18:14 UTC
Return-Path: <martenseemann@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 B8B85C15108A for <quic@ietfa.amsl.com>; Sun, 23 Jul 2023 11:14:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.094
X-Spam-Level:
X-Spam-Status: No, score=-7.094 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_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VFH8o2lw7bvu for <quic@ietfa.amsl.com>; Sun, 23 Jul 2023 11:14:49 -0700 (PDT)
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) (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 E7034C151070 for <quic@ietf.org>; Sun, 23 Jul 2023 11:14:44 -0700 (PDT)
Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-52227884855so1088785a12.1 for <quic@ietf.org>; Sun, 23 Jul 2023 11:14:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690136082; x=1690740882; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XF+Fq+P9IIAVbUEWYkdN3hZwF1VnLtxJmsDzoga9LTA=; b=B25XuWECsmPqjRk3ldhBputWSIvvCR4L+frlhJGxd6SSSmnfAoPaUppl+Sg8seWWHK Ck6nnU7Im2OQtDK3IgMyRr/Rgk0ApgPUd+XUyqpygIMfpROBjpYCeOLSbW4gJNfxJowp ApnO7bqlzBNczUWFtWwtoL1aOLZA8cZ89pr0KTeFAL/xWFec3EJFPM1KJzYKZ5gCR4Wu x85+nzPhW6ylUnnMimk3eR1uPqen1q9E80dUmgyZEl+KWOxvL+FsBH4ZLBvj4R5my9Df Wyaax+XL6OtF4/2685+3oCOkMXxOtrGsssPjZBM7LIDaNIRd97ivVXVbwEK4NGMboPRF ZfyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690136082; x=1690740882; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XF+Fq+P9IIAVbUEWYkdN3hZwF1VnLtxJmsDzoga9LTA=; b=UUSs1k811OReWf0BXJtw7q9KxrtvpNIW37VgiSJ9mUAv780+J9Wj/Gryj549dJ5vbv z62G13e4qkirnW4NjHYwwDtb7xfwZTT91M5IHpDF4CbU3S0tixc+vuTDjbZjMM7Lej6B dmv4vCustsx/PXKEAZt+M7T3zeKgW6JfBJcRXm1YmlIXBmHuWZdw7ZGqn6atcNx/pPbG ysEaJhdkDTY1gPi/eiVbYOAHy9E68ebvq9dzLefGkV5Dk320gl/w4aW04Yc6jQ0rmq3h jI/4tSzzZYYvMFddVu92GzudQZbYRoedPE64ML2P4dsCypkAAJ2DfpP7pjwbdZufSJtm i24g==
X-Gm-Message-State: ABy/qLZTjlzOcxmW3BkBTXt4AkZHGu8AXHR5dDImLO7laZ2fUaAtsebP vFN5wKTC////S7M7TfgRV2aWX8M1aHEDBVdRMD4CCOKl
X-Google-Smtp-Source: APBJJlFTzdS+yX/VO8C7xqJqkaFPkjkCLlmQI3ytQzqAu/Iag53nPNNgnRWsx+5JSG6VqAtRNyEl9VJW7hl/G017yWg=
X-Received: by 2002:aa7:d4d2:0:b0:51d:e561:a9ab with SMTP id t18-20020aa7d4d2000000b0051de561a9abmr6922618edr.16.1690136082140; Sun, 23 Jul 2023 11:14:42 -0700 (PDT)
MIME-Version: 1.0
References: <CAOYVs2o+KTz=0vO+a=c_3ORGLHGyKJGQKK=DCqW3bAbh-LvbOA@mail.gmail.com> <CANatvzzqiDCbk_SERYTXaj9jeurDUVfKc=9kXMYs25BhnmLxKg@mail.gmail.com> <CALGR9oYRw0nsO19YT5V32BOE3LBNbWMiYFE7ajUezKbU+z1mzQ@mail.gmail.com>
In-Reply-To: <CALGR9oYRw0nsO19YT5V32BOE3LBNbWMiYFE7ajUezKbU+z1mzQ@mail.gmail.com>
From: Marten Seemann <martenseemann@gmail.com>
Date: Sun, 23 Jul 2023 11:14:30 -0700
Message-ID: <CAOYVs2qxtxBqCTcKqVTCAZtZ8KayF5JYb9fg3Je6GKyVgbtWAg@mail.gmail.com>
Subject: Re: Demultiplexing QUIC
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000cc5e8706012b785f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/HHy3wxS9yL-v55NaJp3E12KGrA0>
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: Sun, 23 Jul 2023 18:14:53 -0000
A server deployed on the public internet never knows what other protocols the client is demultiplexing with QUIC, so the QUIC bit always needs to be set to 1. Maybe this should even be a "MUST, unless the server has out-of-band knowledge that the client is not demultiplexing"? As Lucas pointed out, the fact the client is offering the Greasing the QUIC Bit extension can be seen as an indication that the client doesn't care about demultiplexing, but it's unlikely that the server would be able to (or willing to) parse the transport parameters for a QUIC version that it's going to send a Version Negotiation packet for. On Sun, 23 Jul 2023 at 11:04, Lucas Pardue <lucaspardue.24.7@gmail.com> wrote: > Hey, > > On Sun, Jul 23, 2023 at 6:40 PM Kazuho Oku <kazuhooku@gmail.com> wrote: > >> 2023年7月22日(土) 15:24 Marten Seemann <martenseemann@gmail.com>: >> >>> RFC 9443 defines how to demultiplex QUIC from a whole range of other >>> protocols. Packets in the range 128..191 (i.e. all packets starting with >>> 0b10xxxxxx) are supposed to be forwarded to RTP/RTCP. >>> >>> This mostly works, since QUIC v1 packets (both short and long header) >>> define the "QUIC bit", the second bit (0x40) to be set to 1. On the other >>> hand, Version Negotiating packets are defined as 0b1xxxxxxx, where the last >>> 7 bits are an arbitrary value. RFC 8999 defines these bits as unused, and >>> it's up to the server to decide how to set these bits. Specifically, it's a >>> valid strategy to set them to a fixed value. If that value starts with a 0, >>> Version Negotiation packets would be consistently mis-classified as RTP >>> packets. >>> >>> Section 17.2.1 of RFC 9000 says that servers SHOULD set the first of the >>> unused bits to 1 "where QUIC might be multiplexed with other protocols". >>> This advice is fine for some deployments, but in the general case, the >>> server has no way of knowing what other things the client is demultiplexing >>> on the same UDP socket. >>> >> >> I actually think that this "where QUIC might be multiplexed other >> protocols" could be an error in RFC 9000. FWIW, this condition was >> introduced very late, in https://github.com/quicwg/base-drafts/pull/4744. >> >> I think what we really wanted to mean here is "unless an endpoint knows >> that the peer is not demultiplexing." >> > > I tend to agree with this. > > Interestingly, the Greasing the QUIC Bit RFC claims "The second-most > significant bit of the first byte in every QUIC packet is defined as having > a fixed value in QUIC version 1 [QUIC > <https://www.rfc-editor.org/rfc/rfc9287.html#RFC9000>]." but that is > clearly not true for the Version Negotiation packet because the requirement > is only a SHOULD. I don't think the grease setting really applies though, > because the server wouldn't know to apply it. Therefore if a sever knows > the client doesn't need the bit for demultiplexing, perhaps it "SHOULD > set the QUIC Bit to an unpredictable value"? > > Cheers > Lucas >
- Demultiplexing QUIC Marten Seemann
- Re: Demultiplexing QUIC Kazuho Oku
- Re: Demultiplexing QUIC Lucas Pardue
- Re: Demultiplexing QUIC Marten Seemann
- Re: Demultiplexing QUIC Kazuho Oku
- Re: Demultiplexing QUIC Christian Huitema