client-server model (client-server architecture)

Contributor(s): John Sullivan

Client-server is a relationship in which one program (the client) requests a service or resource from another program (the server). At the turn of the last century, the label client-server was used to distinguish distributed computing by personal computers (PCs) from the monolithic, centralized computing model used by mainframes

Today, computer transactions in which the server fulfills a request made by a client are very common and the client-server model has become one of the central ideas of network computing. In this context, the client establishes a connection to the server over a local area network (LAN) or wide-area network (WAN), such as the Internet. Once the server has fulfilled the client's request, the connection is terminated. Because multiple client programs share the services of the same server program, a special server called a daemon may be activated just to await client requests.

In the early days of the internet, the majority of network traffic was between remote clients requesting web content and the data center servers that provided the content. This traffic pattern is referred to as north-south traffic. Today, with the maturity of virtualization and cloud computing, network traffic is more likely to be server-to-server, a pattern known as east-west traffic. This, in turn, has changed administrator focus from a centralized security model designed to protect the network perimeter to a decentralized security model that focuses more on controlling individual user access to services and data, and auditing their behavior to ensure compliance with policies and regulations.

Advantages and disadvantages of the client-server model

An important advantage of the client-server model is that its centralized architecture helps make it easier to protect data with access controls that are enforced by security policies. Also, it doesn't matter if the clients and the server are built on the same operating system because data is transferred through client-server protocols that are platform-agnostic.

An important disadvantage of the client-server model is that if too many clients simultaneously request data from the server, it may get overloaded. In addition to causing network congestion, too many requests may result in a denial of service.

Client-server protocols

Clients typically communicate with servers by using the TCP/IP protocol suite. TCP is a connection-oriented protocol, which means a connection is established and maintained until the application programs at each end have finished exchanging messages. It determines how to break application data into packets that networks can deliver, sends packets to and accepts packets from the network layer, manages flow control and handles retransmission of dropped or garbled packets as well as acknowledgement of all packets that arrive.  In the Open Systems Interconnection (OSI) communication model, TCP covers parts of Layer 4, the Transport Layer, and parts of Layer 5, the Session Layer.

In contrast, IP is a connectionless protocol, which means that there is no continuing connection between the end points that are communicating. Each packet that travels through the Internet is treated as an independent unit of data without any relation to any other unit of data. (The reason the packets do get put in the right order is because of TCP.) In the Open Systems Interconnection (OSI) communication model, IP is in layer 3, the Networking Layer.

Other program relationship models

Other program relationship models included master/slave and peer-to-peer (P2P). In the P2P model, each node in the network can function as both a server and a client. In the master/slave model, one device or process (known as the master) controls one or more other devices or processes (known as slaves). Once the master/slave relationship is established, the direction of control is always one way, from the master to the slave.

This Java video explains how the client-server architecture works.


This was last updated in April 2019

Continue Reading About client-server model (client-server architecture)

Dig Deeper on Network Infrastructure

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Do you see anything replacing the client/server model in the enterprise in the near future?
Most of my clients tend to build and use web-based apps these days, not traditions win32 client/server. I don't see much peer2peer in the enterprise. :-)
This is already happening, or at least being added to the client-server model. Lots of modern applications are built using more modular frameworks, which lead to greater levels of machine-to-machine communications. As an example, many companies have deployed Hadoop for Data Analysis / Data Warehousing. The applications built on their new frameworks are still somewhat client-server, but that it not generating the bulk of the traffic. We're seeing this impact network, storage design, as well as application design.
Matt, when did you start to see that shift to web-based apps? Are there still holdouts?
It is the definition about client.
A server only means that it listens for connections, and client only means that it initiates connections. Either one can send requests or responses.
Hello world,

How could I prove that the ip address, has 65534 address?


File Extensions and File Formats