Struct etherparse::TcpHeader[][src]

pub struct TcpHeader {
Show 16 fields pub source_port: u16, pub destination_port: u16, pub sequence_number: u32, pub acknowledgment_number: u32, pub ns: bool, pub fin: bool, pub syn: bool, pub rst: bool, pub psh: bool, pub ack: bool, pub urg: bool, pub ece: bool, pub cwr: bool, pub window_size: u16, pub checksum: u16, pub urgent_pointer: u16, // some fields omitted
}
Expand description

TCP header according to rfc 793.

Field descriptions copied from RFC 793 page 15++

Fields

source_port: u16

The source port number.

destination_port: u16

The destination port number.

sequence_number: u32

The sequence number of the first data octet in this segment (except when SYN is present).

If SYN is present the sequence number is the initial sequence number (ISN) and the first data octet is ISN+1. [copied from RFC 793, page 16]

acknowledgment_number: u32

If the ACK control bit is set this field contains the value of the next sequence number the sender of the segment is expecting to receive.

Once a connection is established this is always sent.

ns: bool

ECN-nonce - concealment protection (experimental: see RFC 3540)

fin: bool

No more data from sender

syn: bool

Synchronize sequence numbers

rst: bool

Reset the connection

psh: bool

Push Function

ack: bool

Acknowledgment field significant

urg: bool

Urgent Pointer field significant

ece: bool

ECN-Echo (RFC 3168)

cwr: bool

Congestion Window Reduced (CWR) flag

This flag is set by the sending host to indicate that it received a TCP segment with the ECE flag set and had responded in congestion control mechanism (added to header by RFC 3168).

window_size: u16

The number of data octets beginning with the one indicated in the acknowledgment field which the sender of this segment is willing to accept.

checksum: u16

Checksum (16 bit one’s complement) of the pseudo ip header, this tcp header and the payload.

urgent_pointer: u16

This field communicates the current value of the urgent pointer as a positive offset from the sequence number in this segment.

The urgent pointer points to the sequence number of the octet following the urgent data. This field is only be interpreted in segments with the URG control bit set.

Implementations

Creates a TcpHeader with the given values and the rest initialized with default values.

The number of 32 bit words in the TCP Header.

This indicates where the data begins. The TCP header (even one including options) is an integral number of 32 bits long.

Returns the length of the header including the options.

Returns the options size in bytes based on the currently set data_offset. Returns None if the data_offset is smaller then the minimum size or bigger then the maximum supported size.

Returns a slice containing the options of the header (size is determined via the data_offset field.

Sets the options (overwrites the current options) or returns an error when there is not enough space.

Sets the options to the data given.

Returns an iterator that allows to iterate through all known TCP header options.

👎 Deprecated since 0.10.1:

Use TcpHeader::from_slice instead.

Renamed to TcpHeader::from_slice

Reads a tcp header from a slice

Read a tcp header from the current position

Write the tcp header to a stream (does NOT calculate the checksum).

Calculates the upd header checksum based on a ipv4 header and returns the result. This does NOT set the checksum.

Calculates the checksum for the current header in ipv4 mode and returns the result. This does NOT set the checksum.

Calculates the upd header checksum based on a ipv6 header and returns the result. This does NOT set the checksum..

Calculates the checksum for the current header in ipv6 mode and returns the result. This does NOT set the checksum.

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

Returns the “default value” for a type. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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

Performs the conversion.

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.