Subject: [quicwg/base-drafts] Flags in HTTP/QUIC frames are wasted space (#1388)

From: Mike Bishop <[email-masked]>
Date: Thu, 24 May 2018 21:34:05 +0000 (UTC)

Of the frame types defined in the draft, only one frame type actually defines any flags.  Otherwise, the flags byte is a wasted byte per frame, every frame.

For the frames which don't use flags, the byte can simply be dropped from the generic frame definition without ill effect.  For the one which does (PRIORITY), there are a few reasonable choices:

  - Define a flags byte as the first byte of PRIORITY's payload; PRIORITY effectively remains unchanged
  - Follow QUIC's lead: embed the flags in the type byte; PRIORITY consumes eight values in the frame type space
  - Consider putting priority changes on a separate unidirectional stream (as in #1359) and not using control stream frames for them at all.  They only need order with respect to each other, not anything else.

-- 
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/1388

---

From: Martin Thomson <[email-masked]>
Date: Thu, 24 May 2018 17:06:51 -0700

This is a nice observation.  I tend to think of flags as a mistake in h2, but it was always too low on the priority list and they were used a reasonable amount.  Here you are right, we could do better.  Encoding PRIORITY differently seems like the best choice (8 frame types isn't that big a deal, but it's probably better to use an extra octet in this case).

-- 
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/1388#issuecomment-391902665