pub struct ReliableChannelSettings {
pub bandwidth: u32,
pub recv_window_size: u32,
pub send_window_size: u32,
pub burst_bandwidth: u32,
pub init_send: u32,
pub wakeup_time: Duration,
pub initial_rtt: Duration,
pub max_rtt: Duration,
pub rtt_update_factor: f64,
pub rtt_resend_factor: f64,
}
Fields
bandwidth: u32
The target outgoing bandwidth, in bytes / sec.
This is the target bandwidth usage for all sent packets, not the target bandwidth for the actual underlying stream. Both sends and resends (but not currently acks) count against this bandwidth limit, so this is designed to limit the amount of traffic this channel produces.
recv_window_size: u32
The size of the incoming ring buffer
send_window_size: u32
The size of the outgoing ring buffer
burst_bandwidth: u32
The maximum available bytes to send in a single burst
init_send: u32
The sending side of a channel will always send a constant amount of bytes more than what it believes the remote’s recv window actually is, to avoid stalling the connection. This controls the amount past the recv window which will be sent, and also the initial amount of data that will be sent when the connection starts up.
wakeup_time: Duration
The transmission task for the channel will wake up at this rate to do resends and as a Nagle timer.
initial_rtt: Duration
The initial estimate for the RTT.
max_rtt: Duration
The maximum reasonable RTT which will be used as an upper bound for packet RTT values.
rtt_update_factor: f64
The computed RTT for each received acknowledgment will be mixed with the RTT estimate by this factor.
rtt_resend_factor: f64
Resends will occur if an acknowledgment is not received within this multiplicative factor of the estimated RTT.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Settings
impl UnwindSafe for Settings
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more