diff options
author | Jim Newsome <jnewsome@torproject.org> | 2023-11-06 11:08:28 -0600 |
---|---|---|
committer | Jim Newsome <jnewsome@torproject.org> | 2023-11-06 11:08:28 -0600 |
commit | 1744bee8ec9fec2cc288fb160ad071ad02996570 (patch) | |
tree | b33051a8967d0ab26cc5ebe0f0242463f3de65c9 | |
parent | a008942db4bd7a6e51c7bd6730383efce641fa5c (diff) | |
download | torspec-1744bee8ec9fec2cc288fb160ad071ad02996570.tar.gz torspec-1744bee8ec9fec2cc288fb160ad071ad02996570.zip |
cell-packet-format: fix section references
-rw-r--r-- | spec/tor-spec/cell-packet-format.md | 45 | ||||
-rw-r--r-- | spec/tor-spec/circuit-management.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/create-created-cells.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/flow-control.md | 4 | ||||
-rw-r--r-- | spec/tor-spec/negotiating-channels.md | 8 | ||||
-rw-r--r-- | spec/tor-spec/relay-cells.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/relay-early.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/routing-relay-cells.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/streams.md | 2 | ||||
-rw-r--r-- | spec/tor-spec/tearing-down-circuits.md | 2 |
10 files changed, 35 insertions, 36 deletions
diff --git a/spec/tor-spec/cell-packet-format.md b/spec/tor-spec/cell-packet-format.md index 138a946..10c647b 100644 --- a/spec/tor-spec/cell-packet-format.md +++ b/spec/tor-spec/cell-packet-format.md @@ -46,28 +46,28 @@ values: | Value | Identifier | Description | ---------------------------------------------------------------------- -| 0 | `PADDING` | Padding (See Sec 7.2) | -| 1 | `CREATE` | Create a circuit (See Sec 5.1) | -| 2 | `CREATED` | Acknowledge create (See Sec 5.1) | -| 3 | `RELAY` | End-to-end data (See Sec 5.5 and 6) | -| 4 | `DESTROY` | Stop using a circuit (See Sec 5.4) | -| 5 | `CREATE_FAST` | Create a circuit, no KP (See Sec 5.1) | -| 6 | `CREATED_FAST` | Circuit created, no KP (See Sec 5.1) | -| 8 | `NETINFO` | Time and address info (See Sec 4.5) | -| 9 | `RELAY_EARLY` | End-to-end data; limited (See Sec 5.6) | -| 10 | `CREATE2` | Extended CREATE cell (See Sec 5.1) | -| 11 | `CREATED2` | Extended CREATED cell (See Sec 5.1) | -| 12 | `PADDING_NEGOTIATE` | Padding negotiation (See Sec 7.2) | +| 0 | `PADDING` | Padding (See [Link padding](./flow-control.md#link-padding)) | +| 1 | `CREATE` | Create a circuit (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 2 | `CREATED` | Acknowledge create (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 3 | `RELAY` | End-to-end data (See [Routing relay cells](./routing-relay-cells.md#routing-relay-cells) and [Relay cells](./relay-cells.md#relay-cells)) | +| 4 | `DESTROY` | Stop using a circuit (See [Tearing down circuits](./tearing-down-circuits.md#tearing-down-circuits)) | +| 5 | `CREATE_FAST` | Create a circuit, no KP (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 6 | `CREATED_FAST` | Circuit created, no KP (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 8 | `NETINFO` | Time and address info (See [`NETINFO` cells](./negotiating-channels.md#NETINFO-cells)) | +| 9 | `RELAY_EARLY` | End-to-end data; limited (See [Handling `RELAY_EARLY` cells](./relay-early.md#handling-relay-early-cells)) | +| 10 | `CREATE2` | Extended CREATE cell (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 11 | `CREATED2` | Extended CREATED cell (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) | +| 12 | `PADDING_NEGOTIATE` | Padding negotiation (See [Flow control](./flow-control.md#flow-control)) | Variable-length command values are: | Value | Identifier | Description | ------------------------------------------------------------------ -| 7 | `VERSIONS` | Negotiate proto version (See Sec 4) | -| 128 | `VPADDING` | Variable-length padding (See Sec 7.2) | -| 129 | `CERTS` | Certificates (See Sec 4.2) | -| 130 | `AUTH_CHALLENGE` | Challenge value (See Sec 4.3) | -| 131 | `AUTHENTICATE` | Client authentication (See Sec 4.5) | +| 7 | `VERSIONS` | Negotiate proto version (See [Negotiating versions with `VERSIONS` cells](./negotiating-channels.md#VERSIONS-cells)) | +| 128 | `VPADDING` | Variable-length padding (See [Flow control](./flow-control.md#flow-control)) | +| 129 | `CERTS` | Certificates (See [`CERTS cells`](./negotiating-channels.md#CERTS-cells)) | +| 130 | `AUTH_CHALLENGE` | Challenge value (See [`AUTH_CHALLENGE` cells](./negotiating-channels.md#AUTH-CHALLENGE-cells)) | +| 131 | `AUTHENTICATE` | Client authentication (See [`AUTHENTICATE` cells](./negotiating-channels.md#AUTHENTICATE-cells)) | | 132 | `AUTHORIZE` | Client authorization (Not yet used) | The interpretation of `Payload` depends on the type of the cell. @@ -76,7 +76,7 @@ The interpretation of `Payload` depends on the type of the cell. * `CREATE`/`CREATE2`: Payload contains the handshake challenge. * `CREATED`/`CREATED2`: Payload contains the handshake response. * `RELAY`/`RELAY_EARLY`: Payload contains the relay header and relay body. -* `DESTROY`: Payload contains a reason for closing the circuit. (see 5.4) +* `DESTROY`: Payload contains a reason for closing the circuit. (see [Tearing down circuits](./tearing-down-circuits.md#tearing-down-circuits)) Upon receiving any other value for the command field, an OR must drop the cell. Since more cell types may be added in the future, ORs @@ -97,7 +97,7 @@ Senders set padding bytes depending on the cell's command: * Padding bytes SHOULD be set to NUL. We recommend random padding in `RELAY`/`RELAY_EARLY` cells, so that the cell -content is unpredictable. See the format of relay cells in section 6.1 +content is unpredictable. See the format of relay cells in [Relay cells](./relay-cells.md#relay-cells) for detail. For other cells, TLS authenticates cell content, so randomized padding @@ -110,12 +110,11 @@ If there is no other traffic, ORs and OPs send one another a `PADDING` cell every few minutes. `CREATE`, `CREATE2`, `CREATED`, `CREATED2`, and `DESTROY` cells are used to -manage circuits; see section 5 below. +manage circuits; see [Circuit management](./circuit-management.md#circuit-management). `RELAY` cells are used to send commands and data along a circuit; see -section 6 below. +[Application connections and stream management](./streams.md#application-connections-and-stream-management). `VERSIONS` and `NETINFO` cells are used to set up connections in link protocols v2 and higher; in link protocol v3 and higher, `CERTS`, -`AUTH_CHALLENGE`, and `AUTHENTICATE` may also be used. See section 4 -below. +`AUTH_CHALLENGE`, and `AUTHENTICATE` may also be used. See [Negotiating and initializing connections](./negotiating-channels.md#negotiating-and-initializing-connections). diff --git a/spec/tor-spec/circuit-management.md b/spec/tor-spec/circuit-management.md index 6569b04..d7691a3 100644 --- a/spec/tor-spec/circuit-management.md +++ b/spec/tor-spec/circuit-management.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-5"></a> -# Circuit management +# Circuit management{#circuit-management} This section describes how circuits are created, and how they operate once they are constructed. diff --git a/spec/tor-spec/create-created-cells.md b/spec/tor-spec/create-created-cells.md index 0ad9c43..c27cc45 100644 --- a/spec/tor-spec/create-created-cells.md +++ b/spec/tor-spec/create-created-cells.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-5.1"></a> -# CREATE and CREATED cells +# CREATE and CREATED cells{#CREATE} Users set up circuits incrementally, one hop at a time. To create a new circuit, OPs send a CREATE/CREATE2 cell to the first node, with diff --git a/spec/tor-spec/flow-control.md b/spec/tor-spec/flow-control.md index e007529..83ed58a 100644 --- a/spec/tor-spec/flow-control.md +++ b/spec/tor-spec/flow-control.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-7"></a> -# Flow control +# Flow control{#flow-control} <a id="tor-spec.txt-7.1"></a> @@ -28,7 +28,7 @@ information. See proposal 111 for details. <a id="tor-spec.txt-7.2"></a> -## Link padding +## Link padding{#link-padding} Link padding can be created by sending PADDING or VPADDING cells along the connection; relay cells of type "DROP" can be used for diff --git a/spec/tor-spec/negotiating-channels.md b/spec/tor-spec/negotiating-channels.md index ee5e974..29ad91f 100644 --- a/spec/tor-spec/negotiating-channels.md +++ b/spec/tor-spec/negotiating-channels.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-4"></a> -# Negotiating and initializing connections +# Negotiating and initializing connections{#negotiating-and-initializing-connections} After Tor instances negotiate handshake with either the "renegotiation" or "in-protocol" handshakes, they must exchange a set of cells to set up @@ -218,7 +218,7 @@ below must be exchanged. <a id="tor-spec.txt-4.3"></a> -## AUTH_CHALLENGE cells +## AUTH_CHALLENGE cells{#AUTH-CHALLENGE-cells} An AUTH_CHALLENGE cell is a variable-length cell with the following fields: @@ -241,7 +241,7 @@ see 4.4.1 and 4.4.2 below. <a id="tor-spec.txt-4.4"></a> -## AUTHENTICATE cells +## AUTHENTICATE cells{#AUTHENTICATE-cells} If an initiator wants to authenticate, it responds to the AUTH_CHALLENGE cell with a CERTS cell and an AUTHENTICATE cell. @@ -365,7 +365,7 @@ the RAND field. <a id="tor-spec.txt-4.5"></a> -## NETINFO cells +## NETINFO cells {#NETINFO-cells} If version 2 or higher is negotiated, each party sends the other a NETINFO cell. The cell's payload is: diff --git a/spec/tor-spec/relay-cells.md b/spec/tor-spec/relay-cells.md index b827d0f..ce339b2 100644 --- a/spec/tor-spec/relay-cells.md +++ b/spec/tor-spec/relay-cells.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-6.1"></a> -# Relay cells +# Relay cells{#relay-cells} Within a circuit, the OP and the end node use the contents of RELAY packets to tunnel end-to-end commands and TCP connections diff --git a/spec/tor-spec/relay-early.md b/spec/tor-spec/relay-early.md index cefa790..1843253 100644 --- a/spec/tor-spec/relay-early.md +++ b/spec/tor-spec/relay-early.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-5.6"></a> -# Handling relay_early cells +# Handling relay_early cells{#handling-relay-early-cells} A RELAY_EARLY cell is designed to limit the length any circuit can reach. When an OR receives a RELAY_EARLY cell, and the next node in the circuit diff --git a/spec/tor-spec/routing-relay-cells.md b/spec/tor-spec/routing-relay-cells.md index 07057b0..ff81e27 100644 --- a/spec/tor-spec/routing-relay-cells.md +++ b/spec/tor-spec/routing-relay-cells.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-5.5"></a> -# Routing relay cells +# Routing relay cells{#routing-relay-cells} <a id="tor-spec.txt-5.5.1"></a> diff --git a/spec/tor-spec/streams.md b/spec/tor-spec/streams.md index 29fe097..1aa5491 100644 --- a/spec/tor-spec/streams.md +++ b/spec/tor-spec/streams.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-6"></a> -# Application connections and stream management +# Application connections and stream management{#application-connections-and-stream-management} This section describes how clients use RELAY cells to communicate with exit nodes, and how use this communication channel to send and receive diff --git a/spec/tor-spec/tearing-down-circuits.md b/spec/tor-spec/tearing-down-circuits.md index 66e71bd..05e6444 100644 --- a/spec/tor-spec/tearing-down-circuits.md +++ b/spec/tor-spec/tearing-down-circuits.md @@ -1,6 +1,6 @@ <a id="tor-spec.txt-5.4"></a> -# Tearing down circuits +# Tearing down circuits{#tearing-down-circuits} Circuits are torn down when an unrecoverable error occurs along the circuit, or when all streams on a circuit are closed and the |