Re: Large Frames, Continuations, Flow Control, and changing HPACK

On Wed, Jul 9, 2014 at 12:55 AM, Jeff Pinner <jpinner@twitter.com> wrote:

> I would like to propose that we remove the "reference set" from HPACK.
>
> I think that this would help to alleviate many of the issues that are
> being brought up on the list w.r.t large header blocks and their
> affect on HOL blocking.
>
> By using the "reference set" of headers, the frame boundary and the
> header block boundary are tied together. We have also made the
> ordering of headers indeterminate leading to the null-separator hack
> and made requirements on the receipt of the ":" headers impossible to
> enforce requiring possibly complete buffering before basic routing
> decisions can be made.
>
> Removing the "reference set" would allow interleaving of HEADERS
> frames from different streams. It would remove the need for large
> contiguous frames carrying an entire "header block" since the
> termination of these blocks is meaningless. Headers could be more
> effectively "streamed" and CONTINUATION frames could be dropped from
> the spec.
>
> Since HEADERS frames can now be interleaved even if they do not
> contain the complete header set, this would also remove the HOL
> blocking issue and open up the possibility to flow control headers as
> well as data.
>
> - Jeff
>
>
​If I understand the proposal correctly, it still needs contagious
HEADERS+CONTINUATION if >16K header field is sent (assuming the proposal
sticks to 16K frame size).
​For flow control, we still have difficulty to encode (or split) headers in
arbitrary length, dead locking issue still exist.

Best regards,
Tatsuhiro Tsujikawa

Received on Tuesday, 8 July 2014 16:09:48 UTC