aboutsummaryrefslogtreecommitdiff
path: root/spec/intro/index.md
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2023-11-09 09:56:06 -0500
committerNick Mathewson <nickm@torproject.org>2023-11-09 09:56:06 -0500
commit38fa996c1cd8691cbd57b8fab543e74b33501fe3 (patch)
treebc16460b062fff21ceca38363c228d2919b9cd4f /spec/intro/index.md
parentadbb0115100a6413727e2a02c524c2f3ae050728 (diff)
downloadtorspec-38fa996c1cd8691cbd57b8fab543e74b33501fe3.tar.gz
torspec-38fa996c1cd8691cbd57b8fab543e74b33501fe3.zip
Fix links in introduction.
Diffstat (limited to 'spec/intro/index.md')
-rw-r--r--spec/intro/index.md32
1 files changed, 16 insertions, 16 deletions
diff --git a/spec/intro/index.md b/spec/intro/index.md
index f6f3d5d..894d7e0 100644
--- a/spec/intro/index.md
+++ b/spec/intro/index.md
@@ -19,14 +19,14 @@ it finds a cache by looking at a list of stable cache locations,
distributed along with its source code.)
> For more information on the directory subsystem,
-> see the [directory protocol specification](./dir-spec).
+> see the [directory protocol specification](../dir-spec).
After the client knows the relays on the network,
-it can pick a relay and open a [**channel**](./tor-spec/channels.md)
+it can pick a relay and open a [**channel**](../tor-spec/channels.md)
to one of these relays.
A channel is an encrypted reliable non-anonymous transport
between a client and a relay or a relay and a relay,
-used to transmit messages called [**cells**](./tor-spec/cell-packet-format.md).
+used to transmit messages called [**cells**](../tor-spec/cell-packet-format.md).
(Under the hood, a channel is just a TLS connection over TCP,
with a specified encoding for cells.)
@@ -36,37 +36,37 @@ and opens a channel to the first relay on the path
(if it does not already have a channel open to that relay).
The client then uses that channel to build
a multi-hop cryptographic structure
-called a [**circuit**](./tor-spec/circuit-management.md).
+called a [**circuit**](../tor-spec/circuit-management.md).
A circuit is built over a sequence of relays (typically three).
Every relay in the circuit knows its precessor and successor,
but no other relays in the circuit.
Many circuits can be multiplexed over a single channel.
> For more information on how paths are selected,
-> see the [path specification](./path-spec).
+> see the [path specification](../path-spec).
> The first hop on a path,
> also called a **guard node**,
> has complicated rules for its selection;
-> for more on those, see the [guard specification](./guard-spec).
+> for more on those, see the [guard specification](../guard-spec).
Once a circuit exists,
the client can use it to exchange fixed-length
-[**relay cells**](./tor-spec/relay-cells.md)
+[**relay cells**](../tor-spec/relay-cells.md)
with any relay on the circuit.
These relay cells are wrapped in multiple layers of encryption:
as part of building the circuit,
-the client [negotiates](./tor-spec/create-created-cells.md)
+the client [negotiates](../tor-spec/create-created-cells.md)
a separate set of symmetric keys
with each relay on the circuit.
Each relay removes (or adds)
-a [single layer of encryption](./tor-spec/routing-relay-cells.md)
+a [single layer of encryption](../tor-spec/routing-relay-cells.md)
for each relay cell before passing it on.
A client uses these relay cells
-to exchange [**relay messages**](./tor-spec/relay-cells.md) with relays on a circuit.
+to exchange [**relay messages**](../tor-spec/relay-cells.md) with relays on a circuit.
These "relay messages" in turn are used
to actually deliver traffic over the network.
-In the [simplest use case](./tor-spec/opening-streams.md),
+In the [simplest use case](../tor-spec/opening-streams.md),
the client sends a `BEGIN` message
to tell the last relay on the circuit
(called the **exit node**)
@@ -84,7 +84,7 @@ to represent the contents of the anonymized stream.
> This is because, until recently,
> there was a 1-to-1 relationship between the two:
> every relay cell held a single relay message.
-> As [proposal 340](proposals/340-packed-and-fragmented.md) is implemented,
+> As [proposal 340](../proposals/340-packed-and-fragmented.md) is implemented,
> we will revise the specifications
> for improved clarify on this point.
@@ -103,7 +103,7 @@ depending on capacity and performance.
> For more on conflux,
> which has been integrated into the C tor implementation,
> but not yet (as of 2023) into this document,
-> see [proposal 329](proposals/329-traffic-splitting.txt).
+> see [proposal 329](../proposals/329-traffic-splitting.txt).
### Advanced topics: Onion services and responder anonymity {#onions}
@@ -117,7 +117,7 @@ is called **onion services**
in some older documentation).
> For the details on onion services,
-> see the [Tor Rendezvous Specification](./rend-spec).
+> see the [Tor Rendezvous Specification](../rend-spec).
### Advanced topics: Censorship resistence {#anticensorship}
@@ -129,12 +129,12 @@ and by blocking traffic that resembles Tor.
To resist this censorship,
some Tor relays, called **bridges**,
are unlisted in the public directory:
-their addresses are distributed by [other means](./bridgedb-spec.md).
+their addresses are distributed by [other means](../bridgedb-spec.md).
(To distinguish ordinary published relays from bridges,
we sometimes call them **public relays**.)
Additionally, Tor clients and bridges can use extension programs,
-called [**pluggable transports**](./pt-spec),
+called [**pluggable transports**](../pt-spec),
that obfuscate their traffic to make it harder to detect.