GNU Info

Info Node: (gawkinet.info)Making Connections

(gawkinet.info)Making Connections


Prev: The TCP/IP Protocols Up: Introduction
Enter node , (file) or (file)node

Making TCP/IP Connections (And Some Terminology)
================================================

   Two terms come up repeatedly when discussing networking: "client"
and "server".  For now, we'll discuss these terms at the "connection
level", when first establishing connections between two processes on
different systems over a network.  (Once the connection is established,
the higher level, or "application level" protocols, such as HTTP or
FTP, determine who is the client and who is the server.  Often, it
turns out that the client and server are the same in both roles.)

   The "server" is the system providing the service, such as the web
server or email server.  It is the "host" (system) which is _connected
to_ in a transaction.  For this to work though, the server must be
expecting connections.  Much as there has to be someone at the office
building to answer the phone(1), the server process (usually) has to be
started first and waiting for a connection.

   The "client" is the system requesting the service.  It is the system
_initiating the connection_ in a transaction.  (Just as when you pick
up the phone to call an office or store.)

   In the TCP/IP framework, each end of a connection is represented by
a pair of (ADDRESS, PORT) pairs.  For the duration of the connection,
the ports in use at each end are unique, and cannot be used
simultaneously by other processes on the same system.  (Only after
closing a connection can a new one be built up on the same port. This
is contrary to the usual behavior of fully developed web servers which
have to avoid situations in which they are not reachable. We have to
pay this price in order to enjoy the benefits of a simple communication
paradigm in `gawk'.)

   Furthermore, once the connection is established, communications are
"synchronous".  I.e., each end waits on the other to finish
transmitting, before replying. This is much like two people in a phone
conversation.  While both could talk simultaneously, doing so usually
doesn't work too well.

   In the case of TCP, the synchronicity is enforced by the protocol
when sending data.  Data writes "block" until the data have been
received on the other end.  For both TCP and UDP, data reads block
until there is incoming data waiting to be read.  This is summarized in
the following table, where an "X" indicates that the given action
blocks.

TCP        X       X
UDP        X       
RAW        X       

   ---------- Footnotes ----------

   (1) In the days before voice mail systems!


automatically generated by info2www version 1.2.2.9