DEV Community

Cover image for Chapter 2: Host, Server and Client
Hamidreza
Hamidreza

Posted on Edited on

Chapter 2: Host, Server and Client

We talked about the university example in Chapter 1. First, let's define some concepts.

Host

Network Node: A point or device in a computer network that can send, receive, or forward data. Computers, switches, routers, and other network devices can be nodes.

Host: An end device connected to a computer network that can communicate with other devices. Computers, laptops, and mobile phones are examples of hosts.

Host and End System are very similar terms. In this series, we will use them as same things.

Note: Every host is a node, but not every node is a host. For example, a PC is both a node and a host, while a switch is a node but an intermediary device, not a host.

IP (Internet Protocol) Address: A logical address assigned to a network interface, used to identify it and enable communication over an IP network.

We will learn more about IP addresses in future chapters.

IP Host: A host (network-connected device) that uses the Internet Protocol (IP) to communicate with other devices.

Hostname: A human-readable name assigned to a device connected to a computer network. Hostnames don't have to be globally unique.

Curious? Open CMD in Windows, type hostname, and find out your device's hostname!

Intermediary Devices: Network devices that forward data between other devices or networks. Switches and routers are examples of intermediary devices.

Back to our example

Imagine that, in our university, Computer 1 (with hostname computer-1-1) in University 1 (LAN 1) wants to send a file to Computer 3 (with hostname computer-3-2) in University 2 (LAN 2).

Here's what happens:

  1. Computer 1 wants to send a file to computer-3-2 (the destination hostname).

  2. Computer 1 resolves the hostname into an IP address.

  3. Computer 1 checks whether the destination IP address belongs to its LAN.

  4. Since Computer 3 is in another LAN, Computer 1 decides to send the data to its default gateway (Router 1).

  5. Computer 1 sends the data to Switch 1.

  6. Switch 1 forwards the data to Router 1.

  7. Router 1 forwards the data toward the destination network.

  8. Switch 2 receives the data and forwards it to Computer 3.

  9. Computer 3 receives the data.

The destination computer must also have an appropriate file-sharing service running and allow the sender to access the file.

Look at the image below for another example of network nodes and intermediary devices.

Network nodes and intermediary devices

Server and Client

Let's continue with some other concepts: Servers and Clients.

Server: A computer or software that provides data, resources, services, or applications to clients over a network, such as an Intranet, Extranet, or the Internet.

Intranet: A private network used within an organization, allowing its members to communicate and access internal resources and services.

Example: A university's private network where students and staff can access internal files, systems, and services.

Extranet: A private network of an organization's intranet that allows authorized external users, such as business partners, suppliers, or customers, to access selected internal resources and services.

Example: A university allowing partner universities to access selected internal resources.

How do servers work?

In the client-server model (which we will expalin in future chapters), servers commonly receive requests (input) from clients and send responses (output) back to them.

Example: When you want to download a file, your device sends a request to the server, and the server responds by sending you the requested file.

What are the components of a server?

A physical server is similar to a normal computer. It has components such as:

  • CPU
  • RAM
  • Storage (HDD or SSD)
  • Motherboard
  • Power Supply
  • Network Interface Card (NIC)
  • GPU (optional)

Servers usually have hardware and configurations designed for their specific workloads.

What are the types of servers?

There are many types of servers. Here are some common examples:

  • File Server: Stores, manages, and provides access to files such as documents, photos, and images over a network.

Example: Google Drive provides cloud-based file storage. However, Google Drive doesn't rely only on file storage systems; it also uses web servers, application servers, and other infrastructure.

  • Application Server: Runs application logic, processes client requests, and provides application-related services.

    • Mail Server: Handles sending, receiving, and storing emails.

Example: Gmail uses mail server infrastructure to provide its email service.

    • Web Server: Handles HTTP requests and delivers web content such as HTML, CSS, JavaScript, and images.

    Example: When you open google.com, your browser sends an HTTP request to Google's web infrastructure, which responds with the requested web content.

  • Network Infrastructure Servers: Provide essential network services.

Examples:

  • DNS Server: Resolves domain names into IP addresses.
  • DHCP Server: Automatically assigns IP addresses and other network configuration to devices.

We will learn more about DNS and DHCP servers in future chapters.

There are many other types of servers, and a single physical machine can run multiple server applications.

Client

Client: A computer or software application that requests or accesses data, resources, or services provided by a server.

Types of Clients

1. Thick Client (Fat Client):

A client that performs most of its application processing locally, using the resources of its own device.

Example: Adobe Photoshop (Desktop). Most image-processing operations are performed locally using your computer's CPU and GPU. However, it can also use remote services for cloud storage and synchronization.

2. Thin Client:

A client that relies heavily on a server for application processing and services, while mainly handling user input and displaying results.

Example: Google Docs. Much of its application processing and cloud-based functionality relies on Google's servers.

3. Diskless Node:

A client that performs processing locally but relies on a server to store persistent data.

Example: The online version of the video game Diablo III. The game performs much of its processing locally, while persistent game-related data is stored on remote servers.

The following image illustrates how clients communicate with servers.

Client-server architecture

References

  1. Wikipedia: Host (network)
  2. GeeksforGeeks: Types of Node Devices in a Computer Network
  3. Wikipedia: Node (computer networking)
  4. Wikipedia: Hostname
  5. GeeksforGeeks: Difference Between Intranet and Extranet
  6. Splunk: What Are Servers? A Practical Guide for Modern IT & AI
  7. Wikipedia: Client (computing)
  8. AwardSpace: What Is a Client?

Top comments (0)