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

QPACK: explain blocked stream flow control #4818

Merged
merged 2 commits into from Jan 27, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 7 additions & 5 deletions draft-ietf-quic-qpack.md
Expand Up @@ -375,11 +375,13 @@ Insert Count. When the Required Insert Count is less than or equal to the
decoder's Insert Count, the field section can be processed immediately.
Otherwise, the stream on which the field section was received becomes blocked.

To bound the memory requirements of the decoder for blocked streams, encoded
field section data SHOULD remain in the stream's flow control window while the
stream is blocked. A stream becomes unblocked when the Insert Count becomes
greater than or equal to the Required Insert Count for all encoded field
sections the decoder has started reading from the stream.
While blocked, encoded field section data SHOULD remain in the blocked stream's
flow control window. This data is unusable until the stream becomes unblocked,
and releasing the flow control prematurely makes the decoder vulnerable to
memory exhaustion attacks. A stream becomes unblocked when the Insert Count
becomes unblocked when the Insert Count becomes greater than or equal to the
Required Insert Count for all encoded field sections the decoder has started
reading from the stream.

When processing encoded field sections, the decoder expects the Required Insert
Count to equal the lowest possible value for the Insert Count with which the
Expand Down