#[repr(C, packed(1))]pub struct TcpHeader {
pub src_port: u16,
pub dst_port: u16,
pub seq_number: u32,
pub ack_number: u32,
pub data_offset_flags: u16,
pub window_size: u16,
pub checksum: u16,
pub urgent_pointer: u16,
}Expand description
TCP header
Fields§
§src_port: u16Source port
dst_port: u16Destination port
seq_number: u32Sequence number
ack_number: u32Acknowledgment number
data_offset_flags: u16Data offset (4 bits) + reserved (4 bits) + flags (8 bits)
window_size: u16Window size
checksum: u16Checksum
urgent_pointer: u16Urgent pointer
Implementations§
Source§impl TcpHeader
impl TcpHeader
Sourcepub fn data_offset(&self) -> usize
pub fn data_offset(&self) -> usize
Get data offset in bytes
Sourcepub fn calculate_checksum(
&self,
src_ip: [u8; 4],
dst_ip: [u8; 4],
data: &[u8],
) -> u16
pub fn calculate_checksum( &self, src_ip: [u8; 4], dst_ip: [u8; 4], data: &[u8], ) -> u16
Calculate TCP checksum
Sourcepub fn from_bytes(bytes: &[u8]) -> Option<Self>
pub fn from_bytes(bytes: &[u8]) -> Option<Self>
Parse header from bytes
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TcpHeader
impl RefUnwindSafe for TcpHeader
impl Send for TcpHeader
impl Sync for TcpHeader
impl Unpin for TcpHeader
impl UnwindSafe for TcpHeader
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)