Architectures
There are two main communications models, or architecture, that are common on the Internet: client-server and peer-to-peer (P2P). In the client-server model, a party – specifically a computer process or program – requests some service, file, or data. This requesting process is known as a client. The process that is asked to provide the service, or the process to where the client’s request is sent, is known as a server. A server can communicate with and serve multiple clients. The server implements and provides the service that the client requests. Clients and servers are not computers. In other words, the phrases “client computer” and “server computer” are somewhat misleading. Both clients and servers are processes running on a computer. A computer may run both client processes and server processes simultaneously, and the client and server processes are separate from each other. The phrase “client computer” likely indicates that the computer primarily runs clients, and a “server computer” primarily runs servers.
The client-server model is primarily a model of relationships of cooperating systems. Servers provide some function or service for one or multiple clients. Clients initiate requests for these services. Common examples include email and the World Wide Web. Files requested by clients are usually provided to clients, or “served” to clients, using this model. In many situations, a process can simultaneously play the role of client and server. For instance, a client may request specific data from a server. The server checks whether the data are available on the disks or storage accessible to it. If the data found, it is provided to, or served to the client. If the data are not found, the server may request the data from another server on whose storage disks the data may reside. In this case, the server originally contacted by the client becomes the client for the second server.
The client-server model is a centralized architecture, in that client and servers provide different functions. The basic communication mechanism is a server that is continually “listening” for requests. When a client needs to contact the server for data, files, or services, the client connects to the server. The server then processes the client’s request. Normally, the client and server exchange acknowledgement or status messages delineating the state of the transaction. Some characteristics of servers is that they are always-on hosts; i.e. they are continuously accepting client connections. They have permanent IP addresses. To scale – i.e. increase and improve – server capabilities, they may reside in dedicated data centres, or in specialized departments within organizations. Clients, which communicate with the server, may only be connected to the server intermittently. They only need to communicate with the server when data, files, or services are needed from the server process. In contrast to servers, clients have dynamic IP addresses; that is, their IP address may change based on the location of the computer running the client. In many organizations, IP addresses for clients are provided based on how many clients are currently running, and which IP addresses are currently available. Internet service providers provide dynamic IP addresses to clients for temporary use, while the client’s session lasts. In addition, clients do not communicate directly with each other. They communicate primarily with the server (Kurose, 2007).
Servers are typically classified according to the services or resources they provide. They include web servers, file servers, database servers, and email servers, all of which are examples of the client-server model. A web server provides web pages in accordance with clients’ requests. A web server accepts request from a client, specifically an HTTP request. Secure HTTP requests, or HTTPS requests, are also used for this purpose. In this case, the client is usually a web browser or web crawler that initiates communication with the web server. File servers constitute another type of server, and provide the files requested by a client. File servers are therefore the sites of shared disk access. File servers do not normally provide computational tasks, and are specialized for serving files. They are typically found in organizations whose computers are connected through a local area network, or LAN, which is a network limited to a small area (such as within a single complex, such as school, hospital, or company), but which may also be connected to the Internet. A database server runs database management system that provides database services to client systems. A “front end” system running on a user’s computer provides client services and provides such functionality as data display and formatting. A “back end” system runs on the server and runs processes for data storage and data analysis. An email server is a process that provides email services through SMTP. Details of the communication between client and server and how the client-server model is implemented is beyond the scope of the current discussion.
The peer-to-peer, or P2P model is a decentralized architectural model. As the name suggests, each node on a P2P network is a peer to the other nodes. Nodes are not dedicated to client or server roles. In P2P networks, there are no always-on servers. End systems that arbitrary join and leave the network communicate with each other directly. Peers request service from other peers, and, in turn, provide service to other peers. P2P networks are also self-scalable, as new peers joining a P2P network bring new service capacity. However, they also bring new service demands to the network. Peers are intermittently connected, and their IP addresses frequently change. Therefore, P2P network management is more complex than for the client-server model, where servers have a permanent (or infrequently changing) IP address (Kurose, 2007). Examples of P2P networks include file distribution (BitTorrent is a typical example), Voice over IP (VoIP), such as Skype and, very often, streaming. Streaming services frequently implement P2P because this model eliminates or reduces the need for large storage and server systems dedicated to multimedia resources. As will be discussed in subsequent sections, blockchains, or lists of records that are securely linked together, and proposed as an archiving technology (Duca et al., 2020), uses P2P networks. Details of how peers communicate and the analysis of efficiency, scaling, and file distribution time in P2P networks, is beyond the scope of the current discussion.