Struct srt_protocol::packet::DataPacket
source[−]pub struct DataPacket {
pub seq_number: SeqNumber,
pub message_loc: PacketLocation,
pub in_order_delivery: bool,
pub encryption: DataEncryption,
pub retransmitted: bool,
pub message_number: MsgNumber,
pub timestamp: TimeStamp,
pub dest_sockid: SocketId,
pub payload: Bytes,
}
Expand description
A UDT packet carrying data
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Packet Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF |O|K K|R| Message Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time Stamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Socket ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields
seq_number: SeqNumber
The sequence number is packet based, so if packet n has
sequence number i
, the next would have i + 1
Represented by a 31 bit unsigned integer, so
Sequence number is wrapped after it recahed 2^31 - 1
message_loc: PacketLocation
Message location and delivery order Represented by the first two bits in the second row of 4 bytes
in_order_delivery: bool
In order delivery, the third bit in the second row of 4 bytes
encryption: DataEncryption
row 2 bits 4+5, which key it’s encrypted with, if it is
retransmitted: bool
message_number: MsgNumber
The message number, is the ID of the message being passed Represented by the final 26 bits of the third row It’s only 26 bits long, so it’s wrapped after 2^26 - 1
timestamp: TimeStamp
The timestamp, relative to when the connection was created.
dest_sockid: SocketId
The dest socket id, used for UDP multiplexing
payload: Bytes
The rest of the packet, the payload
Implementations
Trait Implementations
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for DataPacket
impl Send for DataPacket
impl Sync for DataPacket
impl Unpin for DataPacket
impl UnwindSafe for DataPacket
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.