Skip to main content

Command Palette

Search for a command to run...

TCP Explained: From Handshake to Goodbye

Published
3 min read
K

I write technical articles for developers who already know the basics but want clarity. No hand-holding, no fluff — just structured explanations for people revisiting concepts or fixing confusion.

(Beginner Friendly)

Imagine sending data on the internet without any rules.
Messages could arrive late, out of order, or not arrive at all — and no one would even know.

That would be chaos.

That’s why TCP exists.


What is TCP and why it is needed

TCP (Transmission Control Protocol) is a set of rules that makes sure data is sent reliably between two computers.

It ensures:

  • data reaches the destination

  • data arrives in correct order

  • missing data is sent again

Basically, TCP makes internet communication trustworthy.


Problems TCP is designed to solve

Without TCP, we’d face problems like:

  • packets getting lost

  • data arriving in wrong order

  • duplicate data

  • sender not knowing if receiver got anything

TCP was designed to fix all of this quietly in the background.


What is the TCP 3-Way Handshake

Before sending data, TCP first establishes a connection.

This is done using something called the 3-way handshake.
It’s like two people agreeing to start a conversation.


Step-by-step: SYN, SYN-ACK, ACK

Think of it like this:

  1. Client → SYN
    “Hey, can we talk?”

  2. Server → SYN-ACK
    “Yes, I’m ready. Can you hear me?”

  3. Client → ACK
    “Yes, I can hear you.”

Now both sides are synced and ready to send data.

Connection established ✅


How data transfer works in TCP

Once connected, data is sent in small chunks called packets.

Each packet has:

  • a sequence number (order)

  • an acknowledgement from the receiver

The receiver tells the sender which packets arrived successfully.


How TCP ensures reliability and order

TCP makes sure:

  • packets are reassembled in correct order

  • missing packets are detected

  • lost packets are retransmitted

If a packet doesn’t arrive, TCP notices and sends it again.
That’s why downloads don’t randomly break.


Packet loss? TCP handles it

If data is lost:

  • sender doesn’t receive ACK

  • sender resends the packet

  • receiver gets correct data

This retry mechanism is a big reason TCP is slower than UDP — but also safer.


How a TCP connection is closed

Ending a TCP connection is also done politely.

Steps (simplified):

  • one side sends FIN (I’m done)

  • other side sends ACK

  • other side sends FIN

  • final ACK

Both sides agree the conversation is over.

No abrupt cut-offs.


Why this matters for developers

Most backend systems rely on TCP:

  • HTTP

  • APIs

  • databases

  • file transfers

Understanding TCP helps you:

  • debug network issues

  • understand latency

  • reason about reliability

TCP is boring — but it’s the reason the internet actually works.

More from this blog

rishabh-aka-blue

12 posts

Articles are written for developers who already have some exposure to the topic but want:

A structured explanation Clear mental models Practical clarity over surface-level tutorials