Home
Knowledge Base
Credits
Site Map
 


Process Communicating

In The jargon of operating systems it is not programs but processes that are
communicating. When communicating processes are running on the same end system, they
communicate with each other using interprocess communication. The rules for interprocess
communication are governed by the end system’s operating system. Processes on two
different end systems communicate with each other by exchanging messages across the
computer network. A sending process creates and sends messages into the network; a
receiving process receives these messages and possibly responds by sending messages back.

Client and Server Process is a network application consisting of pairs of processes
that send messages to each other over a network. Once of the two processes is labeled as
the client and other process as the server. With the Web, a browser is a client process and a
Web server is a server process. With P2P file sharing, the peer that is downloading the file is
labeled as the client, and the peer that is uploading the file is labeled as the server. In the
context of a communication session between a pair of processes, the process that indicates
the communication (that is, initially contacts the other process at the beginning of the
session) is labeled as the client. The process that waits to be contacted to begin the session
is the server.
 

Any message sent from one process to another must go through the underlying network. A process sends messages into, and receives messages from, the network through its socket. A socket is the interface between the application layer and the transport layer within a host. It is also referred to as the application-programming interface (API) between the application and the network, since the socket is the programming interface with which network applications are built in the Internet. The application developer has control of everything on the application-layer side of the socket but has little control of the transport-layer side of the socket.

The only control that the application developer has on the transport-layer side is the choice of transport protocol and perhaps the ability to fix a few transport-layer parameters such as maximum buffer and maximum segment sizes. Once the application developer chooses a transport protocol, the application is built using the transport-layer services provided by that protocol.
 


In order for a process on one host to send a message to a process on another host, the sending process must identify the receiving process. To identify the receiving process, two pieces of information need to be specified: the name or address of the host and an identifier that specifies the receiving process in the destination host. In Internet applications, the destination host is identified by its IP address, which is a 32-bit quantity that uniquely identifies the host (more precisely, it uniquely identifies the network interface that connects that host to the Internet).

  In addition to knowing the address of the host to which a message is destined, the sending
host must also identify the receiving process running in the host because in general a hos
t could be running many network applications. A destination port number serves this
purpose. A list of well-known port numbers for all Internet standard protocols can be found
at http://www.iana.org. When a developer creates a new network application, the application must be assigned a new port number.