Module sendme

Source
Expand description

Management for flow control windows.

Tor maintains a separate windows on circuits and on streams. These are controlled by SENDME cells, which (confusingly) are applied either at the circuit or the stream level depending on whether they have a stream ID set.

Circuit sendmes are authenticated: they include a cryptographic tag generated by the cryptography layer. This tag proves that the other side of the circuit really has read all of the data that it’s acknowledging.

Structs§

CircParams 🔒
Parameters used for SENDME windows on circuits: limit at 1000 cells, and each SENDME adjusts by 100.
RecvWindow 🔒
Structure to track when we need to send SENDME cells for incoming data.
SendWindow 🔒
Tracks how many cells we can safely send on a circuit or stream.
SendmeValidator 🔒
Object used to validate SENDMEs as in managing the authenticated tag and verifying it.
StreamParams 🔒
Parameters used for SENDME windows on streams: limit at 500 cells, and each SENDME adjusts by 50.

Traits§

WindowParams 🔒
Helper: parametrizes a window to determine its maximum and its increment.

Functions§

cell_counts_towards_windows 🔒
Return true if this message is counted by flow-control windows.
cmd_counts_towards_windows 🔒
Return true if this message type is counted by flow-control windows.

Type Aliases§

CircRecvWindow 🔒
A circuit’s receive window.
CircSendWindow 🔒
A circuit’s send window.
StreamRecvWindow 🔒
A stream’s receive window.
StreamSendWindow 🔒
A stream’s send window.