[−][src]Enum srt_protocol::packet::ShakeType
See https://tools.ietf.org/html/draft-gg-udt-03#page-10
More applicably,
Note: the client-server connection uses: --> INDUCTION (empty) <-- INDUCTION (cookie) --> CONCLUSION (cookie) <-- CONCLUSION (ok)
The rendezvous HSv4 (legacy): --> WAVEAHAND (effective only if peer is also connecting) <-- CONCLUSION (empty) (consider yourself connected upon reception) --> AGREEMENT (sent as a response for conclusion, requires no response)
The rendezvous HSv5 (using SRT extensions): --> WAVEAHAND (with cookie) --- (selecting INITIATOR/RESPONDER by cookie contest - comparing one another's cookie) <-- CONCLUSION (without extensions, if RESPONDER, with extensions, if INITIATOR) --> CONCLUSION (with response extensions, if RESPONDER) <-- AGREEMENT (sent exclusively by INITIATOR upon reception of CONCLUSIOn with response extensions)
Variants
First handshake exchange in client-server connection
A rendezvous connection, initial connect request, 0
A rendezvous connection, response to initial connect request, -1 Also a regular connection client response to the second handshake
Final rendezvous check, -2
Rejection(RejectReason)Reject
Trait Implementations
impl Clone for ShakeType[src]
impl Copy for ShakeType[src]
impl Debug for ShakeType[src]
impl Eq for ShakeType[src]
impl Into<i32> for ShakeType[src]
impl PartialEq<ShakeType> for ShakeType[src]
impl StructuralEq for ShakeType[src]
impl StructuralPartialEq for ShakeType[src]
impl TryFrom<i32> for ShakeType[src]
Auto Trait Implementations
impl RefUnwindSafe for ShakeType[src]
impl Send for ShakeType[src]
impl Sync for ShakeType[src]
impl Unpin for ShakeType[src]
impl UnwindSafe for ShakeType[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,