Compare datagram Tor designs
A popular topic over the years has been moving from TCP transport between Tor relays to UDP transport, and then maybe switching to some congestion control approach that better recognizes the real endpoints in the communication.
We've been talking to Robert Watson and Bjoern A. Zeeb of the FreeBSD project about helping to fund them to port the FreeBSD network stack to user-space. Lately the user-space networking stack has seemed like the primary stumbling block.
We really ought to have a better intuition about what we're going to actually do once that stumbling block is resolved.
We should write a draft design doc and spec for a future version of Tor based on UDP transport. One main goal is to identify areas of uncertainty that need to be solved before such a system can be built and deployed. Another aspect of that goal is to identify and flesh out unsolved research questions, and pros and cons to various tradeoffs that designs like this have made. For example, should we do TCP-over-UDP pairwise, or end-to-end? Various research groups have very strong feelings, and often their recommendations conflict.
We might draw on six pieces of background work for ideas:
-
Joel Reardon's thesis: http://freehaven.net/anonbib/#reardon-thesis
-
The old ZKS designs: http://freehaven.net/anonbib/#freedom2-arch
-
Zach Brown's Cebolla: http://freehaven.net/anonbib/#cebolla http://www.cypherspace.org/cebolla/
-
Camilo Viecco's UDP-Tor design: http://www.petsymposium.org/2008/hotpets/udp-tor.pdf
-
Csaba Kiraly's work: http://disi.unitn.it/locigno/preprints/TR-DISI-08-041.pdf
-
Marc Liberatore's proposal 100: https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/100-tor-spec-udp.txt
-
SHALON: Lightweight Anonymization based on Open Standards by Panchenko et al: http://lorre.uni.lu/~andriy/papers/shalon-icccn09.pdf
The design should be sure to include a transition plan, and a plan for how to let clients who need blocking-resistance (e.g. they need to look like SSL on the wire) continue to use the network.