Term
What defines a tcp connection? |
|
Definition
|
|
Term
|
Definition
The side that sends the first SYN is said to perform active open. The same principle is used for closing a connection with FINs. |
|
|
Term
|
Definition
The side that receives the initial SYN and then sends the next SYN is said to perform passive open. The same principle is used for closing a connection with FINs. |
|
|
Term
What is simultaneous open? |
|
Definition
When 2 hosts perform an active open at the same time, using identical sockets. The same principle is used for closing a connection with FINs. |
|
|
Term
What is communicated to achieve syn during the 3-way handshake? |
|
Definition
|
|
Term
What messages are sent during a clean TCP session teardown? |
|
Definition
FIN, ACK - a-b ACK - b-a FIN, ACK - a-b ACK - b-a |
|
|
Term
What happens if a FIN is lost? |
|
Definition
It is retransmitted until it is acknowledged. |
|
|
Term
|
Definition
This is where one host sends a FIN, the receiver acknowledges but doesn't send its own FIN. This usually occurs when the receiver has more to send. |
|
|
Term
What defines a valid TCP segment. |
|
Definition
The sockets involved and the active window of sequence numbers. |
|
|
Term
What is exponential backoff when trying to actively open a TCP session? |
|
Definition
This is the increasing delay between the transmission of unacknowledged SYN messages. The backoff is doubled each time. |
|
|
Term
what is the makeup of a kind 0 or 1 tcp option? |
|
Definition
They are a single byte in length. |
|
|
Term
what is the makeup of a tcp option other than kind 0 or 1? |
|
Definition
1 byte kind 1 byte total length (inc Kind and Length) Data (variable) |
|
|
Term
why do we need a NOP option? |
|
Definition
allows the sender to pad fields to a multiple of 4 bytes (the unit used by the TCP Header Length field). |
|
|
Term
|
Definition
Defines the largest segment that a TCP is willing to accept. MSS only defines TCP data. Usually communicated during session setup. Allows for 16 bits to define MSS value. Default value = 536 bytes, which allows a host to meet the min required IP size of 576 bytes. |
|
|
Term
Describe the SACK option. |
|
Definition
This allows a receiver to inform a sender of any holes in the received data. The sender can then retransmit the missing segments without having to retransmit the entire window. |
|
|
Term
How does a sender know if a receiver is capable of sending SACK options? |
|
Definition
The SACK-Permitted option is advertised during session setup. |
|
|
Term
Describe the makeup of a SACK option. |
|
Definition
1-byte kind 1-byte length A pair of 32-bit words are used to advertise all missing blocks (seq numbers) of data. |
|
|
Term
What is the maximum amount of SACK blocks that may be sent in a single segment? |
|
Definition
|
|
Term
Describe the Window Scale (WSCALE or WSOPT) option. |
|
Definition
Effectively increases the capacity of TCP Window Advertisement field from 16 to about 30 bits. Uses 1-byte to define scale (n) up to max of 14. max window size can be increased to around 1GB. Must be negotiated during session setup. Scale of 0 = no scaling. |
|
|
Term
Describe the Timestamps option (TSOPT). |
|
Definition
Allows sender to place 2 x 4-byte timestamps in every segment. TSV = Timestamp Value Field of data sent. TSER = Timestamp Echo Retry echos TSV of the data it is acknowledging |
|
|
Term
What is the size of a timestamp option? |
|
Definition
10 bytes - 1-byte kind, 1-byte length, 2 x 4 byte timestamps. |
|
|
Term
What does the timestamp option achieve? |
|
Definition
allows a sender to calculate retransmission timeouts. Provides protection against wrapped sequence numbers (PAWS), by discarding same sequnce number segments from previous sessions. Timestamps are the differentiator here. |
|
|
Term
What does the User Timeout option do? |
|
Definition
Specifies the amount of time a sender is willing to wait for an ACK before concluding that the remote end has failed. |
|
|
Term
What is the Authentication Option (TCP-AO)? |
|
Definition
Allows hosts to validate the integrity of tcp data being received. |
|
|
Term
What is the goal of PMTU? |
|
Definition
To help protocols such as TCP avoid fragmentation. |
|
|
Term
Why is it more difficult for UDP to adapt its datagram size based on PMTU? |
|
Definition
Because the datagram size is defined by the application. |
|
|
Term
What does tcp use to select its send max segment size (SMSS)? |
|
Definition
either the MSS announced by the other end or the minimum MTU (default 536 bytes) of the outgoing interface. |
|
|
Term
What will happen if a TCP segment with a defined smss value encounters a link with a smaller MTU? |
|
Definition
A PTB should be received. If it suggests a next-hop MTU, the segment size will be adjusted accordingly. Otherwise the sender might try a variety of values. |
|
|
Term
Explain what a PMTUD black hole is and what some common causes are. |
|
Definition
Black holes arise when a system that relies on ICMP messages for PMTUD doesn't receive them. Common causes are firewalls and NAT implementations that block this traffic. This can be difficult to detect as it is only the large segments that have a problem. Some TCP implementations have "black hole detection". |
|
|
Term
TRUE/FALSE - Asymmetric PMTUD values can be calculated in either direction? |
|
Definition
|
|
Term
What determines the action that TCP takes? |
|
Definition
The state that TCP is in, see the TCP finite state machine for details. |
|
|
Term
What is the MSL and what are some common values? |
|
Definition
Maximum segment lifetime, common values are 30s, 1 min or 2 min. |
|
|
Term
What is the 2msl wait time and what is it trying to achieve? |
|
Definition
The 2MSL wait provides protection against delayed segments from an earlier instantiation of a connection from being interpreted as part of a new connection. This wait time is twice the MSL. |
|
|
Term
What are TCP resets and when are they used? |
|
Definition
Resets normally result in a fast teardown of a connection. They are sent when TCP receives a segment that doesn't appeat correct for the connection. |
|
|
Term
List the TCP option values. |
|
Definition
|
|