Hello, I have two questions about SENDME cell in TOR: Is SENDME a Control cell or a Relay cell? Which node does interpret SENDME cells?The node that receives them or the edge node(client/exit)? thanks
On 30 Apr (12:06:31), marziyeh latifi wrote:
Hello, I have two questions about SENDME cell in TOR: Is SENDME a Control cell or a Relay cell?
A SENDME cell is a control cell. See:
https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt#n1531
However, SENDME exists at the stream level which affects only a specific stream within the circuit and thus their StreamID will be non zero which explains the "sometimes" in the spec.
Which node does interpret SENDME cells?The node that receives them or the edge node(client/exit)?
SENDMEs are always end-to-end so only the end points interpret them.
For example, when a client starts a download of a large file from an Exit node, the Exit will send some data (up to what we call the circuit window size) and wait for a SENDME cell _from_ the client to send more. In order word, the client sends the SENDME towards the Exit to tell it "please send me more data".
Now, if the client uploads data to the Exit, this is reverse where the Exit will send a SENDME when it is ready to receive more data.
All this is managed by the package and delivery window maintained at each end points. See Section 7 of torspec.txt for more details.
Cheers! David
Sorry for the very bad Subject line. Thank you Mutt :).
David
On 30 Apr (15:59:23), David Goulet wrote:
On 30 Apr (12:06:31), marziyeh latifi wrote:
Hello, I have two questions about SENDME cell in TOR: Is SENDME a Control cell or a Relay cell?
A SENDME cell is a control cell. See:
https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt#n1531
However, SENDME exists at the stream level which affects only a specific stream within the circuit and thus their StreamID will be non zero which explains the "sometimes" in the spec.
Which node does interpret SENDME cells?The node that receives them or the edge node(client/exit)?
SENDMEs are always end-to-end so only the end points interpret them.
For example, when a client starts a download of a large file from an Exit node, the Exit will send some data (up to what we call the circuit window size) and wait for a SENDME cell _from_ the client to send more. In order word, the client sends the SENDME towards the Exit to tell it "please send me more data".
Now, if the client uploads data to the Exit, this is reverse where the Exit will send a SENDME when it is ready to receive more data.
All this is managed by the package and delivery window maintained at each end points. See Section 7 of torspec.txt for more details.
Cheers! David
-- 71kN/ro+ccyP6zH5RukUX1TNXn7KjZ+E8ffp3xaYOzg=
tor-relays mailing list tor-relays@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays
tor-relays@lists.torproject.org