From fcdbdf63776db815099052be3c4a842e0223b0b5 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 14 Feb 2024 08:55:29 -0500 Subject: Clarify rend-point behavior with relay cells Previously, we didn't actually say that relay cells got retransmitted; we only said that the circuits were "joined". Closes #254 by clarifying that RELAY_EARLY cells are retransmitted as RELAY cells. --- spec/rend-spec/protocol-overview.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/spec/rend-spec/protocol-overview.md b/spec/rend-spec/protocol-overview.md index a50b3d1..9f7c96f 100644 --- a/spec/rend-spec/protocol-overview.md +++ b/spec/rend-spec/protocol-overview.md @@ -40,9 +40,16 @@ circuits, and the cryptographic handshake gives the two parties a shared key and proves to the client that it is indeed talking to the hidden service. -Once the two circuits are joined, the client can use Tor RELAY cells -to deliver relay messages -to the server. RELAY_BEGIN messages open streams to an external process +Once the two circuits are joined, the client can use Tor relay cells +to deliver relay messages to the server: +Whenever the rendezvous point receives as relay cell from one of +the circuits, it transmits it to the other. +(It accepts both RELAY and RELAY_EARLY cells, +and retransmits them all as RELAY cells.) + +The two parties use these relay messages to implement Tor's +usual application stream protocol: +RELAY_BEGIN messages open streams to an external process or processes configured by the server; RELAY_DATA messages are used to communicate data on those streams, and so forth. -- cgit v1.2.3-54-g00ecf