DEV Community

Abanoub Kerols
Abanoub Kerols

Posted on

Understanding TCP/IP — The Backbone of the Internet (with Node.js Examples)

The internet might feel magical, but beneath every API request, browser load, or WebSocket message, there’s a structured communication model working silently: TCP/IP.
If you understand TCP/IP, you understand how the internet really works.

In this article, we’ll break it down clearly — layer by layer — and explore how Node.js interacts with TCP at a low level.

What Is TCP/IP?
TCP/IP (Transmission Control Protocol / Internet Protocol) is a suite of protocols that define how data moves across networks.

It’s made of 4 logical layers:

  • Network Access Layer
  • Internet Layer (IP)
  • Transport Layer (TCP/UDP)
  • Application Layer (HTTP, DNS, FTP…)

Instead of thinking of them as strict boxes, think of them as stages data passes through from one machine to another.

1. Internet Layer — IP Addressing & Routing

The Internet Protocol (IP) is responsible for addressing and routing packets from the sender to the receiver.

What IP Does:

  • Assigns every device a unique address
  • Splits data into packets
  • Routes packets across the network

But IP is unreliable. It does not guarantee:

  • Order
  • Delivery
  • Retransmission

It's like a postal worker who tries their best… but doesn’t promise anything.

Example IPs:

  • 192.168.1.10 → Local machine
  • 8.8.8.8 → Google DNS

2. Transport Layer — TCP & UDP

This layer defines how communication happens.

TCP (Transmission Control Protocol)
TCP ensures:

  • Reliable delivery
  • Correct order
  • No missing data
  • No duplicates

Features you should know:

Flow Control

TCP adjusts sending speed so the receiver doesn't get overwhelmed.

Congestion Control

TCP slows down when the network is congested.

Reliability Mechanisms

  • Sequence numbers
  • ACKs (acknowledgment packets)
  • Retransmission
  • 3-Way Handshake

TCP guarantees stable, ordered communication — essential for APIs, web browsing, email, databases, etc.

UDP (User Datagram Protocol)

Faster, connectionless, and unreliable — used for:

  • Streaming
  • Online gaming
  • VoIP

3. Application Layer — Where Developers Live

At this level you find:

  • HTTP
  • HTTPS
  • WebSockets
  • gRPC
  • FTP
  • SMTP

Every time your browser sends a GET request, it’s happening on top of TCP

How Ports Fit into This
If IP is the building address, ports are apartment numbers.

Examples:

  • 80 → HTTP
  • 443 → HTTPS
  • 22 → SSH
  • 3000 → Custom Node.js backend

Ports allow multiple services to live on the same machine without interfering.

Node.js Examples — Working Directly with TCP

Node.js gives developers native access to TCP sockets via the net module.

Let’s see how it works.

Example 1 — Create a TCP Server

const net = require("net");

const server = net.createServer((socket) => {
  console.log("Client connected:", socket.remoteAddress, socket.remotePort);

  socket.on("data", (data) => {
    console.log("Received:", data.toString());
    socket.write("ACK: " + data.toString());
  });

  socket.on("end", () => {
    console.log("Client disconnected");
  });
});

server.listen(5000, "0.0.0.0", () => {
  console.log("TCP Server running on port 5000");
});

Enter fullscreen mode Exit fullscreen mode

What this shows:

  • Each client has IP + Port
  • TCP ensures messages arrive in order
  • Server replies using ACK-like behavior

Example 2 — Create a TCP Client

const net = require("net");

const client = net.createConnection(5000, "127.0.0.1", () => {
  console.log("Connected to server");
  client.write("Hello from client!");
});

client.on("data", (data) => {
  console.log("Server says:", data.toString());
});

client.on("end", () => {
  console.log("Disconnected from server");
});

Enter fullscreen mode Exit fullscreen mode

When you run both scripts, you’ll see TCP in action:

  • Connection established
  • Data sent
  • Data acknowledged
  • Connection closed

This is the same mechanism behind:

  • HTTP
  • WebSockets
  • Database drivers
  • Reverse proxies (Nginx, HAProxy)
  • Load balancers
  • Microservices traffic

The TCP 3-Way Handshake (Simplified)

Client → SYN → Server  
Server → SYN-ACK → Client  
Client → ACK → Server  
Connection established

Enter fullscreen mode Exit fullscreen mode

This handshake ensures:

  • Both sides are online
  • Both sides agree on communication parameters
  • Sequence numbers are synchronized

Why TCP/IP Matters for Developers

Understanding TCP/IP helps you:

  • Optimize APIs
  • Diagnose latency
  • Understand why packets drop
  • Build scalable distributed systems
  • Debug real-world networking issues
  • Write high-performance backend services

Even if you work with frameworks, TCP/IP is happening under the hood every time your code “talks” to anything.

Final Thoughts

TCP/IP isn’t just a networking topic — it’s the foundation of modern computing.
Everything from microservices, databases, browsers, and cloud systems relies on it.

When you understand TCP/IP, you understand how the internet itself actually works.

Top comments (0)