Re: Clarification of dynamic table size change

Ilari Liusvaara <ilariliusvaara@welho.com> Fri, 23 October 2015 16:18 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5F071A6FD4 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 23 Oct 2015 09:18:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.912
X-Spam-Level:
X-Spam-Status: No, score=-6.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 R37zouyP7qRY for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 23 Oct 2015 09:18:51 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C3B491A6FD1 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 23 Oct 2015 09:18:51 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Zpf0Q-0004Jn-SX for ietf-http-wg-dist@listhub.w3.org; Fri, 23 Oct 2015 16:15:50 +0000
Resent-Date: Fri, 23 Oct 2015 16:15:50 +0000
Resent-Message-Id: <E1Zpf0Q-0004Jn-SX@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <ilariliusvaara@welho.com>) id 1Zpf0M-0004J1-FS for ietf-http-wg@listhub.w3.org; Fri, 23 Oct 2015 16:15:46 +0000
Received: from filtteri6.pp.htv.fi ([213.243.153.189]) by maggie.w3.org with esmtp (Exim 4.80) (envelope-from <ilariliusvaara@welho.com>) id 1Zpf0K-0001Ul-6Q for ietf-http-wg@w3.org; Fri, 23 Oct 2015 16:15:45 +0000
Received: from localhost (localhost [127.0.0.1]) by filtteri6.pp.htv.fi (Postfix) with ESMTP id 7359556F901; Fri, 23 Oct 2015 19:15:21 +0300 (EEST)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from smtp5.welho.com ([213.243.153.39]) by localhost (filtteri6.pp.htv.fi [213.243.153.189]) (amavisd-new, port 10024) with ESMTP id UBrL6sCC7Rnj; Fri, 23 Oct 2015 19:15:21 +0300 (EEST)
Received: from LK-Perkele-V2 (87-92-35-116.bb.dnainternet.fi [87.92.35.116]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp5.welho.com (Postfix) with ESMTPSA id 4008D5BC009; Fri, 23 Oct 2015 19:15:21 +0300 (EEST)
Date: Fri, 23 Oct 2015 19:15:19 +0300
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Cc: =?utf-8?B?SGVydsOp?= Ruellan <herve.ruellan@crf.canon.fr>, Cory Benfield <cory@lukasa.co.uk>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Message-ID: <20151023161519.GA26338@LK-Perkele-V2.elisa-laajakaista.fi>
References: <CAPyZ6=+wnoJ4o3g4eS3B2Om3Yqk+wD1_9L6HKWqT8-A4cztnBQ@mail.gmail.com> <EC984486-0010-4B7D-953E-3D1F183C547D@lukasa.co.uk> <CAPyZ6=JVZnn-bwkXpRfPJxMVsTOxLsqhMFLsLZX3s9ojR6C8tA@mail.gmail.com> <3EE9A02C-794A-4147-A108-914AB19F2800@lukasa.co.uk> <56290C49.6040301@crf.canon.fr> <CAPyZ6=LzMHD6=_RUqEjViArGCPU=rPt6di-iZN54C5k0cb+CPg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAPyZ6=LzMHD6=_RUqEjViArGCPU=rPt6di-iZN54C5k0cb+CPg@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Sender: ilariliusvaara@welho.com
Received-SPF: none client-ip=213.243.153.189; envelope-from=ilariliusvaara@welho.com; helo=filtteri6.pp.htv.fi
X-W3C-Hub-Spam-Status: No, score=-4.6
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1Zpf0K-0001Ul-6Q 66f87b324969a04e34191bb815d2563d
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Clarification of dynamic table size change
Archived-At: <http://www.w3.org/mid/20151023161519.GA26338@LK-Perkele-V2.elisa-laajakaista.fi>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/30400
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On Sat, Oct 24, 2015 at 12:45:49AM +0900, Tatsuhiro Tsujikawa wrote:
> Hi,
> 
> On Fri, Oct 23, 2015 at 1:18 AM, Hervé Ruellan <herve.ruellan@crf.canon.fr>
> wrote:
> 
> > I agree that the wording is ambiguous here.
> >
> > However, my reading is the same a Cory's: you don't have to send a dynamic
> > table update if the *actual* value is not changed.
> >
> >
> ​I also found the discussion in this ML indicating you are right.  Thank
> you for clarification.
> I have to ask one more question: what is *actual* value? Is it the table
> size both peer agreed before reading SETTINGS, or the value in
> SETTINGS_HEADER_TABLE_SIZE decoder sent?
> 
> I think this is a good item to add in FAQ section..

The way negotiation works:
- Decoder side sets the upper bound via SETTINGS_HEADER_TABLE_SIZE.
- Encoder side sets the actual size via dynamic table updates (inside
  HPACK bitstream) within limits set by decoder.
- If between headers decoder reduces the limit below size signaled by
  encoder, the encoder must first reduce the table size to the minimum
  it was between the frames or less (it can then increase it up to
  current limit).

As example of the last point:
[4k dynamic table size in use]
--> HEADERS
<-- SETTINGS(SETTINGS_HEADER_TABLE_SIZE=4k)
<-- SETTINGS(SETTINGS_HEADER_TABLE_SIZE=2k)
<-- SETTINGS(SETTINGS_HEADER_TABLE_SIZE=4k)
<-- SETTINGS(SETTINGS_HEADER_TABLE_SIZE=8k)
<-- SETTINGS(SETTINGS_HEADER_TABLE_SIZE=6k)
--> HEADERS

The second HEADERS must first reduce the dynamic table to at most
2k. It can then increase dynamic table size to up to 6k.


-Ilari