Bird
Raised Fist0
Computer Networksknowledge~10 mins

TCP connection termination (four-way handshake) in Computer Networks - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - TCP connection termination (four-way handshake)
Client sends FIN
↓
Server receives FIN
↓
Server sends ACK
↓
Server sends FIN
↓
Client receives FIN
↓
Client sends ACK
↓
Connection closed
The TCP connection closes in four steps: client sends FIN, server acknowledges and sends its own FIN, client acknowledges, then connection closes.
Execution Sample
Computer Networks
Client -> Server: FIN
Server -> Client: ACK
Server -> Client: FIN
Client -> Server: ACK
Shows the four messages exchanged to close a TCP connection gracefully.
Analysis Table
StepActionSenderReceiverMessageConnection State
1Send FINClientServerFINClient: FIN sent, waiting for ACK
2Receive FINServerServerFIN receivedServer: FIN received, send ACK
3Send ACKServerClientACKServer: ACK sent, send own FIN
4Send FINServerClientFINServer: FIN sent, waiting for ACK
5Receive FINClientClientFIN receivedClient: FIN received, send ACK
6Send ACKClientServerACKClient: ACK sent, connection closing
7Connection closedBothBothNoneConnection fully closed
💡 Connection closes after client sends final ACK and both sides confirm closure.
State Tracker
VariableStartAfter Step 1After Step 3After Step 4After Step 6Final
Client StateESTABLISHEDFIN_WAIT_1FIN_WAIT_1FIN_WAIT_1TIME_WAITCLOSED
Server StateESTABLISHEDESTABLISHEDCLOSE_WAITLAST_ACKLAST_ACKCLOSED
Key Insights - 3 Insights
Why does TCP use four steps instead of just two to close a connection?
Because each side must close its own sending channel separately, the client first tells the server it finished sending (FIN), the server acknowledges (ACK), then the server tells the client it finished sending (FIN), and finally the client acknowledges (ACK). This is shown in steps 1-6 in the execution_table.
What happens if the final ACK from the client is lost?
The server will retransmit its FIN until it receives the ACK, ensuring reliable connection closure. This is implied by the waiting states after steps 4 and 6 in the execution_table.
Can data still be sent after the client sends the first FIN?
Yes, because the connection is half-closed; the server can still send data until it sends its own FIN. This is shown by the server's state remaining ESTABLISHED after step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the Client State after step 1?
AFIN_WAIT_1
BESTABLISHED
CACK_SENT
DCLOSED
💡 Hint
Check the variable_tracker row for Client State after Step 1.
At which step does the Server send its own FIN message?
AStep 2
BStep 3
CStep 4
DStep 6
💡 Hint
Look at the 'Message' column in execution_table for when Server sends FIN.
If the client never sends the final ACK, what will the server do according to the process?
AClose connection immediately
BRetransmit FIN until ACK received
CSend another FIN
DIgnore and wait forever
💡 Hint
Refer to key_moments explanation about lost final ACK and server behavior.
Concept Snapshot
TCP connection termination uses a four-way handshake:
1. Client sends FIN to close its sending side.
2. Server acknowledges with ACK.
3. Server sends its own FIN to close its sending side.
4. Client acknowledges with ACK.
Each side closes independently, ensuring reliable shutdown.
Full Transcript
TCP connection termination happens in four steps called the four-way handshake. First, the client sends a FIN message to tell the server it wants to stop sending data. The server receives this FIN and replies with an ACK to confirm. Then the server sends its own FIN to tell the client it also wants to stop sending. Finally, the client sends an ACK back to the server. After these four messages, the connection is fully closed. Each side closes its sending channel separately, allowing any remaining data to be sent before closing. If any message is lost, TCP will retransmit to ensure reliable closure.

Practice

(1/5)
1. What is the main purpose of the TCP four-way handshake during connection termination?
easy
A. To allow both sides to close their sending channels independently
B. To establish a new connection between two hosts
C. To encrypt data before transmission
D. To synchronize sequence numbers at the start of communication

Solution

  1. Step 1: Understand TCP connection termination

    TCP uses a four-way handshake to close connections, allowing each side to finish sending data independently.
  2. Step 2: Identify the purpose of the handshake

    This process ensures no data is lost and both sides agree to close the connection properly.
  3. Final Answer:

    To allow both sides to close their sending channels independently -> Option A
  4. Quick Check:

    Four-way handshake = independent close [OK]
