Commit 4cfffbb9 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

add in a brief cell structure diagram


svn:r1036
parent 4c747175
Loading
Loading
Loading
Loading

doc/cell-struct.eps

0 → 100644
+189 −0
Original line number Diff line number Diff line
%!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

doc/cell-struct.fig

0 → 100644
+49 −0
Original line number Diff line number Diff line
#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

doc/cell-struct.pdf

0 → 100644
+6.02 KiB

File added.

No diff preview for this file type.

+22 −7
Original line number Diff line number Diff line
@@ -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