Gowee / noisy-shuttle

Secure proxy service indistinguishable from whitelisted TLS website
149 stars 15 forks source link

Find a better strategy for calculating HTTP/2 flow control window #8

Open Gowee opened 1 year ago

Gowee commented 1 year ago

A tight window limits bandwidth, while a loose window undermines the effectiveness of flow control, resulting in higher latency & jitter.

The current implementation (in dev branch) is ported from hyper, which appears to be nonoptimal.

Similar strategies are also used in other libraries:

Dotnet: https://github.com/dotnet/runtime/pull/54755/files gRPC: https://github.com/grpc/grpc-go/blob/master/internal/transport/bdp_estimator.go cURL: https://github.com/curl/curl/commit/a4d888857ede39a8e2aa5f961048c6362d3a5377 Chromium: https://source.chromium.org/search?q=kSpdySessionMaxRecvWindowSize&sq= Nginx: https://github.com/nginx/nginx/blob/b489ba83e9be446923facfe1a2fe392be3095d1f/src/http/v2/ngx_http_v2.c#L244 Go: https://github.com/golang/net/blob/47caaff48d7cdfbc45b155988009eb57a72bbeaf/http2/server.go#L158