Hi,

I was testing Chromium uploading to HAProxy and found the upload was
quickly stalled. I tried to set tune.h2.initial-window-size larger but
it was not effective. Wireshark confirmed SETTINGS_INITIAL_WINDOW_SIZE
frames were being sent as expected, but Chromium's net log showed the
connection window size remained the default (stream window size did
get the larger value).

Upon reading Chromium's source I found SETTINGS_INITIAL_WINDOW_SIZE
frames would only adjust the per stream send window size, not the
connection window size (called session_send_window_size_ in Chromium).

Actually RFC 7530 6.9.2 has specified this,

> The connection flow-control window can only be changed using WINDOW_UPDATE 
> frames.

> Similarly, the connection flow-control window is set to the default initial 
> window size until a WINDOW_UPDATE frame is received.

> A SETTINGS frame cannot alter the connection flow-control window.

It appears WINDOW_UPDATE frames were not being sent to update the
connection windows.

This tuning knob is probably only useful if it's also applied to the
overall connection windows in addition to stream windows.

-klzgrad

Reply via email to