If I start an HTTP2 service as follows, the local_init_window_sz will be set to 32767 when a new connection is established. Before client receive the server initial settings frame of connection preface, it sends the data frame using the default window size 65535. In this case, the data received by the service may exceed the tream window size.
let server_fut = Builder::new().initial_window_size(32767);
Here set the initial value to custom window size when connection established in src/proto/connections.rs
The default value should probably be used when the connection is established and updated to the custom value after the ACK settings frame is received. Another way is to limit the custom size to no less than 65535.
If I start an HTTP2 service as follows, the local_init_window_sz will be set to 32767 when a new connection is established. Before client receive the server initial settings frame of connection preface, it sends the data frame using the default window size 65535. In this case, the data received by the service may exceed the tream window size.
Here set the initial value to custom window size when connection established in
src/proto/connections.rs
The default value should probably be used when the connection is established and updated to the custom value after the ACK settings frame is received. Another way is to limit the custom size to no less than 65535.
logs as follow