Re: [quicwg/base-drafts] Initial size of dynamic table (#1530)

Mike Bishop <notifications@github.com> Mon, 09 July 2018 17:53 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 268DD130E5A for <quic-issues@ietfa.amsl.com>; Mon, 9 Jul 2018 10:53:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, T_DKIMWL_WL_HIGH=-0.01] 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 ZvcAyuP625V6 for <quic-issues@ietfa.amsl.com>; Mon, 9 Jul 2018 10:53:22 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 05B8C130E5F for <quic-issues@ietf.org>; Mon, 9 Jul 2018 10:53:22 -0700 (PDT)
Date: Mon, 09 Jul 2018 10:53:21 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1531158801; bh=qXlqYl3kI3GmyO5bYmRRAfLOr9kYt/AbHXLOKVnTgF0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=sohRG4gkqaz1nkITbft2m+XdKc5aqMg87Zi3ywIy6S6ZrNUaO5t7TCPE8tAubwRai gsz2OV5w5/MroF8IhjXPTO+W6NrUXOqhdgMM1loqRQh/bmQgkNe6zb+qoIEzTzL49f ddSBNbIxaKOJK8SqXhb0GSj0uHxd/7EFCNt954aE=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abf9c86303915c3811faef068e11c3765e783bd0b592cf00000001175b631192a169ce1431be2f@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1530/403564944@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1530@github.com>
References: <quicwg/base-drafts/issues/1530@github.com>
Subject: Re: [quicwg/base-drafts] Initial size of dynamic table (#1530)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b43a111231aa_24693fc8494c4f7c8989f"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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/lApKwliROJWudyuv0CCzAyzjSAg>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.27
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, 09 Jul 2018 17:53:25 -0000

Ah, I see.  So the receiver has declared a maximum of 4KB, but if the encoder doesn't specify a size before sending instructions, what is the table size at that point?

My initial inclination matched yours, to say that it's the receiver's declared maximum, so that the encoder only needs to speak to reduce it. But there's a corner case: In 0-RTT, we assume the previous max; server can't accept 0-RTT if it's going to go *lower*, but can still increase its value when it sends the SETTINGS frame.  That means either the server has to detect whether particular instructions were sent before or after the handshake completed and change the implicit table size, or there's a nasty corner case when the client thinks it has overflowed the table but the server thinks it hasn't.

HPACK requires the size change instruction to be the first instruction of the first block following the change; I'd honestly never thought about whether that requires a size change to be the first instruction of the first header block sent on a connection.  Does it?

I think it has to be zero, and require the encoder to declare the size it intends to use.

-- 
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/1530#issuecomment-403564944