Subject: Purpose of HTTP settings' maxima

From: Dmitri Tikhonov <[email-masked]>
Date: Mon, 1 Oct 2018 11:42:43 -0400

Hello,

draft-ietf-quic-http-14 [1] states:

   The following settings are defined in HTTP/QUIC:

   SETTINGS_NUM_PLACEHOLDERS (0x3):  An integer with a maximum value of
      2^16 - 1.  The value SHOULD be non-zero.  The default value is 16.

   SETTINGS_MAX_HEADER_LIST_SIZE (0x6):  An integer with a maximum value
      of 2^30 - 1.  The default value is unlimited.

These maximum values seem arbitrary.  Assuming that they are, I wonder:
why specify them at all?

Both of these are integers, which means that they must be expressed
using the QUIC integer encoding [2].  That is to say, both have an
implicit limit of 2^62 - 1.

Since both of these specify what the sender is willing to support,
an arbitrary maximum like this is unnecessary.  The peer will select a
minimum of its own and the sender's specified maximum.  If that happens
to be 2^62 - 1, well, then so be it!

  - Dmitri.

1. https://tools.ietf.org/html/draft-ietf-quic-http-14
2. https://tools.ietf.org/html/draft-ietf-quic-transport-14#section-7.1

---

From: Lucas Pardue <[email-masked]>
Date: Mon, 1 Oct 2018 16:30:19 +0000

>      2^16 - 1.  The value SHOULD be non-zero.  The default value is 16.

I must admit to not following too closely the work on PRIORITY that introduced this [1] (Sorry Mike!). I'd be interested in knowing where the limit (and suggest default) for placeholders comes from.

I initially jumped to conclusion that this could lead to some weird logic for PRIORITY frame but actually think it would be consistent. A client generates a PRIORITY frame with an element ID that must fit within the limit of varint AND the maximum permitted for that ID type (request stream - MAX_STREAM_ID, push stream - MAX_PUSH_ID, placeholder - SETTINGS_NUM_PLACEHOLDERS).

Finally, on a tangent (sorry), is a server supposed to ignore SETTINGS_NUM_PLACEHOLDERS? Or does the connection use the "negotiated" highest/lowest value advertised by peers?

https://github.com/quicwg/base-drafts/pull/1422

-----------------------------
http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and
may contain personal views which are not the views of the BBC unless specifically stated.
If you have received it in
error, please delete it from your system.
Do not use, copy or disclose the
information in any way nor act in reliance on it and notify the sender
immediately.
Please note that the BBC monitors e-mails
sent or received.
Further communication will signify your consent to
this.
-----------------------------