Networking  

What is TCP Three-Way Handshake and How Does it Establish Connection?

Introduction

When you open a website, send a message, or use any web application in India or anywhere in the world, your device does not directly start sending data. First, it creates a reliable connection with the server. This connection setup process is called the TCP three-way handshake.

In simple words, TCP handshake is like saying “Hello” before starting a conversation. It ensures that both the client (your device) and the server (website or API) are ready to communicate.

Understanding TCP three-way handshake is very important for beginners in networking, software testing, web development, and system design because it directly impacts website performance, API response time, and connection reliability.

What is TCP (Transmission Control Protocol)?

TCP is one of the core protocols of the internet that ensures reliable data communication between two systems.

In simple words, TCP makes sure that:

  • Data reaches the correct destination

  • Data is delivered in the right order

  • No data is lost during transmission

Real-life example:
Think of TCP like sending a courier with tracking. You know when it is sent, where it is, and when it is delivered correctly.

In real-world applications like online banking, e-commerce websites in India, and login systems, TCP plays a critical role in maintaining secure and reliable communication.

What is TCP Three-Way Handshake?

The TCP three-way handshake is a step-by-step process used to establish a secure and reliable connection between a client and a server before actual data transfer begins.

It is called “three-way” because three messages are exchanged between the client and server.

The main purpose of this process is:

  • To confirm both systems are ready

  • To agree on communication parameters

  • To synchronize sequence numbers for data transfer

Without this process, communication would be unreliable and error-prone.

Why is TCP Handshake Important in Networking?

TCP handshake is very important because it ensures a stable connection before data exchange.

Let’s understand this in detail:

First, it checks if the server is available. If the server is down, the connection will not be established.

Second, it ensures both sides are ready to communicate. This avoids sending data to a system that is not prepared.

Third, it helps in tracking data packets using sequence numbers, which ensures correct order delivery.

User-visible impact if not handled properly:

  • Websites may not load properly

  • API requests may fail

  • Users may see connection timeout errors

This is why TCP handshake is a foundational concept in web applications and internet communication.

Step-by-Step Process of TCP Three-Way Handshake

Now let’s understand how TCP handshake works step by step in a very simple way.

Step 1: SYN (Synchronize Request)

In the first step, the client (your device) sends a request to the server.

This request is called SYN.

What happens here:

  • The client asks the server to start communication

  • It sends an initial sequence number

Simple meaning:

“Hello server, I want to connect with you.”

Real-world example:
When you open a website like an e-commerce platform in India, your browser sends a SYN request to the server.

Step 2: SYN-ACK (Synchronize + Acknowledge)

In the second step, the server responds to the client.

This response is called SYN-ACK.

What happens here:

  • Server acknowledges the client’s request

  • Server sends its own sequence number

Simple meaning:

“Hello client, I received your request and I am ready to communicate.”

This step is very important because it confirms that the server is active and reachable.

Step 3: ACK (Acknowledgement)

In the final step, the client sends an ACK message back to the server.

What happens here:

  • Client confirms that it received server response

  • Connection is officially established

Simple meaning:

“Great, connection is established. Let’s start sending data.”

After this step, both client and server are fully ready to communicate.

Simple Flow of TCP Handshake

  • Client → Server: SYN

  • Server → Client: SYN-ACK

  • Client → Server: ACK

After these three steps, the connection is successfully established.

Real-Life Analogy for Better Understanding

Let’s understand this using a simple daily life example.

Imagine you are calling a friend:

  • You dial the number (SYN)

  • Your friend answers and says “Hello” (SYN-ACK)

  • You respond “Hi” (ACK)

Now both of you can start talking.

This is exactly how TCP handshake works in networking.

What Happens After the TCP Handshake?

Once the connection is established:

  • Data transfer begins

  • Information is sent in small packets

  • TCP ensures all packets are delivered correctly

Examples of real-world usage:

  • Loading a website in a browser

  • Calling an API in mobile app testing

  • Downloading files

This process is used in protocols like HTTP, HTTPS, and FTP.

What Happens if TCP Handshake Fails?

If any of the three steps fail, the connection will not be established.

Common reasons include:

  • Server is down

  • Network connectivity issues

  • Firewall blocking the request

User-visible symptoms:

  • Website not loading

  • API timeout error

  • “Connection failed” message

In such cases, the system may retry the connection automatically.

TCP vs UDP (Basic Understanding)

To understand TCP better, let’s compare it with UDP.

TCP:

  • Connection-based communication

  • Reliable and accurate

  • Slightly slower due to handshake

UDP:

  • No connection setup

  • Faster but less reliable

