[tor-dev] Proposal 213: Remove stream-level sendmes from the design

Andreas Krey a.krey at gmx.de
Mon Nov 5 07:31:05 UTC 2012

On Mon, 05 Nov 2012 02:01:21 +0000, Roger Dingledine wrote:
> On Mon, Nov 05, 2012 at 06:57:48AM +0100, Andreas Krey wrote:
> >  With no per-stream window a single stalled stream would
> > block the circuit forever.
> Wait, what?
> Can you define 'stalled' here?

'Receiver of the stream does not read anymore, for whatever reason.'

> With no per-stream window, the circuit will round-robin between the
> streams that want to send a cell, just as it does now.

But where does the data go when the end (socks client or the server the
exit node is talking to) isn't accepting any more (and tor can't write
to the TCP socket)?

The sending side is pushing stream data into the circuit, and the
receiving side (tor process) must either collect it locally (thereby
growing the memory footprint), or not allow new circuit window, thereby
affecting the other streams on the circuit.

Or did I miss another per-stream feedback/flow control mechanism?


"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800

More information about the tor-dev mailing list