NetIPC 3000/XL Programmer's Reference Manual (5958-8600)

Table Of Contents
Chapter 1 19
NetIPC Fundamentals
NetIPC Concepts
Virtual circuits are the basis for interprocess communication. Once a
virtual circuit is established, the two processes that created it may use
it to exchange data. Two processes pass data only through VC sockets,
not through call sockets. For example, a process may use one call socket
to establish multiple VC sockets; these VC sockets are then used to
communicate with different processes. A call socket may even be shut
down once a virtual circuit connection is established without affecting
communication between the processes. A virtual circuit has the
following properties:
It provides reliable service, guaranteeing that data will not be
corrupted, lost, duplicated or received out of order.
Sharing of connections is allowed for sends only. A process may allow
up to 8 connections to be shared. There is no limit as to how many
processes may send on a shared connection though only one at a
time. Sharing a connection can only be done in Privileged Mode.
Naming, Socket Registry and Destinations
When a NetIPC process initiates a connection with a peer process, it
must reference a call socket that was created by that peer process. In
order to gain access to the call socket of another process, a NetIPC
process must reference the socket name or the address of that call
socket through IPCDEST.
NetIPC processes associate ASCII-coded names with the call sockets
they create and insert this information into the socket registry of their
node. Each NS 3000/XL node has a socket registry that contains a
listing of all the named call sockets that reside at that node. In keeping
with the telephone analogy begun earlier, the socket registry could be
compared to a telephone directory: a call socket is associated with a
name and inserted in the local socket registry in much the same way as
a telephone number is associated with a person’s name and placed in a
local telephone directory.
NetIPC processes use the socket registry to access call sockets by
passing a socket name and the corresponding node name to the socket
registry software. The socket registry determines which socket is
associated with the name specified and translates the address of that
socket into a destination descriptor which it returns to the inquiring
process.
A destination descriptor is a data structure which carries address
information. Specifically, when a destination descriptor is returned to a
process, it tells the process:
how to get to the node where the referenced socket resides
how to get to the referenced socket at that node. Using the socket
registry to gain access to call socket of another process is similar to
using directory assistance to find a person’s phone number. The