Browse Source

add in a brief cell structure diagram

svn:r1036
Roger Dingledine 20 years ago
parent
commit
4cfffbb926
4 changed files with 260 additions and 7 deletions
  1. 189 0
      doc/cell-struct.eps
  2. 49 0
      doc/cell-struct.fig
  3. BIN
      doc/cell-struct.pdf
  4. 22 7
      doc/tor-design.tex

+ 189 - 0
doc/cell-struct.eps

@@ -0,0 +1,189 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: cell-struct.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 4
+%%CreationDate: Sat Jan 31 02:13:55 2004
+%%For: root@last-request (root)
+%%BoundingBox: 0 0 254 73
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 73 moveto 0 0 lineto 254 0 lineto 254 73 lineto closepath clip newpath
+-35.3 77.2 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06000 0.06000 sc
+%
+% Fig objects follow
+%
+% 
+% here starts figure with depth 50
+% Polyline
+7.500 slw
+n 1200 975 m
+ 1200 1275 l gs col0 s gr 
+% Polyline
+n 1725 975 m
+ 1725 1275 l gs col0 s gr 
+% Polyline
+n 600 975 m 4800 975 l 4800 1275 l 600 1275 l
+ cp gs col0 s gr 
+% Polyline
+n 1200 300 m
+ 1200 600 l gs col0 s gr 
+% Polyline
+n 1725 300 m
+ 1725 600 l gs col0 s gr 
+% Polyline
+n 600 300 m 4800 300 l 4800 600 l 600 600 l
+ cp gs col0 s gr 
+% Polyline
+n 2550 975 m
+ 2550 1275 l gs col0 s gr 
+% Polyline
+n 3150 975 m
+ 3150 1275 l gs col0 s gr 
+% Polyline
+n 3450 975 m
+ 3450 1275 l gs col0 s gr 
+% Polyline
+n 3900 975 m
+ 3900 1275 l gs col0 s gr 
+/Times-Roman ff 180.00 scf sf
+675 1200 m
+gs 1 -1 sc (CircID) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+900 900 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+1425 900 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+1275 1200 m
+gs 1 -1 sc (Relay) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+1800 1200 m
+gs 1 -1 sc (StreamID) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2625 1200 m
+gs 1 -1 sc (Digest) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3150 1200 m
+gs 1 -1 sc (Len) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+4200 1200 m
+gs 1 -1 sc (DATA) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+675 525 m
+gs 1 -1 sc (CircID) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+1275 525 m
+gs 1 -1 sc (CMD) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+900 225 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+1425 225 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3225 525 m
+gs 1 -1 sc (DATA) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2100 900 m
+gs 1 -1 sc (6) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2850 900 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3225 900 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3450 1200 m
+gs 1 -1 sc (CMD) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3600 900 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+4350 900 m
+gs 1 -1 sc (496) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3300 225 m
+gs 1 -1 sc (509 bytes) col0 sh gr
+% here ends figure;
+$F2psEnd
+rs
+showpage

+ 49 - 0
doc/cell-struct.fig

@@ -0,0 +1,49 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 1200 975 1200 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 1725 975 1725 1275
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 600 975 4800 975 4800 1275 600 1275 600 975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 1200 300 1200 600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 1725 300 1725 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 600 300 4800 300 4800 600 600 600 600 300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2550 975 2550 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3150 975 3150 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3450 975 3450 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 975 3900 1275
+4 0 0 50 -1 0 12 0.0000 4 135 510 675 1200 CircID\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 900 900 2\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 1425 900 1\001
+4 0 0 50 -1 0 12 0.0000 4 180 435 1275 1200 Relay\001
+4 0 0 50 -1 0 12 0.0000 4 135 735 1800 1200 StreamID\001
+4 0 0 50 -1 0 12 0.0000 4 180 510 2625 1200 Digest\001
+4 0 0 50 -1 0 12 0.0000 4 135 285 3150 1200 Len\001
+4 0 0 50 -1 0 12 0.0000 4 135 510 4200 1200 DATA\001
+4 0 0 50 -1 0 12 0.0000 4 135 510 675 525 CircID\001
+4 0 0 50 -1 0 12 0.0000 4 135 420 1275 525 CMD\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 900 225 2\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 1425 225 1\001
+4 0 0 50 -1 0 12 0.0000 4 135 510 3225 525 DATA\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 2100 900 6\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 2850 900 4\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 3225 900 2\001
+4 0 0 50 -1 0 12 0.0000 4 135 420 3450 1200 CMD\001
+4 0 0 50 -1 0 12 0.0000 4 135 90 3600 900 1\001
+4 0 0 50 -1 0 12 0.0000 4 135 270 4350 900 496\001
+4 0 0 50 -1 0 12 0.0000 4 180 735 3300 225 509 bytes\001

