Subject: http2 draft feedback on flow control

From: Patrick McManus <[email-masked]>
Date: Wed, 22 May 2013 15:32:05 -0400

Hello,

While reading the flow control text again there was some ambiguity in my
mind about whether or not the SETTINGS_INITIAL_WINDOW_SIZE adjusted the
connection window or just all current and future stream windows. I've
decided the text is really going for "just stream windows - connection
windows are only adjusted by WINDOW_UPDATE with stream=0" (an
interpretation I favor)..

I think it would be nice if it said that explicitly to clear up confusion.
There are some PoC implementations of this floating around out on them thar
Internets (admittedly they may predate the current spec language) and I've
seen different interpretations of what is logical.. so it makes sense to be
explicit.

A couple related followup tweaks to the text:

section 3.8.9.2

* *

*"When a HTTP/2.0 connection is first established, new streams are created
with an initial flow control window size of 65535 bytes. The connection
flow control window is 65536 bytes. Both endpoints can adjust the initial
window size for new streams by including a value for
SETTINGS_INITIAL_WINDOW_SIZE in the SETTINGS frame that forms part of the
connection header. *"

I suggest s/in the SETTINGS frame that forms part of the connection
header/with a SETTINGS frame/ .. The section is titled "Initial Flow
Control Window Size" so the existing text could be ok if we mean initial to
be at connection establishment time, but I think it more clearly applies to
the life cycle of each stream (at least when talking about stream windows).

**
**

**

*When the value of SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST
adjust the size of all flow control windows that it maintains by the
difference between the new value and the old value. *

uh-Oh.. "all flow control windows that it maintains" definitely includes
the connection window :( I suggest s/flow control windows/stream flow
control windows/
-Patrick