Hint: Four steps mean both sides close separately [OK]
Common Mistakes:
  • Confusing termination with connection setup
  • Thinking handshake encrypts data
  • Assuming simultaneous close in TCP
2. Which of the following is the correct sequence of TCP flags used in the four-way handshake for connection termination?
easy
A. FIN, SYN, ACK, FIN
B. SYN, ACK, FIN, RST
C. ACK, SYN, FIN, ACK
D. FIN, ACK, FIN, ACK

Solution

  1. Step 1: Recall TCP termination flags

    The four-way handshake uses FIN and ACK flags to close the connection properly.
  2. Step 2: Identify correct flag order

    The sequence is FIN from one side, ACK from the other, then FIN from the second side, and finally ACK from the first side.
  3. Final Answer:

    FIN, ACK, FIN, ACK -> Option D
  4. Quick Check:

    Termination = FIN then ACK pairs [OK]
Hint: Termination uses FIN and ACK flags in pairs [OK]
Common Mistakes:
  • Including SYN or RST flags in termination
  • Mixing order of flags
  • Assuming simultaneous FIN flags
3. Consider this sequence of TCP flags exchanged between Host A and Host B during connection termination:
A sends FIN
B replies ACK
B sends FIN
A replies ACK
What is the state of the connection after Host A sends the final ACK?
medium
A. Connection is fully closed
B. Connection is half-closed, waiting for more data
C. Connection is still established
D. Connection is reset abruptly

Solution

  1. Step 1: Analyze the four-way handshake steps

    Host A sends FIN, B acknowledges, B sends FIN, and A acknowledges. This completes the four steps.
  2. Step 2: Understand connection state after final ACK

    After the last ACK, both sides have agreed to close, so the connection is fully closed.
  3. Final Answer:

    Connection is fully closed -> Option A
  4. Quick Check:

    Final ACK means full close [OK]
Hint: Final ACK completes termination [OK]
Common Mistakes:
  • Thinking connection stays half-open after final ACK
  • Confusing reset with normal close
  • Assuming data can still be sent
4. A TCP connection termination sequence is observed as:
Host A sends FIN
Host B sends FIN
Host A sends ACK
Which step is missing or incorrect in this sequence?
medium
A. Host B should send RST instead of FIN
B. Host A should send SYN before FIN
C. Host B should send ACK before sending FIN
D. Host A should send FIN twice

Solution

  1. Step 1: Review correct four-way handshake order

    After Host A sends FIN, Host B must acknowledge (ACK) before sending its own FIN.
  2. Step 2: Identify missing ACK

    The sequence shows Host B sending FIN without ACKing Host A's FIN first, which is incorrect.
  3. Final Answer:

    Host B should send ACK before sending FIN -> Option C
  4. Quick Check:

    ACK always precedes FIN from other side [OK]
Hint: ACK must come before FIN from other side [OK]
Common Mistakes:
  • Skipping ACK step
  • Confusing SYN with FIN
  • Thinking RST is normal close
5. During a TCP connection termination, if Host A sends a FIN and immediately closes its socket without waiting for the ACK from Host B, what is the likely outcome?
hard
A. Host B will retransmit FIN until it receives ACK, causing delays
B. The connection will close cleanly without issues
C. Host A will receive data after closing the socket
D. Host B will reset the connection immediately

Solution

  1. Step 1: Understand proper termination behavior

    In TCP, after sending FIN, the application closes the socket, but the TCP stack manages states like FIN_WAIT_1, FIN_WAIT_2, and TIME_WAIT independently.
  2. Step 2: Analyze consequence of immediate close

    The stack processes incoming ACK and FIN from Host B, sending responses as needed, so the connection closes cleanly without issues.
  3. Final Answer:

    The connection will close cleanly without issues -> Option B
  4. Quick Check:

    Stack handles states after socket close [OK]
Hint: TCP stack handles states post-socket close [OK]
Common Mistakes:
  • Thinking immediate close causes reset by peer
  • Expecting retransmissions without ACK loss
  • Confusing socket close with immediate connection abort
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