Example:

  • TCP is used in web applications, banking apps, login systems

  • UDP is used in video streaming, online gaming

Advantages of TCP Three-Way Handshake

TCP handshake provides multiple benefits:

  • Ensures reliable connection setup

  • Prevents data loss

  • Confirms both client and server readiness

  • Maintains data order using sequence numbers

These advantages make TCP ideal for critical applications like payments and secure communications.

Disadvantages of TCP Handshake

Although useful, it has some limitations:

  • Adds slight delay before data transfer

  • Increases network overhead

This is why some real-time applications prefer UDP.

Practical Scenario for Developers and Testers

If you are a software tester or developer in India working on web or mobile apps:

  • Every API call uses TCP handshake

  • Slow performance may be due to repeated handshakes

Example:

  • API taking longer time because connection is created again and again

Solution:

  • Use persistent connections (Keep-Alive)

This improves performance and reduces latency.

Before vs After Understanding TCP Handshake

Before understanding:

  • Networking seems confusing

  • Hard to debug connection errors

After understanding:

  • Easy to analyze network issues

  • Better troubleshooting skills

  • Improved system performance understanding

Diagram-Style Explanation of TCP Three-Way Handshake

Understanding TCP handshake becomes much easier when you visualize the flow.

Here is a simple diagram-style explanation in words:

Client Server
| -------- SYN (Seq = X) --------> |
| <---- SYN-ACK (Seq = Y, Ack = X+1) ---- |
| -------- ACK (Ack = Y+1) -------> |

Explanation in simple words:

  • First, the client sends a SYN request with its sequence number (X)

  • Then, the server replies with SYN-ACK, acknowledging X and sending its own sequence number (Y)

  • Finally, the client sends ACK to confirm Y

After this, the connection is established.

Why this diagram is useful for interviews:

  • It clearly shows data flow direction

  • Helps explain sequence and acknowledgment numbers

  • Makes concepts easy to remember

Packet-Level Deep Dive (SYN Flags and Sequence Numbers)

Now let’s understand what actually happens at a deeper technical level, but still in simple words.

Each TCP packet contains flags and sequence numbers.

What are TCP Flags?

Flags are control bits that define the purpose of a packet.

Important flags in handshake:

  • SYN (Synchronize)

  • ACK (Acknowledgment)

Step-by-Step Packet Breakdown

Step 1: SYN Packet

  • SYN flag = 1

  • ACK flag = 0

  • Sequence Number = X

Meaning:

Client wants to start a connection.

Step 2: SYN-ACK Packet

  • SYN flag = 1

  • ACK flag = 1

  • Sequence Number = Y

  • Acknowledgment Number = X + 1

Meaning:

Server acknowledges client and shares its own sequence number.

Step 3: ACK Packet

  • SYN flag = 0

  • ACK flag = 1

  • Acknowledgment Number = Y + 1

Meaning:
Client confirms server response.

Why Sequence Numbers Matter?

Sequence numbers help in:

  • Tracking data packets

  • Ensuring correct order

  • Detecting lost packets

Real-life example:
Think of numbering pages in a book. If a page is missing, you can easily identify it.

Real Wireshark Example (Practical Understanding)

Wireshark is a popular network analysis tool used by developers and testers to capture and analyze network packets.

Let’s see how TCP handshake looks in Wireshark.

Steps to observe

  1. Open Wireshark tool

  2. Start capturing packets

  3. Open a website in your browser

  4. Filter using: tcp

You will see three packets

  • SYN packet from client

  • SYN-ACK packet from server

  • ACK packet from client

Typical Wireshark output

  • Frame 1: SYN → Client to Server

  • Frame 2: SYN-ACK → Server to Client

  • Frame 3: ACK → Client to Server

What you can observe

  • Source and destination IP

  • Sequence numbers

  • Acknowledgment numbers

  • Flags (SYN, ACK)

Why this is important

  • Helps debug network issues

  • Useful in API testing and performance testing

  • Widely asked in interviews

Real-world scenario

If a website is not loading, you can use Wireshark to check whether:

  • SYN request is sent

  • Server is responding

  • Handshake is completing or failing

This helps identify network-level issues quickly.

Summary

The TCP three-way handshake is a fundamental networking process that establishes a reliable connection between a client and a server before any data is transferred. By exchanging SYN, SYN-ACK, and ACK messages, both systems confirm readiness and synchronize communication, ensuring accurate and ordered data delivery. This process is widely used in web applications, APIs, and internet communication across India and globally, making it essential for developers, testers, and network engineers to understand it for better performance optimization, debugging, and building reliable systems.