The TCP/IP Guide - Version 3.0 (Contents) ` 193 _ © 2001-2005 Charles M. Kozierok. All Rights Reserved.
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 trans-
action 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—designa-
tions 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.
TCP/IP Architecture and the TCP/IP Model
The OSI reference model consists of seven layers that represent a functional division of the
tasks required to implement a network. It is a conceptual tool that I often use to show how
various protocols and technologies fit together to implement networks. However, it's not the
only networking model that attempts to divide tasks into layers and components. The TCP/