pub enum ShakeType {
Induction,
Waveahand,
Conclusion,
Agreement,
Rejection(RejectReason),
}
Expand description
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§
Induction
First handshake exchange in client-server connection
Waveahand
A rendezvous connection, initial connect request, 0
Conclusion
A rendezvous connection, response to initial connect request, -1 Also a regular connection client response to the second handshake
Agreement
Final rendezvous check, -2
Rejection(RejectReason)
Reject
Trait Implementations§
impl Copy for ShakeType
impl Eq for ShakeType
impl StructuralPartialEq for ShakeType
Auto Trait Implementations§
impl Freeze for ShakeType
impl RefUnwindSafe for ShakeType
impl Send for ShakeType
impl Sync for ShakeType
impl Unpin for ShakeType
impl UnwindSafe for ShakeType
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.