Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should QPACK use the new layout? #3999

Closed
MikeBishop opened this issue Aug 14, 2020 · 10 comments
Closed

Should QPACK use the new layout? #3999

MikeBishop opened this issue Aug 14, 2020 · 10 comments
Labels
-qpack editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@MikeBishop
Copy link
Contributor

#3573 changed Transport and HTTP to use a different presentation format. QPACK still uses the ASCII art version, which is consistent with HPACK. We should explore what it would look like with the new format as well.

@MikeBishop MikeBishop added editorial An issue that does not affect the design of the protocol; does not require consensus. -qpack labels Aug 14, 2020
@larseggert larseggert added this to Triage in Late Stage Processing via automation Aug 17, 2020
@LPardue LPardue moved this from Triage to Editorial Issues in Late Stage Processing Aug 17, 2020
@martinthomson
Copy link
Member

You can't use varints, but you could define (p) to indicate that the integer is prefixed. As far as I know, we don't need to indicate the size of the prefix and can rely on the prefixed integer ending on a byte boundary.

@MikeBishop
Copy link
Contributor Author

I'm not sure we need that. Since variable-size fields are defined to end on byte boundaries, we could simply note them as (N..) for an N-bit prefix. The prefix is an artifact of how the field is encoded.

@dtikhonov
Copy link
Member

I don't like this change. It will be more helpful to the future implementers if the QPACK spec looks similar to the HPACK spec.

@LPardue
Copy link
Member

LPardue commented Aug 18, 2020

I find the traditional use of a "byte grid" a bit nonsensical when many fields span boundaries and the alignments are a falsity. I'd never implemented HPACK and so never realised this, I've only recently found it a minor nuisance while working on QPACK.

As a recent implementer of QPACK, I did find it useful to reference back and forth with HPACK and compare that to implementations of prefixed-integer handling. I don't find this new format particularly useful. While it might be consistent with the other documents, QPACK seems distinct with a very loose coupling to any other of the QUIC docs.

@MikeBishop
Copy link
Contributor Author

So @LPardue, if you find the old format "nonsensical" and the new format "[not] particularly useful" for QPACK, do you have a third suggestion? 🙂

@LPardue
Copy link
Member

LPardue commented Aug 18, 2020

Just update the ascii art to remove the little indices?

@afrind
Copy link
Contributor

afrind commented Aug 18, 2020

I'm not a fan of the new layout either, but I can't tell if that's just bias because I'm used to the old format. Do others agree with @LPardue's framing of the coupling with HPACK vs the other QUIC drafts?

@MikeBishop
Copy link
Contributor Author

Personally, the "nonsense" of a byte grid doesn't bother me as much with H/QPACK as with others, and I think I've figured out why:

  • Things are presented one byte at a time instead of four bytes at a time.
  • Prefixed integers will take up the indicated portion of a byte if they fit, but might spill over to additional bytes which come before the next byte shown.
  • QUIC fields were presented four bytes at a time, containing varints which messed with four-byte alignment, so the byte grid never made sense.

I kind of wish there were a better way of indicating visually where these possible extra bytes would fall (=== vs. ---?) but the + in the field length is a strong clue. If folks think the old format is better to stay in sync with HPACK, that's fine -- I just wanted to have the PR and make sure it was a decision instead of inertia.

@dtikhonov
Copy link
Member

Do others agree with @LPardue's framing of the coupling with HPACK vs the other QUIC drafts?

I do.

@afrind
Copy link
Contributor

afrind commented Aug 25, 2020

Sounds like we have a preference for the existing layout over the new one. Closing this issue.

@afrind afrind closed this as completed Aug 25, 2020
Late Stage Processing automation moved this from Editorial Issues to Issue Handled Aug 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-qpack editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

6 participants