Bird
Raised Fist0
Computer Networksknowledge~10 mins

Three-way handshake in Computer Networks - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Three-way handshake
Client sends SYN
↓
Server receives SYN
↓
Server sends SYN-ACK
↓
Client receives SYN-ACK
↓
Client sends ACK
↓
Server receives ACK
↓
Connection Established
The three-way handshake is a process where the client and server exchange three messages (SYN, SYN-ACK, ACK) to establish a reliable connection.
Execution Sample
Computer Networks
Client -> Server: SYN
Server -> Client: SYN-ACK
Client -> Server: ACK
This sequence shows the three messages exchanged to start a TCP connection.
Analysis Table
StepMessage SentSenderReceiverPurposeState After
1SYNClientServerRequest connectionSYN sent
2SYN-ACKServerClientAcknowledge SYN and send own SYNSYN-ACK sent
3ACKClientServerAcknowledge SYN-ACKConnection established
4----Handshake complete, ready to transfer data
💡 After step 3, the connection is established and handshake ends.
State Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
Client StateClosedSYN sentWaiting ACKACK sentEstablished
Server StateClosedSYN receivedSYN-ACK sentWaiting ACKEstablished
Key Insights - 3 Insights
Why does the server send SYN-ACK instead of just ACK?
The server sends SYN-ACK to both acknowledge the client's SYN and to send its own SYN to the client, indicating it wants to establish a connection too. This is shown in step 2 of the execution_table.
What happens if the client never sends the final ACK?
The server stays waiting for the ACK and does not establish the connection. This is implied after step 2 in the execution_table where the client is expected to send ACK.
Is the connection established after the first SYN message?
No, the connection is only established after the client sends the final ACK (step 3). Before that, both sides are still in the process of setting up.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what message does the client send at step 3?
ASYN-ACK
BACK
CSYN
DFIN
💡 Hint
Check the 'Message Sent' column at step 3 in the execution_table.
At which step does the server send a message to the client?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Sender' column in the execution_table to find when the server sends a message.
If the client never sends the ACK, what state does the server remain in after step 2?
AWaiting ACK
BClosed
CEstablished
DSYN sent
💡 Hint
Refer to the 'State After' column after step 2 in the variable_tracker.
Concept Snapshot
Three-way handshake:
1. Client sends SYN to request connection.
2. Server replies with SYN-ACK to acknowledge and request connection.
3. Client sends ACK to confirm.
Connection established after these three steps.
Ensures both sides are ready to communicate.
Full Transcript
The three-way handshake is a process used in computer networks to establish a reliable connection between a client and a server. It involves three steps: first, the client sends a SYN message to the server to request a connection. Second, the server responds with a SYN-ACK message to acknowledge the request and send its own connection request. Third, the client sends an ACK message to confirm the connection. After these three messages are exchanged, the connection is established and both sides can start communicating. This handshake ensures that both client and server are synchronized and ready to transfer data.

Practice

(1/5)
1. What is the main purpose of the three-way handshake in computer networks?
easy
A. To disconnect a network session
B. To encrypt data before sending
C. To establish a reliable connection between two computers
D. To assign IP addresses automatically

Solution

  1. Step 1: Understand the role of the three-way handshake

    The three-way handshake is a process used in TCP to start a connection reliably.
  2. Step 2: Identify the correct purpose

    It ensures both computers agree to communicate before data transfer begins.
  3. Final Answer:

    To establish a reliable connection between two computers -> Option C
  4. Quick Check:

    Three-way handshake = establish connection [OK]
Hint: Remember: handshake means starting a connection [OK]
Common Mistakes:
  • Confusing handshake with encryption
  • Thinking it disconnects sessions
  • Mixing it up with IP address assignment
2. Which sequence correctly represents the messages exchanged during the TCP three-way handshake?
easy
A. SYN, SYN-ACK, ACK
B. ACK, SYN, SYN-ACK
C. SYN-ACK, ACK, SYN
D. ACK, ACK, SYN

Solution

  1. Step 1: Recall the message order in TCP handshake

    The client first sends SYN to request connection.
  2. Step 2: Identify the correct sequence

    The server replies with SYN-ACK, then client sends ACK to confirm.
  3. Final Answer:

    SYN, SYN-ACK, ACK -> Option A
  4. Quick Check:

    Order is SYN -> SYN-ACK -> ACK [OK]
Hint: Think: Client SYN, Server SYN-ACK, Client ACK [OK]
Common Mistakes:
  • Mixing up the order of messages
  • Forgetting the SYN-ACK step
  • Assuming ACK comes first
3. If a client sends a SYN message but does not receive a SYN-ACK response, what will happen next?
medium
A. The client immediately sends an ACK message
B. The client will resend the SYN message after a timeout
C. The connection is established without confirmation
D. The client closes the connection instantly

Solution

  1. Step 1: Understand client behavior on no response

    If the client does not get SYN-ACK, it assumes the message was lost or server is unreachable.
  2. Step 2: Identify the retry mechanism

    The client waits for a timeout, then resends the SYN to try again.
  3. Final Answer:

    The client will resend the SYN message after a timeout -> Option B
  4. Quick Check:

    No SYN-ACK -> resend SYN [OK]
Hint: No reply? Client retries SYN after waiting [OK]
Common Mistakes:
  • Assuming connection established without SYN-ACK
  • Thinking client sends ACK first
  • Believing client closes connection immediately
4. A network engineer notices that after sending SYN, the client never receives SYN-ACK. Which of these is the most likely cause?
medium
A. The server is not listening on the target port
B. The client sent an ACK instead of SYN
C. The client skipped sending SYN-ACK
D. The client closed the connection too early

Solution

  1. Step 1: Analyze the missing SYN-ACK response

    If no SYN-ACK arrives, the server likely did not respond to SYN.
  2. Step 2: Identify common reasons for no response

    One common reason is the server not listening on the requested port, so it ignores SYN.
  3. Final Answer:

    The server is not listening on the target port -> Option A
  4. Quick Check:

    No SYN-ACK means server not listening [OK]
Hint: No SYN-ACK? Check if server port is open [OK]
Common Mistakes:
  • Blaming client for sending wrong message
  • Thinking client sends SYN-ACK
  • Assuming client closed connection early
5. During the three-way handshake, what could happen if the final ACK message is lost in transit?
hard
A. The server assumes connection is established without ACK
B. The client will resend SYN immediately
C. The connection will close automatically
D. The server will retransmit SYN-ACK until it receives ACK

Solution

  1. Step 1: Understand the role of the final ACK

    The final ACK confirms the client received the server's SYN-ACK and completes the handshake.
  2. Step 2: Identify server behavior if ACK is lost

    If the server does not get ACK, it will retransmit SYN-ACK to prompt the client again.
  3. Final Answer:

    The server will retransmit SYN-ACK until it receives ACK -> Option D
  4. Quick Check:

    Lost ACK -> server retries SYN-ACK [OK]
Hint: Lost ACK? Server keeps sending SYN-ACK [OK]
Common Mistakes:
  • Thinking client resends SYN instead
  • Assuming connection closes automatically
  • Believing server accepts connection without ACK
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard