NOTE: Using software to mass-download the site degrades the server and is prohibited.
If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.

The Book is Here... and Now On Sale!

The whole site in one document for easy reference!
The TCP/IP Guide

Google
Web TCP/IP Guide






Table Of Contents  The TCP/IP Guide
 9  TCP/IP Protocol Suite and Architecture

Previous Topic/Section
TCP/IP Overview and History
Previous Page
Pages in Current Topic/Section
12
3
Next Page
TCP/IP Architecture and the TCP/IP Model
Next Topic/Section

TCP/IP Services and Client/Server Operation
(Page 3 of 3)

Understanding TCP/IP Client and Server Roles

The terms “client” and “server” can be confusing in TCP/IP because they are used in several different ways, sometimes simultaneously:

  • Hardware Roles: The terms “client” and “server” usually refer to the primary roles played by networked hardware. A “client” computer is usually something like a PC or Macintosh computer used by an individual, and primarily initiates conversations by sending requests. A “server” is usually a very high-powered machine dedicated to responding to client requests, sitting in a computer room somewhere that nobody but its administrator ever sees.

  • Software Roles: As mentioned earlier, TCP/IP uses different pieces of software for many protocols to implement “client” and “server” roles. A Web browser is a piece of client software, while Web server software is completely different. Client software is usually found on client hardware and server software on server hardware, but not always. Some devices may run both client and server software.

  • Transactional Roles: In any exchange of information, the client is normally the device that initiates communication or sends a query; the server responds, usually providing information. Again, usually the client software on a client device initiates the transaction, but this is not always the case.

So, in a typical organization there will be many smaller individual computers designated “clients”, and a few larger ones that are “servers”. The servers normally run server software, and the clients run client software. But servers can also be set up with client software, and clients with server software.

For example, suppose you are an administrator working in the computer room on server #1 and need to transfer a file to server #2. You fire up FTP to initiate a file-transfer session with server #2. In this transaction, server #1 is playing the role of the client, since it is initiating communication using an FTP client program. Theoretically, you could even start an FTP transfer from server #1 to a particular client, if that client had FTP server software to answer the server's request. (This is less common, because server software is often not installed on client machines.)

Transactional roles come into play when communication occurs between servers in certain protocols. For example, when two SMTP servers communicate to exchange electronic mail, even though they are both server programs running on server hardware, during any transaction one device acts as the client while the other acts as the server. In some cases, devices can even swap client and server roles in the middle of a session!

I should conclude by making clear that the client and server roles I have discussed above are the traditional ones. The rise of powerful personal computers and widespread Internet access (especially “always-on” broadband connectivity) has led to a significant blurring of client and server hardware and software. Many client machines now include server software to allow them to, for example, respond to World Wide Web queries from other clients. There are also many file sharing programs around that allow clients to communicate using the peer-to-peer structural model. However, most TCP/IP communication is still client/server in nature, so it’s important to keep these roles in mind.

Key Concept: Understanding client/server computing concepts in TCP/IP is made more complex due to the very different meanings that the terms “client” and “server” can have in various contexts. The two terms can refer to hardware roles—designations given to hardware devices based on whether they usually function as clients or as servers. The terms can also refer to software roles, meaning whether protocol software components function as clients or servers. Finally, they can refer to transactional roles, meaning whether a device and program functions as a client or server in any given exchange of data.



Previous Topic/Section
TCP/IP Overview and History
Previous Page
Pages in Current Topic/Section
12
3
Next Page
TCP/IP Architecture and the TCP/IP Model
Next Topic/Section

If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support!
Donate $2
Donate $5
Donate $10
Donate $20
Donate $30
Donate: $



Home - Table Of Contents - Contact Us

The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005

© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.