Client and Server vice P2P

Classic1

Server

A server is a powerful computer dedicated to managing virtual resources. The server’s only task is to control access to, and distribute, information. One example of a server is a web server, which is responsible for holding web page content and delivering it to a requesting agent. In addition to web servers, other types of servers manage databases, files, applications, e-mail, and printers or other shared components.

Client

A client is the requesting agent that interacts with a server. A client can be a PC or workstation, or a server requesting information from a different server. The client relies on the information or resources that the server provides in order to complete its task.

Example:

When connecting to NC State’s network, your computer making the connection is the client and the NFS file system acts as the server.

P2P Relationship

A different method for requesting and distributing virtual resources is known as Peer-to-Peer (P2P). In this model, one machine can act as both client and server in relation to another machine. This is typically accomplished by a custom piece of software that can perform both roles, determining which is necessary for a given task. P2P implementation relies on centralized data to establish a connection to other computers, without the use of a central server for the connection.

Example:

  • BitTorrent is an example of a P2P relationship. Use of BitTorrent for copyrighted materials is illegal; however, it does have some legal applications such as OpenOffice and other open source freeware. BitTorrent systems are P2P systems because endpoints request services from other endpoints (i.e., download pieces from other endpoints) and provide services to other endpoints (i.e., upload pieces to other endpoints)2.
  • Bitcoin doesn’t require a server; it relies on a peer-to-peer network.
  1. Images taken from MIT OpenCourseWare, 6.033 Computer System Engineering, Spring 2018 shared under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license ↩︎
  2. RFC 5694 ↩︎