RPC: Remote Procedure Call Protocol specification (RFC1050)
Original Publication Date: 1988-Apr-01
Included in the Prior Art Database: 2000-Sep-12
Internet Society Requests For Comment (RFCs)
This document specifies a message protocol used in implementing Sun's Remote Procedure Call (RPC) package. The message protocol is specified with the eXternal Data Representation (XDR) language . This document assumes that the reader is familiar with XDR. It does not attempt to justify RPC or its uses. The paper by Birrell and Nelson  is recommended as an excellent background to and justification of RPC.
Network Working Group Sun Microsystems, Inc.
Request for Comments: 1050 April 1988
RPC: Remote Procedure Call
STATUS OF THIS MEMO
This RFC describes a standard that Sun Microsystems and others are
using and is one we wish to propose for the Internet's consideration.
This memo is not an Internet standard at this time. Distribution of
this memo is unlimited.
This document specifies a message protocol used in implementing Sun's
Remote Procedure Call (RPC) package. The message protocol is
specified with the eXternal Data Representation (XDR) language .
This document assumes that the reader is familiar with XDR. It does
not attempt to justify RPC or its uses. The paper by Birrell and
Nelson  is recommended as an excellent background to and
justification of RPC.
This document discusses servers, services, programs, procedures,
clients, and versions. A server is a piece of software where network
services are implemented. A network service is a collection of one
or more remote programs. A remote program implements one or more
remote procedures; the procedures, their parameters, and results are
documented in the specific program's protocol specification (see
Appendix A for an example). Network clients are pieces of software
that initiate remote procedure calls to services. A server may
support more than one version of a remote program in order to be
forward compatible with changing protocols.
For example, a network file service may be composed of two programs.
One program may deal with high-level applications such as file system
access control and locking. The other may deal with low-level file
IO and have procedures like "read" and "write". A client machine of
the network file service would call the procedures associated with
the two programs of the service on behalf of some user on the client
3. THE RPC MODEL
The remote procedure call model is similar to the local procedure
call model. In the local case, the caller places arguments to a
procedure in some well-specified location (such as a result
register). It then transfers control to the procedure, and
eventually gains back control. At that point, the results of the
procedure are extracted from the well-specified location, and the
caller continues execution.
The remote procedure call is similar, in that one thread of control
logically winds through two processes -- one is the caller's process,
the other is a server's process. That is, the caller process sends a
call message to the server process and waits (blocks) for a reply
message. The call message contains the procedure's parameters, among
other things. The reply message contains the procedure's results,
among other things. Once the reply message is received, the results
of the procedure a...