summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-07-20 16:48:02 +0000
committerNick Mathewson <nickm@torproject.org>2006-07-20 16:48:02 +0000
commit6108e87c762e3e77b7a7e34aa797e445cd8e45ba (patch)
treec03ba09cd032ecee49de461a6ed0ac99cb3bfeea
parent39844254d07e94b4418fe9f246374c35f164b334 (diff)
downloadtor-6108e87c762e3e77b7a7e34aa797e445cd8e45ba.tar.gz
tor-6108e87c762e3e77b7a7e34aa797e445cd8e45ba.zip
Add a few more paragraphs to path-spec.txt
svn:r6793
-rw-r--r--trunk/doc/path-spec.txt24
1 files changed, 22 insertions, 2 deletions
diff --git a/trunk/doc/path-spec.txt b/trunk/doc/path-spec.txt
index 50dc519add..381bf782cb 100644
--- a/trunk/doc/path-spec.txt
+++ b/trunk/doc/path-spec.txt
@@ -88,8 +88,28 @@ list. -NM
2.2. Path selection
- When we bui
-
+ We choose the path for each new circuit before we build it. We choose the
+ exit node first, followed by the other nodes in the circuit. We do not
+ choose the same router twice for the same circuit. We do not choose any
+ router in the same family as another in the same circuit. We don't choose
+ any non-running or non-valid router unless we have been configured to do
+ so. When choosing among multiple candidates for a path element, we choose
+ a given router with probability proportional to its advertised bandwidth
+ [the smaller of the 'rate' and 'observed' arguments to the "bandwidth"
+ element in its descriptor]. If a router's advertised bandwidth is greater
+ than MAX_BELIEVEABLE_BANDWIDTH (1.5 MB/sec), we clip to that value.
+
+ Additional restrictions:
+ XXX When to use Fast
+ XXX When to use Stable
+ XXX When to use Named
+
+ If we're building a circuit preemtively, we choose an exit node that might
+ support streams to one of our predicted ports; otherwise, we pick an exit
+ node that will support a pending stream (if the stream's target is known)
+ or that might support a pending stream.
+
+ We pick an entry node from one of our guards; see section 5 below.
2.3. Handling failure