Opened 9 years ago

Last modified 3 years ago

#1855 closed project

Project: design for UDP transport — at Version 1

Reported by: arma Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-relay
Cc: karsten Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by arma)

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 BattleZ 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:

1) Joel Reardon's thesis:

2) The old ZKS designs:

3) Zach Brown's Cebolla:

4) Camilo Viecco's UDP-Tor design:

5) Csaba Kiraly's work:

6) Marc Liberatore's proposal 100:

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.

Child Tickets

Change History (1)

comment:1 Changed 9 years ago by arma

Description: modified (diff)
Note: See TracTickets for help on using tickets.