Module 0001: Introduction to Client/Server Networks

Tak Auyeung, Ph.D.

December 18, 2018

Contents

1 About this module
2 Basic Concepts
 2.1 Client
 2.2 Server
 2.3 Client-server hybrid
 2.4 Socket
3 Examples
 3.1 HTTP
 3.2 FTP
 3.3 telnet
4 Food for Thought
 4.1 Same host client-server

1 About this module

2 Basic Concepts

It is important to remember that the terms “client” and “server” apply to individual processes, and not individual machines. There can be multiple processes running on the same machine. It is also possible to have both clients and servers living on the same machine.

2.1 Client

A “client” is a process (a program being executed) that initiates requests. In other words, in a client/server connection, it is always the case that a client starts a transaction, and not the server.

2.2 Server

A “server” is a process that responds to requests initiated by a client.

2.3 Client-server hybrid

It is possible to have a process that is both a client and a server. For example, most peer-to-peer (P2P) applications are hybrids.

2.4 Socket

A “socket” is a specific term referring to an established TCP (transport-control protocol) connection. Not all client-server protocols are socket-based. Some are UDP (user datagram protocol) based at the IP (internet protocol) level. However, it is fair to say that most client-server protocols are built on top of sockets.

3 Examples

3.1 HTTP

HTTP (HyperText Transport Protocol) is a client-server protocol. The common name of the client is a “browser”, such as Mozilla, Firefox, Opera and Internet Explorer. The server can be a variety of server programs running on a variety of platforms. For example, Apache is an HTTP server program that can run on top of most Unix-like operating systems and Windows.

3.2 FTP

FTP (File Transport Protocol) is a client-server protocol. The client is a program that requests a user to enter username and password.

3.3 telnet

Telnet, like FTP, is a client-server protocol.

4 Food for Thought

4.1 Same host client-server

A “host” is just a computer. Why do we want to run both the client and server processes on the same machine?