[tor-dev] Information on the handling of relays churn

Roger Dingledine arma at mit.edu
Fri Sep 28 02:36:57 UTC 2018


On Thu, Sep 27, 2018 at 06:49:37PM +0000, alex_y_xu at yahoo.ca wrote:
> It seems that your idea can basically be summarized as "implement
> circuit resumption". This is likely not inherently difficult to
> implement, except for the problem of knowing when to expire old
> sessions. If you just use the TCP rules, then you might as well just run
> Tor over multipath TCP or QUIC or something.

So long as the exit relay doesn't go down (because it has the TCP
connections between the Tor network and external destinations), circuit
resumption should be pretty easy -- you just stick a little header on
the front of cells that gives them counters (to put them into the right
order), and then put some ability to buffer and acknowledge and retry
on the endpoints. You could hack it together yourself (probably a bad
idea) or you could use one of these end-to-end reliability protocols
that people already work on.

And once you've done that, you're quite close to being able to do two
(or multiple) paths in parallel for a given circuit, which can get you
some really intriguing performance, robustness, and security properties:
https://www.freehaven.net/anonbib/#pets13-splitting

And once you've done *that*, you might as well swap out Tor's hacky
end-to-end flow control for something fancier, like as you say QUIC.

For way more in this area, check out
https://blog.torproject.org/tors-open-research-topics-2018-edition

--Roger



More information about the tor-dev mailing list