1. Introduction

In this article, we’re going to clarify the ubiquitous terms which are the client and the server. We’re going to start with the definitions of the server and client. After that, we’ll look at the client-server model and its advantages. We’re going to conclude our article by mentioning the other network models.

2. Definitions

A server is a sample of software or hardware that serves a specific service to its clients. Web servers, domain name servers, and mail servers are some of the example servers using by all network users.

A client is a user program that connects to a server to access a service. A web browser, such as Firefox, is a client program that makes use of web server facilities.

3. Client-Server Model

The client-server model is the architecture of a computing model in which multiple clients request and receive service from a centralized server. On the client-side, users reach server resources via SSH or user interfaces on their machines to send a request to the server and to see the responses the server returns.

Servers wait for client requests to reach them before responding to them. A server should ideally have a consistent interface to clients that they are not aware of the specifics of the device that is running the service.

Let’s see the basic topology of the client-server model in the following figure:

client server

The client-server model has become one of the core concepts of network computing because computer transactions in which servers fulfill clients’ requests are so popular today. In this model, clients connect to servers over a local area network (LAN) or a wide area network (WAN), such as the Internet.

The link is terminated when the server has completed the client’s order. There are some connections that keep the link between the client and the server such as WebSocket.

3.1. Client-Server Protocols

The TCP/IP protocol suite is commonly used for clients to communicate with servers. TCP is a connection-oriented protocol. It indicates that it establishes and maintains a link until the client programs at either end have finished exchanging messages.

It specifies how to divide application data into packets that networks will transmit, sends, and receives packets from the network layer, controls flow control, and handles retransmission of lost or garbled packets as well as an acknowledgment to all packets that arrive.

TCP includes most of Layer 4, the Transport Layer, and part of Layer 5, the Session Layer in the Open Systems Interconnection (OSI) connectivity model.

In comparison, IP is a connectionless protocol that ensures that there is no continuous link between the endpoints. Each packet that passes across the Internet is considered a separate unit of data. It has no relationship to any other unit of data. IP is located in Layer 3, the Network Layer, of the Open Systems Interconnection (OSI) model.

3.2. Advantages and Disadvantages of the Client-Server Model

One of the significant advantages of the client-server model is that its centralized architecture. It easy to secure data by access restrictions imposed by security policies. Furthermore, it makes no difference whether the clients and the server are based on the same operating system since data is exchanging using platform-agnostic client-server protocols.

One of the drawbacks of the client-server model is that when too many clients request data from the server at the same time, the server can be overwhelmed. This situation can cause network congestion and may result in a denial of service.

4. Conclusion

In this article, we briefly described the terminology of clients and servers. There are also some other computing models such as master-slave and peer-to-peer (P2P).

In the master-slave model, one node can control one or more other nodes and serves as their communication hub. Once the relationship is established between the master and the slave, the direction of control is always one way and it is from the master to the slave.

In the peer-to-peer model, on the other hand, each end node in the network is able to perform as both a client and a server.


« 上一篇: 层与层级的区别
» 下一篇: 死锁、活锁和饥饿