Opened 6 years ago

Last modified 22 months ago

#7346 new project

Add stream-level pushback into n23 design

Reported by: arma Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: performance flowcontrol tor-relay research-program
Cc: iang, malsabah, robgjansen Actual Points:
Parent ID: #4506 Points:
Reviewer: Sponsor:

Description

In #4485 we identified what looks to be a flaw in the n23 design: since n23 only regulates how many cells can be in-flight on the circuit, it has no way to inform the other side that a given stream is blocked on writing and the other side should stop sending cells for that stream.

Options include something like the current stream-level sendmes (which would be a shame), or some sort of xoff/xon interface, or some other smart idea.

Child Tickets

Change History (4)

comment:1 Changed 6 years ago by arma

Parent ID: #4506

comment:2 Changed 6 years ago by iang

Could the same n23 method also be used end-to-end at the stream level? The OP basically tells the exit how much more data it can put in its (bounded) buffer waiting for delivery to the client. This can be a single relay cell that lists all the open circuits (or even just the ones draining slowly). But the large RTT is potentially tricky: we'll have to take into account how many cells we've already sent on a stream since the OP sent the notice, but before we received it. (The notices can have a cell counter in them: "At the time I received X cells total, I have room for N more cells.) Or something like that.

comment:3 Changed 6 years ago by nickm

Keywords: tor-relay added

comment:4 Changed 22 months ago by nickm

Keywords: research-program added
Severity: Normal
Note: See TracTickets for help on using tickets.