Re: [quicwg/base-drafts] Consider making h3 frame types varint (#2253)

Kazuho Oku <notifications@github.com> Mon, 31 December 2018 08:58 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 087EE12F1AB for <quic-issues@ietfa.amsl.com>; Mon, 31 Dec 2018 00:58:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.065
X-Spam-Level:
X-Spam-Status: No, score=-8.065 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-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 G-j9mVj8e1yi for <quic-issues@ietfa.amsl.com>; Mon, 31 Dec 2018 00:58:09 -0800 (PST)
Received: from out-12.smtp.github.com (out-12.smtp.github.com [192.30.254.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 295C612875B for <quic-issues@ietf.org>; Mon, 31 Dec 2018 00:58:09 -0800 (PST)
Date: Mon, 31 Dec 2018 00:58:08 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1546246688; bh=cjnslgBU9mxDahtINy0PnzRCovKLJ4EZKFN/xxsVG5E=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=K8/tf/0YpD3anICY8qeCQa8Txp1YPfeKoUfVr0unqg+u06br3WWz5aCQNrQJlVLcX oNkUvztom2Mdt9LkV90O/jCpa5NCNLDTYxRsfYGa2Oyyv5UHPTpJmYohiyZRJZOKxp OovK6n/JEPh5LNI4xXQ+oYr8Vq0gWDVQ3CnKacRI=
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab48303c3092b1231c81af909891a925ca9acbd83a92cf0000000118419c2092a169ce17792cde@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2253/450622014@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2253@github.com>
References: <quicwg/base-drafts/issues/2253@github.com>
Subject: Re: [quicwg/base-drafts] Consider making h3 frame types varint (#2253)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c29da2032cf7_5e6f3fd8ee6d45b4118423b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/w4bHPtplRHfdh90WXEHzPtxH2Jw>
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: Mon, 31 Dec 2018 08:58:11 -0000

No, I was imprecise in my last sentence.

What I was trying to clarify is that it is a requirement of H3 that a server cannot start sending frames on a *push stream* before it receives a MAX_PUSH_ID frame from the client, which arrives after SETTINGS. Therefore, any use of an extended frame on the *push stream* can be negotiated.

*Unidirectional streams* other than the push stream are not restricted to the frame definition of H3, so we have the room to do whatever we want, regardless of if we have varint frame types in H3.

The only case a server might want to send extended frames before seeing SETTINGS is when the client's request arrives before the SETTINGS frame due to packet loss or out-of-order delivery (I haven't considered this case before; please forgive me if you assumed this case).

But if we do care about such case (i.e. using 0.5 RTT or SETTINGS being delivered later), I think we should revisit the discussion of if we should use Transport Parameters for sending H3 settings. We would have the following benefit by exchanging H3 settings using Transport Parameters, :
* QPACK dynamic table can always be used; there is no need to operate in restricted mode until receiving SETTINGS from the peer
* Use of 0.5-RTT push (or any other extension) can be negotiated. That avoids wasting the bandwidth by sending extensions that the client does not understand.

-- 
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/2253#issuecomment-450622014