Skip to main content

Command Palette

Search for a command to run...

TCP Made Simple: Handshake to Reliability

Updated
4 min read
TCP Made Simple: Handshake to Reliability
S
Full-stack developer obsessed with performance, scalability, and clean systems. I use Arch btw.

Introduction

Imagine two people trying to talk on a phone call without saying “hello” first, without taking turns, and without confirming what they heard. Messages would overlap, get lost, or be misunderstood.

Computer networks face the same problem. If devices just threw data at each other without any rules, communication would quickly become messy and unreliable.

This is where TCP comes in. It adds discipline, structure, and confirmation to network communication so that data arrives safely, in order, and without corruption.


What is TCP and Why It Is Needed

TCP (Transmission Control Protocol) is a set of rules that devices use to send data reliably over a network. When you load a website, send an email, or download a file, TCP is usually working behind the scenes to make sure:

  • No data is lost

  • Data arrives in the correct order

  • Errors are detected and fixed

Without TCP, data would just be a stream of random pieces with no guarantee that the receiver gets the full message correctly.


Problems TCP Is Designed to Solve

Sending data over the internet is not as clean as passing a note across a table. Along the way:

  • Packets (chunks of data) can be lost

  • Packets can arrive out of order

  • Packets can get duplicated

  • Packets can be corrupted

If we send data without any rules:

  • The receiver won’t know what’s missing

  • It won’t know what came first

  • It won’t know if something is wrong

TCP solves this by numbering data, asking for confirmations, and resending anything that goes missing.


What is the TCP 3-Way Handshake

Before sending actual data, TCP first sets up a connection between the two devices. Think of it like starting a conversation:

  1. “Can we talk?”

  2. “Yes, we can talk.”

  3. “Great, let’s start.”

This setup process is called the 3-way handshake. It makes sure both sides are ready and agree on some initial numbers used to track data.


Step-by-Step Working of SYN, SYN-ACK, and ACK

  1. SYN (Synchronize): The client says: “I want to start a connection. Here’s my starting sequence number.”

  2. SYN-ACK (Synchronize + Acknowledge): The server replies: “I got your request. Here’s my starting number, and I confirm yours.”

  3. ACK (Acknowledge): The client responds: “I confirm your number too. Let’s begin.”

After this, both sides trust each other and know where to start counting data from.


How Data Transfer Works in TCP

Once connected, data is sent in small chunks. Each chunk has a sequence number.

Example idea:

  • Chunk 1 → number 1

  • Chunk 2 → number 2

  • Chunk 3 → number 3

The receiver sends back an acknowledgement (ACK) saying: “I have received everything up to number X.” If the sender doesn’t receive an ACK for some number, it assumes that chunk was lost and sends it again.


How TCP Ensures Reliability, Order, and Correctness

TCP uses a few simple but powerful ideas:

  1. Sequence Numbers: Keep data in the correct order, even if packets arrive mixed up.

  2. Acknowledgements: Confirm what has been successfully received.

  3. Retransmission: If something isn’t acknowledged in time, resend it.

  4. Error Checking: Each packet has a checksum. If data is corrupted, it is rejected and resent.

So even if the network drops or scrambles packets, TCP rebuilds the correct message on the receiver’s side.


How TCP Handles Packet Loss

Suppose packets 1, 2, 3 are sent. The receiver gets 1 and 3, but 2 is lost. The receiver will keep saying. “I’m still waiting for 2.” The sender sees that 2 is not being acknowledged and resends packet 2. Only after packet 2 arrives will the receiver move forward and acknowledge packet 3 and beyond.

This is how TCP avoids gaps in the final data.


How a TCP Connection Is Closed

Ending a TCP connection is also a careful, confirmed process. It’s like saying goodbye properly instead of just hanging up.

  1. One side sends FIN: “I’m done sending data.”

  2. Other side sends ACK: “Got it.”

  3. Then the second side sends its own FIN: “I’m also done.”

  4. First side sends final ACK: “Confirmed. Connection closed.”

This ensures both sides finish cleanly without losing the last bits of data.


Conclusion

TCP brings order to the chaos of network communication.

Through a simple handshake, numbered data, acknowledgements, and smart resending of lost pieces, it guarantees that what you send is exactly what the other side receives. Whether you’re loading a webpage or building your own backend server, TCP is the quiet workhorse that makes reliable communication possible.