RFC 123 (rfc123) - Page 2 of 3


Proffered Official ICP



Alternative Format: Original Text Document



Send (socket = l, data = d)

   The data named by d is sent over the connection attached to local
   socket l. l must be a send socket attached to a connection.  d is the
   name of a data area.

Receive (socket = l, data = d)

   The receive side counterpart to send.

Close (socket = l)

   Any connection currently attached to a local socket l is closed.

A Family of ICPs

Briefly, a server process at a site attaches a well-advertised send
socket L and listens.  A user process initiates connection to L from its
receive socket U.  The byte size for this connection is 32.  The server
process then transmits a 32-bit even number S and closes the connection.
The 32-bit number S and its successor, S+1, are the socket number the
server will use.  The final steps are for sockets S and S+1 at the
server site to be connected to sockets U+1 and U respectively at the
user site.

Using the notation, the server executes the following sequence:

   Listen (socket = L, size = 32)
   [Wait until a user connects]
   Send (socket = L, data = S)
   Close (socket = L)
   Init (local = S, foreign = U+1, size = Bu)
   Init (local = S+1, foreign = U, size = Bs)

The user executes the following:

   Init (local = U, foreign = L, size = 32)
   Receive (socket = U, data = S)
   Close (socket = U)
   Init (local = U+1, foreign = S, size = Bu)
   Init (local = U, foreign = S+1, size = Bs)

Note that L is a send socket (odd), while S and U are receive sockets
(even).  Where L, S or U are used as values of local, they are 32-bit
numbers; where they are values of foreign, they are 40-bit numbers.  The
parameters Bs and Bu are the byte sizes to be sent by the server and
user, respectively.