03. TCP 3-Way Handshake
- Client -> Server: SYN
- Contains a random initial sequence number (ISN), let's say
Seq=X
. - "I'd like to start a conversation. I'll start numbering my bytes at X."
- Contains a random initial sequence number (ISN), let's say
- Server -> Client: [SYN, ACK]
- The server receives the request.
- Contains its own random initial sequence number (
Seq=Y
) and acknowledges the client's number by setting the acknowledgment field to one more than what it received (Ack=X+1
). - "I hear you! I'll start my bytes at Y, and I'm ready for your byte X+1."
- Client -> Server: ACK
- Acknowledges the server's sequence number (
Ack=Y+1
). - "I got your message. Let's talk." At this point, the connection is established, and data transfer can begin.
- Acknowledges the server's sequence number (
Graceful connection release: