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

proposal: x/net/http2: add support for configuring stream and connection flow control values #63520

Open
elindsey opened this issue Oct 12, 2023 · 2 comments
Labels
Milestone

Comments

@elindsey
Copy link

Today http2.Transport has hard-coded defaults for stream and connection flow control values. Stream flow control is determined by SETTINGS_INITIAL_WINDOW_SIZE sent on the initial SETTINGS frame, currently hardcoded to 4mb. Connection flow control has an RFC default of 65,535 bytes and is further increased by sending a WINDOW_UPDATE after the initial SETTINGS frame, which http2.Transport currently issues with a value of 1gb.

Both of these settings are important when it comes to controlling how the data from different streams is requested/interleaved. Exposing these in the Transport is in line with the parameters currently exposed on http2.Server, namely MaxUploadBufferPerConnection and MaxUploadBufferPerStream.

@gopherbot gopherbot added this to the Proposal milestone Oct 12, 2023
@ianlancetaylor
Copy link
Contributor

CC @neild @bradfitz

@elindsey
Copy link
Author

elindsey commented Feb 8, 2024

@neild any thoughts on adding these parameters? The defaults are high and allow for abuse depending on where/how Transport is exposed; I'm currently carrying out of tree patches to tweak these down.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Incoming
Development

No branches or pull requests

3 participants