aboutsummaryrefslogtreecommitdiff
path: root/spec/tor-spec/flow-control.md
diff options
context:
space:
mode:
Diffstat (limited to 'spec/tor-spec/flow-control.md')
-rw-r--r--spec/tor-spec/flow-control.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/spec/tor-spec/flow-control.md b/spec/tor-spec/flow-control.md
index 4bd8910..960bd21 100644
--- a/spec/tor-spec/flow-control.md
+++ b/spec/tor-spec/flow-control.md
@@ -1,7 +1,9 @@
<a id="tor-spec.txt-7"></a>
+
# Flow control
<a id="tor-spec.txt-7.1"></a>
+
## Link throttling
Each client or relay should do appropriate bandwidth throttling to
@@ -25,6 +27,7 @@ to reads and writes for connections that are serving directory
information. See proposal 111 for details.
<a id="tor-spec.txt-7.2"></a>
+
## Link padding
Link padding can be created by sending PADDING or VPADDING cells
@@ -60,6 +63,7 @@ zero (to avoid client distinguishability) and ignored by the recipient.
For more details on padding behavior, see padding-spec.txt.
<a id="tor-spec.txt-7.3"></a>
+
## Circuit-level flow control
To control a circuit's bandwidth usage, each OR keeps track of two
@@ -111,6 +115,7 @@ RELAY_DATA cell within one increment window. In other word, every 100 cells
(increment), random bytes should be introduced in at least one cell.
<a id="tor-spec.txt-7.3.1"></a>
+
### SENDME Cell Format
A circuit-level RELAY_SENDME cell always has its StreamID=0.
@@ -163,6 +168,7 @@ If the VERSION is unrecognized or below the minimum accepted version (taken
from the consensus), the circuit should be torn down.
<a id="tor-spec.txt-7.4"></a>
+
## Stream-level flow control
Edge nodes use RELAY_SENDME cells to implement end-to-end flow
@@ -175,4 +181,3 @@ ten cell payloads remaining to be flushed at that edge.
Stream-level RELAY_SENDME cells are distinguished by having nonzero
StreamID. They are still empty; the body still SHOULD be ignored.
-