[Twisted-Python] Streaming HTTP

Glyph Lefkowitz glyph at twistedmatrix.com
Wed Nov 18 05:30:05 MST 2015


> On Nov 18, 2015, at 2:28 AM, Cory Benfield <cory at lukasa.co.uk> wrote:
> 
> 
>> On 18 Nov 2015, at 05:55, Glyph Lefkowitz <glyph at twistedmatrix.com> wrote:
>> 
>> Does HTTP2 have choke/unchoke notifications on individual streams?  Ultimately this does resolve to TCP backpressure, though…
> 
> Not in such a binary form, no. The connection as a whole and each stream maintain independent flow control windows. This allows for pressure to be exerted on the sender to slow down, by allowing the flow control window to drop to zero. This means that there is some Twisted-level buffering, because we do have to get that data out of the socket and to queue at the application, but the amount of data to buffer is strictly bounded. Thus, if our application moves slowly, the remote side should be passively notified to slow down by the lack of window updates: we should only send those window updates once the application has actually taken some data from us.

So the receiver sends explicit "unchoke" messages to increase the window, and the "choke" message is implicit?

-glyph



More information about the Twisted-Python mailing list