BIN
doc/cell-struct.pdf


+ 22 - 7
doc/tor-design.tex

@@ -6,6 +6,7 @@
 \usepackage{url}
 \usepackage{graphics}
 \usepackage{amsmath}
+\usepackage{epsfig}
 
 \pagestyle{plain}
 
@@ -36,6 +37,12 @@
     %  \setlength{\topsep}{0mm}
     }}{\end{list}}
 
+% Cut down on whitespace above and below figures displayed at head/foot of
+% page.
+\setlength{\textfloatsep}{3mm}
+% Cut down on whitespace above and below figures displayed in middle of page
+\setlength{\intextsep}{3mm}
+
 \begin{document}
 
 %% Use dvipdfm instead. --DH
@@ -168,8 +175,8 @@ that can be unreliable and complex. % open to partitioning attacks.
 Tor takes a simplified view toward distributing this
 information. Certain more trusted nodes act as \emph{directory
 servers}: they provide signed directories describing known
-routers and their current state. Users periodically download these
-directories via HTTP.
+routers and their current state. Users periodically download them
+via HTTP.
 
 \textbf{Variable exit policies:} Tor provides a consistent mechanism
 for each node to advertise a policy describing the hosts
@@ -595,9 +602,7 @@ checking; the length of the relay payload; and a relay command.
 The entire contents of the relay header and the relay cell payload
 are encrypted or decrypted together as the relay cell moves along the
 circuit, using the 128-bit AES cipher in counter mode to generate a
-cipher stream.
-The
-relay commands are: \emph{relay
+cipher stream.  The relay commands are: \emph{relay
 data} (for data flowing down the stream), \emph{relay begin} (to open a
 stream), \emph{relay end} (to close a stream cleanly), \emph{relay
 teardown} (to close a broken stream), \emph{relay connected}
@@ -607,7 +612,17 @@ and to acknowledge), \emph{relay truncate} and \emph{relay truncated}
 (to tear down only part of the circuit, and to acknowledge), \emph{relay
 sendme} (used for congestion control), and \emph{relay drop} (used to
 implement long-range dummies).
-We describe each of these cell types and commands in more detail below.
+We give a visual overview of cell structure plus the details of relay
+cell structure, and then describe each of these cell types and commands
+in more detail below.
+
+\begin{figure}[h]
+\unitlength=1cm
+\centering
+\begin{picture}(8.0,1.5)
+\put(4,.5){\makebox(0,0)[c]{\epsfig{file=cell-struct,width=7cm}}}
+\end{picture}
+\end{figure}
 
 \SubSection{Circuits and streams}
 \label{subsec:circuits}
@@ -1816,7 +1831,7 @@ application integration is described more fully below.
       service from the DHT.
 \item Alice chooses an OR as the rendezvous point (RP) for this
       transaction. She builds a circuit to the RP, and gives it a
-      rendezvous cookie that it will use to recognize Bob.
+      rendezvous cookie to recognize Bob.
 \item Alice opens an anonymous stream to one of Bob's introduction
       points, and gives it a message (encrypted to Bob's public key)
       that tells him