TCP/IP Processes, Multiplexing and Client/Server Application Roles
(Page 3 of 3)
TCP/IP Client Processes and Server Processes
There's another characteristic of TCP/IP software that is very important to understanding how the transport layer and higher layers of the suite operate: it is generally asymmetric. This means that when a TCP/IP application process on one computer tries to talk to an application process on another computer, the two processes are usually not exactly the same. They are instead complements of each other, designed to function together as a team.
As I explained in the overview description of TCP/IP, most networking applications use a client/server model of operation. This term can be used to refer to the roles of computers, where a server is a relatively powerful machine that provides services to a large number of user-operated clients. It also applies to software. In this context, a client process is usually one that runs on a client machine and initiates contact to perform some sort of function. A server process usually runs on a hardware server, and listens for requests from clients and responds to them.
The classic example of this is, of course, the World Wide Web. The WWW uses the Hypertext Transfer Protocol (HTTP), a good example of an application protocol. A Web browser is an HTTP client, normally running on an end-user client machine such as you are probably using at this moment. It initiates an exchange of HTTP (Web) data by sending a request to a Web (HTTP) server. A server process on that Web server hears the request and replies either with the requested item(s)a Web page or other dataor an error message. The server is usually specifically designed to handle many incoming client requests, and in many cases for little else.
Okay, I can practically see the impatient look on your face as you wonder to yourself: why is he telling me all of this in a section that is supposed to explain TCP and UDP ports? The answers will become clear shortly, I promise. I started here because the fact that many application processes run simultaneously and have their data multiplexed for transmission is the impetus for why higher-level addressing is a necessity in TCP/IP. The client/server arrangement used by TCP/IP has an important impact on the way that ports are used and the mechanisms for how they are assigned. The next two topics explore these concepts more completely.
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.