Browse Prior Art Database

RPC: Remote Procedure Call Protocol specification: Version 2 (RFC1057) Disclosure Number: IPCOM000001864D
Original Publication Date: 1988-Jun-01
Included in the Prior Art Database: 2019-Feb-15
Document File: 25 page(s) / 32K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

Sun Microsystems: AUTHOR

Related Documents

10.17487/RFC1057: DOI


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.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 7% of the total text.

Network Working Group Sun Microsystems, Inc. Request For Comments: 1057 June 1988 Obsoletes: RFC 1050

RPC: Remote Procedure Call Protocol Specification Version 2


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 version two of the message protocol used in Sun’s Remote Procedure Call (RPC) package. The message protocol is specified with the eXternal Data Representation (XDR) language [9]. This document assumes that the reader is familiar with XDR. It does not attempt to justify remote procedure calls systems or describe their use. The paper by Birrell and Nelson [1] is recommended as an excellent background for the remote procedure call concept.


This document discusses clients, calls, servers, replies, services, programs, procedures, and versions. Each remote procedure call has two sides: an active client side that sends the call to a server, which sends back a reply. 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). A server may support more than one version of a remote program in order to be 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 input and output and have procedures like "read" and "write". A client of the network file service would call the procedures associated with the two programs of the service on behalf of the client.

The terms client and server only apply to a particular transaction; a

Sun Microsystems [Page 1]

RFC 1057 Remote Procedure Call, Version 2 June 1988

particular hardware entity (host) or software entity (process or program) could operate in both roles at different times. For example, a program that supplies remote execution service could also be a client of a network file service. On the other hand, it may simplify software to separate client and server functionality into separate libraries or programs.


The Sun RPC protocol is based on the remote procedure call model, which 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 register window). It then transfers control to the procedure, and eventually regains 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 model is similar. One thread of control logically winds through two processes:...