diff --git a/internal/protocol/server_parameters.go b/internal/protocol/server_parameters.go index 0bcd6ff9..2968dc31 100644 --- a/internal/protocol/server_parameters.go +++ b/internal/protocol/server_parameters.go @@ -24,26 +24,22 @@ const InitialCongestionWindow ByteCount = 32 * DefaultTCPMSS // session queues for later until it sends a public reset. const MaxUndecryptablePackets = 10 -// InitialMaxStreamData is the stream-level flow control window for receiving data -// This is the value that Google servers are using -const InitialMaxStreamData = (1 << 10) * 32 // 32 kB - -// InitialMaxData is the connection-level flow control window for receiving data -// This is the value that Google servers are using -const InitialMaxData = (1 << 10) * 48 // 48 kB - -// DefaultMaxReceiveStreamFlowControlWindow is the default maximum stream-level flow control window for receiving data, for the server -// This is the value that Google servers are using -const DefaultMaxReceiveStreamFlowControlWindow = 6 * (1 << 20) // 6 MB - -// DefaultMaxReceiveConnectionFlowControlWindow is the default connection-level flow control window for receiving data, for the server -// This is the value that Google servers are using -const DefaultMaxReceiveConnectionFlowControlWindow = 15 * (1 << 20) // 12 MB - // ConnectionFlowControlMultiplier determines how much larger the connection flow control windows needs to be relative to any stream's flow control window // This is the value that Chromium is using const ConnectionFlowControlMultiplier = 1.5 +// InitialMaxStreamData is the stream-level flow control window for receiving data +const InitialMaxStreamData = (1 << 10) * 512 // 512 kb + +// InitialMaxData is the connection-level flow control window for receiving data +const InitialMaxData = ConnectionFlowControlMultiplier * InitialMaxStreamData + +// DefaultMaxReceiveStreamFlowControlWindow is the default maximum stream-level flow control window for receiving data, for the server +const DefaultMaxReceiveStreamFlowControlWindow = 6 * (1 << 20) // 6 MB + +// DefaultMaxReceiveConnectionFlowControlWindow is the default connection-level flow control window for receiving data, for the server +const DefaultMaxReceiveConnectionFlowControlWindow = 15 * (1 << 20) // 12 MB + // WindowUpdateThreshold is the fraction of the receive window that has to be consumed before an higher offset is advertised to the client const WindowUpdateThreshold = 0.25