TCP Three-way Handshake
TCP Connection Management
Out-of-Order and Duplication(复制) Problem
- Old segment from previous connections to come
- Use long sequence number (32-bits)
- Establish randomly selected initial sequence number (ISN)
- Accept sequence numbers from a small window(To allow the network to clear old segments from the network)
- Enforces a time-out period at end of connection, called maximum segment lifetime (MSL), usually 2 minutes but round-trip delay dependent
TCP Header – Seq and Ack
Sequence Number
- Byte count
- First byte in segment
- 32 bits long
- 0 <= SN <= 2^32-1
- Initial sequence number (ISN) selected during connection setup (SYN flag bit is 1);
Acknowledgement Number
- SN of next byte expected by receiver
- Acknowledges that all prior bytes in stream have been received correctly
- Valid if ACK flag is set
TCP Header – Control bits
Control
- 6 bits
- URG: urgent pointer flag
- Urgent message end = SN + urgent pointer
- ACK: ACK packet flag
- PSH: override TCP buffering
- RST: reset connection
- Upon receipt of RST, connection is terminated and application layer notified(被通知)
- SYN: establish connection
- FIN: close connection
TCP Connection Management
- “Three-way Handshake”
- ISN’s protect against segments from prior connections
If host always uses the same ISN
TCP Connection Closing
“Graceful Close”
TCP Tree-way handshake
- Establish connection
- Transfer data
- Close the connection