aboutsummaryrefslogtreecommitdiff
path: root/spec/dir-spec/client-operation.md
diff options
context:
space:
mode:
Diffstat (limited to 'spec/dir-spec/client-operation.md')
-rw-r--r--spec/dir-spec/client-operation.md17
1 files changed, 13 insertions, 4 deletions
diff --git a/spec/dir-spec/client-operation.md b/spec/dir-spec/client-operation.md
index 41942c6..3f19a61 100644
--- a/spec/dir-spec/client-operation.md
+++ b/spec/dir-spec/client-operation.md
@@ -1,10 +1,12 @@
<a id="dir-spec.txt-5"></a>
+
# Client operation
Every Tor that is not a directory server (that is, those that do
not have a DirPort set) implements this section.
<a id="dir-spec.txt-5.1"></a>
+
## Downloading network-status documents
Each client maintains a list of directory authorities. Insofar as
@@ -87,6 +89,7 @@ most recent consensus it has if that consensus is "reasonably live". A
"reasonably live" consensus is one that expired less than 24 hours ago.
<a id="dir-spec.txt-5.2"></a>
+
## Downloading server descriptors or microdescriptors
Clients try to have the best descriptor for each router. A descriptor is
@@ -160,6 +163,7 @@ mentioned in any consensus for a week. Future clients might cache them
for longer or shorter times.
<a id="dir-spec.txt-5.3"></a>
+
## Downloading extra-info documents
Any client that uses extra-info documents should implement this
@@ -175,6 +179,7 @@ documents are missing. Clients try to download from caches.
We follow the same splitting and back-off rules as in section 5.2.
<a id="dir-spec.txt-5.4"></a>
+
## Using directory information
[XXX This subsection really belongs in path-spec.txt, not here. -KL]
@@ -185,7 +190,8 @@ to decide which relays to use and what their keys are likely to be.
above.)
<a id="dir-spec.txt-5.4.1"></a>
-### Choosing routers for circuits.
+
+### Choosing routers for circuits
Circuits SHOULD NOT be built until the client has enough directory
information: a live consensus network status [XXXX fallback?] and
@@ -214,22 +220,26 @@ These flags are used as follows:
```
<a id="dir-spec.txt-5.4.2"></a>
+
### Managing naming
(This section is removed; authorities no longer assign the 'Named' flag.)
<a id="dir-spec.txt-5.4.3"></a>
+
### Software versions
An implementation of Tor SHOULD warn when it has fetched a consensus
network-status, and it is running a software version not listed.
<a id="dir-spec.txt-5.4.4"></a>
-### Warning about a router's status.
+
+### Warning about a router's status
(This section is removed; authorities no longer assign the 'Named' flag.)
<a id="dir-spec.txt-5.5"></a>
+
## Retrying failed downloads
This section applies to caches as well as to clients.
@@ -240,7 +250,7 @@ time before retrying the download. To determine the amount of time
to wait, clients use a randomized exponential backoff algorithm.
(Specifically, they use a variation of the "decorrelated jitter"
algorithm from
-https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/ .)
+<https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/> .)
The specific formula used to compute the 'i+1'th delay is:
@@ -289,4 +299,3 @@ downloading from. Current base_delay values are:
Other objects, as client:
0 (TestingClientDownloadInitialDelay)
```
-