pub struct Sendme { /* private fields */ }
Expand description
A Sendme message is used to increase flow-control windows.
To avoid congestion, each Tor circuit and stream keeps track of a number of data cells that it is willing to send. It decrements these numbers every time it sends a cell. If these numbers reach zero, then no more cells can be sent on the stream or circuit.
The only way to re-increment these numbers is by receiving a Sendme cell from the other end of the circuit or stream.
For security, current circuit-level Sendme cells include an authentication tag that proves knowledge of the cells that they are acking.
See tor-spec.txt for more
information; also see the source for tor_proto::circuit::sendme
.
Implementations§
Trait Implementations§
source§impl Body for Sendme
impl Body for Sendme
source§fn decode_from_reader(r: &mut Reader<'_>) -> Result<Self>
fn decode_from_reader(r: &mut Reader<'_>) -> Result<Self>
Decode a relay cell body from a provided reader.
source§fn encode_onto<W: Writer + ?Sized>(self, w: &mut W) -> EncodeResult<()>
fn encode_onto<W: Writer + ?Sized>(self, w: &mut W) -> EncodeResult<()>
Encode the body of this cell into the end of a writer.
source§impl From<Sendme> for AnyRelayMsg
impl From<Sendme> for AnyRelayMsg
source§fn from(m: Sendme) -> AnyRelayMsg
fn from(m: Sendme) -> AnyRelayMsg
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Sendme
impl RefUnwindSafe for Sendme
impl Send for Sendme
impl Sync for Sendme
impl Unpin for Sendme
impl UnwindSafe for Sendme
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more