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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

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

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.