[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] think more about the design section



Update of /home/or/cvsroot/doc
In directory moria.mit.edu:/home2/arma/work/onion/cvs/doc

Modified Files:
	tor-design.tex 
Log Message:
think more about the design section


Index: tor-design.tex
===================================================================
RCS file: /home/or/cvsroot/doc/tor-design.tex,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- tor-design.tex	24 Oct 2003 22:48:26 -0000	1.23
+++ tor-design.tex	25 Oct 2003 11:41:26 -0000	1.24
@@ -51,11 +51,14 @@
 \begin{abstract}
 We present Tor, a connection-based low-latency anonymous communication
 system. It is intended as a successor to Onion Routing
+% how about removing 'intended as'? Simplifying further?
 and addresses many limitations in the original Onion Routing design.
 Tor works in a real-world Internet environment,
+% it's user-space too
 requires little synchronization or coordination between nodes, and
 protects against known anonymity-breaking attacks as well
 as or better than other systems with similar design parameters.
+% and we preseent a big list of open problems at the end
 \end{abstract}
 
 %\begin{center}
@@ -73,8 +76,9 @@
 build a \emph{virtual circuit}, in which each node in the path knows its
 predecessor and successor, but no others. Traffic flowing down the circuit
 is sent in fixed-size \emph{cells}, which are unwrapped by a symmetric key
-at each node and relayed downstream. The original Onion Routing
-project published several design and analysis papers
+at each node (like the layers of an onion) and relayed downstream. The
+original Onion Routing project published several design and analysis
+papers
 \cite{or-jsac98,or-discex00,or-ih96,or-pet00}. While there was briefly
 a wide area Onion Routing network,
 % how long is briefly? a day, a month? -RD
@@ -603,52 +607,61 @@
 \Section{The Tor Design}
 \label{sec:design}
 
-high-level intro: overlay network of onion routers with long-term TLS
-connections.  (Every OR connects to every other.) Users run local
-software (onion proxies) that establish path over network and
-construct virtual circuit.  (USers know about all ORs from Directory.)
-OPs accept TCP streams and multiplex them across virtual circuit.  OR
-on the other side of the cirucuit connects to the destinations of the
-TCP streams and continues to relay TCP sessions.
+The Tor network is an overlay network; each node is called an onion router
+(OR). Onion routers run on normal computers without needing any special
+privileges. Each OR maintains a long-term TLS connection to every other
+OR (although we look at ways to relax this clique-topology assumption in
+section \ref{subsec:restricted-routes}). A subset of the ORs also act as
+directory servers, tracking which routers are currently in the network;
+see section \ref{subsec:dirservers} for directory server details. Users
+run local software called an onion proxy (OP) that fetches directories,
+establishes paths (called \emph{virtual circuits}) over the network,
+and handles connections from the user applications. Onion proxies accept
+TCP streams and multiplex them across the virtual circuit. The onion
+router on the other side of the circuit connects to the destinations of
+the TCP streams and relays data.
 
-Describe connection protocol.  Link-to-link rate limiting.  Link
-padding.
+Section \ref{subsec:cells} discusses the structure of the fixed-size
+\emph{cell} that are the unit of communication in Tor. We describe
+in Section \ref{subsec:circuits} how circuits work, and in Section
+\ref{subsec:circuit-build} how they are built, extended, truncated, and
+destroyed. Section \ref{subsec:tcp} discusses the process of opening
+TCP streams through Tor, and finally Section \ref{subsec:congestion}
+talks about congestion control and fairness issues.
 
-Describe cells.  Control versus Relay.  Cell structure.
+\SubSection{Cells}
 
-Describe how circuits work and how relay cells get passed along,
+4.1 Describe cells.  Control versus Relay.  Cell structure.
+
+4.2 Describe how circuits work and how relay cells get passed along,
 decrypted etc.  This will include mentioning leaky-pipe circuit
 topology and end-to-end integrity checking.  (Mention tagging.)
 
-Describe how circuits get built, extended, truncated.
+4.3 Describe how circuits get built, extended, truncated.
 
-Describe how TCP connections get opened.  (Mention DNS issues)
+4.4 Describe how TCP connections get opened.  (Mention DNS issues)
 Descibe closing TCP connections and 2-END handshake to mirror TCP
 close handshake.
 
-Describe how data is transmitted.
-
-Describe circuit-level and stream-level congestion control issues and
-solutions.
-
+4.5 Describe circuit-level and stream-level
+congestion control issues and solutions.
 Describe circuit-level and stream-level fairness issues; cite Marc's
 anonnet stuff.
 
-Describe DoS prevention.
+\Section{Other design decisions}
 
-Mention twins, what the do, what they can't.
+\SubSection{Resource management and DoS prevention}
 
+Describe DoS prevention. cookies before tls begins, rate limiting of
+create cells, link-to-link rate limiting, etc.
+Mention twins, what the do, what they can't.
 How we should do sequencing and acking like TCP so that we can better
 tolerate lost data cells.
-
-[XXX mention that designers have to choose what you send across your
+Mention that designers have to choose what you send across your
   circuit: wrapped IP packets, wrapped stream data, etc.  [Disspell
-  TCP-over-TCP misconception.]]
-
-[XXX Mention that OR-to-OR connections should be highly reliable.  If
-  they aren't, everything can stall.]
-
-\Section{Other design decisions}
+  TCP-over-TCP misconception.]
+Mention that OR-to-OR connections should be highly reliable.  If
+  they aren't, everything can stall.
 
 \SubSection{Exit policies and abuse}
 \label{subsec:exitpolicies}
@@ -950,10 +963,10 @@
 
 Pull attacks and defenses into analysis as a subsection
 
-\Section{Maintaining anonymity sets}
+\Section{Maintaining anonymity in Tor}
 \label{sec:maintaining-anonymity}
 
-[Put as much of this as a part of open issuses as is possible.]
+[Put as much of this as a part of open issues as is possible.]
 
 [what's an anonymity set?]