Welcome guest


Client/Server Relationship

Remote Access depends totally on the use of computer networks. Much of the services provided by NC State require an appreciation of the Client/Server relationship. The Client/Server relationship is simply a network architecture. It is a method by which a network is designed using various pieces of networking hardware, mediums, and topologies to provide for effective communication. Before the realtionship can be appreciated, the individual roles of the client and the server must be understood.

Server

A server is simply a powerful computer dedicated to managing some material resources. The servers sole task is to govern access and "serve" information to a requesting agent. The resources managed by servers vary. One of the most common servers is a web server. A web server is responsible for holding the web page content and then delivering that in an effective manner to a requesting agent. Other examples of managed resources include databases, files, applications, email, and printers or other shared components. Servers tend to be more robust machines than a typical personal computer usually containing redundant power supplies, large amounts of RAM and hard-drive storage space, as well as fast communication technologies between internal devices.

Client

A client machine is typically the requesting agent that interacts with a server (however this could be another server computer acting as a client). A client is just a normal PC or workstation where applications run and access information, data, devices, and even processing power off of a server. The client relies on the information or resources that the server provides in order to complete it's task.

Client/Server Views

The Classic View of a Client/Server relationship is one that can often be equated to a sequence of events. There is one client machine (typically the machine your are working at) and then there is a server machine. You make a request to the server for a piece of information or resource and the server "serves" it back to you. A typical example is you using a web browser on your machine to request the page www.ncsu.edu. The web server hosting that page then serves back to you the HTML code that makes up the www.ncsu.edu webpage.

A newer view of the Client/Server relationship is known as Peer-To-Peer or P2P. In a P2P client/server 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. This software will flip back and forth between each role as it deems necessary. Some implementation of P2P rely on centralized data to establish a connection to other computers, however there isn't a central server that controls or establishes the connection - each individual machine is responsible for that. While P2P is simpler in affect than a classic client/server relationship, P2P networks' level of service can degrade under heavy load.

P2P networks can be very useful, however most of their implementations have a legal controversy surrounding them. The most common use of P2P is in file sharing software such as Limewire, Kazaa, WinMX, BitTorrent, etc. The mose common implementation of P2P works like the following:

  1. Computer A is running a P2P software package. This software comes with a predefined list of other available computers referred to as nodes. A attempts to connect to each of these nodes.

    p2p Networking
    Fig. 1: Computer A attempts to connect to other nodes
  2. When successful, the newly connected node (in this case B) sends A its list of available ndoes and then A attempts to connect to those. A continues this process until it reaches it's quota of connected nodes. A keeps track of untried nodes for future reference but discards ones that fail to connect.

    p2 Networking 2
    Fig. 2: A attempts to connect to other nodes and discards failed nodes

Some implementations add the idea of Super nodes that allow for faster searching by slower clients, and act to help control the flow of traffic. These super nodes basically become a temporary server.