[quicwg/base-drafts] Add application parameters to QUIC handshake and use it for H3 SETTINGS (#3086)

Nick Harper <notifications@github.com> Thu, 10 October 2019 21:51 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3FE9F1200CD for <quic-issues@ietfa.amsl.com>; Thu, 10 Oct 2019 14:51:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.998
X-Spam-Level:
X-Spam-Status: No, score=-7.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 (1024-bit key) header.d=github.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 7ERkZQ3eQ3yJ for <quic-issues@ietfa.amsl.com>; Thu, 10 Oct 2019 14:51:53 -0700 (PDT)
Received: from out-10.smtp.github.com (out-10.smtp.github.com [192.30.254.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D80C120041 for <quic-issues@ietf.org>; Thu, 10 Oct 2019 14:51:53 -0700 (PDT)
Date: Thu, 10 Oct 2019 14:51:52 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1570744312; bh=dRYfPaVTCfX+szOlo8fv2o+e+JzvpP9m9VyKTC/2ews=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=UbwxtPuzo2/LlkUwwaimEljYUgBiFXM06cv/EvcgUt1xxZzcWjsrmVBvG/DJWoReQ OWzsIX5EdeK5BFHhDDILwSDUC0lIqc+xsrU+fkUsIsLcTWkWrMsqLJk94owipO/W+Y 2KB8T1w3ofURaVPb45X6FCWcUkUU3Ca4iE5x9rsA=
From: Nick Harper <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKYQKIWJQQLDGNWD7EV3VTUIREVBNHHB4IOF7M@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3086@github.com>
Subject: [quicwg/base-drafts] Add application parameters to QUIC handshake and use it for H3 SETTINGS (#3086)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d9fa7f863fc3_6c4d3facb04cd960197358"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: nharper
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/EAxy_y9lpLNmVmTiH5SjFCay1IU>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Oct 2019 21:51:55 -0000

This was brought up on the list: https://mailarchive.ietf.org/arch/msg/quic/0ibfDvI7GndUOf3eqQZXf0aEQLA.

The summary of the proposal is to provide a place in the crypto/transport handshake where the application can negotiate application parameters in the same round trip as the crypto handshake. The purpose of this is to ensure that when the first application data packet is sent (under 0-RTT or 1-RTT keys), the endpoint sending it knows how its peer will interpret it, instead of needing to spend a round trip of application messages to negotiate settings/parameters for the application.

The other part of this proposal is to move H3 SETTINGS into this new application parameters mechanism.

My summary of the thread so far (please correct me if it's incomplete or inaccurate) is that some people want this to be considered as a v2 feature: there are concerns about getting a design that will work for all future protocols that might run on QUIC; there are also concerns about working on this delaying v1.

I think that the application parameters mechanism (at least in v1) doesn't need to solve the problem perfectly for every conceivable application, but simply needs to be "good enough" for most applications. I also think that some of the complexity (e.g. some application protocols being particularly verbose in their negotiation) will need to be solved in the spec for running a specific application over QUIC.

Whatever we do in v1 for H3 will likely be the model for other applications using QUIC (in v1 or future versions of QUIC).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3086