Skip to main content

Command Palette

Search for a command to run...

Computer Networks #1: Introduction

Updated
5 min readView as Markdown
Computer Networks #1: Introduction
B
I am a third-year undergrad student at Chandigarh University. I am into building backend and applied AI stuff using the modern technologies. I loves to document my learning through the blogs so that I can contribute to the community.

What is a Computer Network?

A computer network is a collection of interconnected devices that can communicate and exchange data with each other.

These devices can include:

  • Computers

  • Servers

  • Smartphones

  • Routers

  • Switches

  • IoT devices

  • Printers

A very simple network could look like:

      Computer A
           │
           │
        Switch
        /     \
       /       \
Computer B   Computer C

Here, the computers can communicate with each other through the switch.

A much larger network might look like:

The Internet is essentially a massive network of interconnected networks.

Why Do We Need Computer Networks?

At first glance, networking seems simple:

Computer A wants to send data to Computer B.

But that simple requirement creates several problems.

Problem 1: How do we identify the destination?

If there are millions of devices, how does Computer A know which computer it wants to communicate with?

We need addressing like:

  • IP Address

  • MAC Address

  • Port Number

Problem 2: How does the data reach the destination?

Computer A and Computer B may not be directly connected.

Computer A
    │
    ▼
 Router 1
    │
    ▼
 Router 2
    │
    ▼
 Router 3
    │
    ▼
Computer B

The network needs a mechanism to determine where the data should go next.

This is the job of routing.

Problem 3: Which application should receive the data?

Imagine we have the following servers running on the same machine:

  • Web Server

  • Database Server

  • SSH Server

  • Mail Server

All of these applications may be communicating over the network simultaneously.

How does the operating system know which application should receive incoming data?

That's where port numbers come in.

For example:

192.168.1.10:443 
              ↑ Port

The IP address identifies the machine, while the port identifies the destination service/process endpoint.

Problem 4: What happens if data is lost?

Networks aren't perfect.

Packets can be:

  • Lost

  • Delayed

  • Duplicated

  • Delivered out of order

If an application requires reliable communication, something needs to handle these problems.

That's one of the reasons TCP exists.

Problem 5: How do different systems understand each other?

A Windows machine, Linux server, router, and smartphone need common rules for communication.

These rules are called protocols.

Examples:

  • Ethernet

  • IP

  • TCP

  • UDP

  • DNS

  • HTTP

  • TLS

A protocol essentially defines how communication should happen.

The Basic Components of a Network

At a high level, a network contains several important components.

  • End Devices

These are devices that actually generate or consume data.

Examples: Laptop, Phone, Server, etc.

  • Switch

A switch primarily connects devices within a local network.

PC A ───┐
PC B ───┼── Switch
PC C ───┘

It uses MAC addresses to make forwarding decisions within the local network.

We'll study switching properly later.

  • Router

A router connects different networks.

Network A
    │
    ▼
  Router
    │
    ▼
Network B

Routers primarily make forwarding decisions using IP addresses and routing information.

  • Network Interface

A device needs a network interface to communicate over a network.

Examples: Ethernet NIC, Wi-Fi adapter

The interface is where the operating system interacts with the network.

We'll later see why concepts such as network interfaces, sockets, and network namespaces become particularly important in Linux and DevOps.

A Network Is More Than Just "Connected Computers"

A common beginner's mental model is:

Computer A ───────── Computer B

But real-world communication involves several layers of functionality:

Application
    ↓
Transport
    ↓
Network
    ↓
Data Link
    ↓
Physical Network

Each layer solves a different problem.

For example:

HTTP
 ↓
TCP
 ↓
IP
 ↓
Ethernet
 ↓
Physical transmission

This layered approach is one of the most important ideas in Computer Networks.

Why Do We Need Layers?

Imagine trying to build a network protocol that handles everything:

Application data
+
Reliability
+
Routing
+
MAC addressing
+
Electrical signals
+
Encryption
+
Error handling
+
...

It would become extremely complicated.

Instead, networking separates responsibilities.

For example:

  • HTTP doesn't need to know how an Ethernet cable physically transmits bits.

  • Similarly ethernet doesn't need to understand what an HTTP request means.

Each layer has its own responsibility and communicates with the layer above/below it through defined interfaces.

This is called layering.

A simple example:

Suppose you open your browser and request:

https://example.com

At the application level, your browser essentially wants to send:

GET /

But that data cannot simply be sent directly across the Internet.

Conceptually, it moves through several layers:

HTTP Request
     ↓
TCP
     ↓
IP
     ↓
Ethernet / Wi-Fi
     ↓
Physical Network

Each layer adds the information necessary for its job.

Two Important Network Models

To organize all these networking concepts, we use network models.

The two models you will encounter most often are:

  • OSI Model

  • TCP/IP Model

The OSI model contains seven layers:

7 ─ Application
6 ─ Presentation
5 ─ Session
4 ─ Transport
3 ─ Network
2 ─ Data Link
1 ─ Physical

The TCP/IP model groups these responsibilities into fewer layers:

Application
Transport
Internet
Network Access

We'll study both models in detail in the next topic.