RPC: Remote Procedure Call Protocol Specification Version 2
RFC 1831

Document Type RFC - Proposed Standard (August 1995; No errata)
Obsoleted by RFC 5531
Author Raj Srinivasan 
Last updated 2013-03-02
Stream IETF
Formats plain text html pdf htmlized bibtex
Stream WG state (None)
Document shepherd No shepherd assigned
IESG IESG state RFC 1831 (Proposed Standard)
Consensus Boilerplate Unknown
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                      R. Srinivasan
Request for Comments: 1831                              Sun Microsystems
Category: Standards Track                                    August 1995

      RPC: Remote Procedure Call Protocol Specification Version 2

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.


   This document describes the ONC Remote Procedure Call (ONC RPC
   Version 2) protocol as it is currently deployed and accepted.  "ONC"
   stands for "Open Network Computing".


      1. INTRODUCTION                                              2
      2. TERMINOLOGY                                               2
      3. THE RPC MODEL                                             2
      4. TRANSPORTS AND SEMANTICS                                  4
      5. BINDING AND RENDEZVOUS INDEPENDENCE                       5
      6. AUTHENTICATION                                            5
      7. RPC PROTOCOL REQUIREMENTS                                 5
      7.1 RPC Programs and Procedures                              6
      7.2 Authentication                                           7
      7.3 Program Number Assignment                                8
      7.4 Other Uses of the RPC Protocol                           8
      7.4.1 Batching                                               8
      7.4.2 Broadcast Remote Procedure Calls                       8
      8. THE RPC MESSAGE PROTOCOL                                  9
      9. AUTHENTICATION PROTOCOLS                                 12
      9.1 Null Authentication                                     13
      10. RECORD MARKING STANDARD                                 13
      11. THE RPC LANGUAGE                                        13
      11.1 An Example Service Described in the RPC Language       13
      11.2 The RPC Language Specification                         14
      11.3 Syntax Notes                                           15
      APPENDIX A: SYSTEM AUTHENTICATION                           16
      REFERENCES                                                  17
      Security Considerations                                     18
      Author's Address                                            18

Srinivasan                  Standards Track                     [Page 1]
RFC 1831        Remote Procedure Call Protocol Version 2     August 1995


   This document specifies version two of the message protocol used in
   ONC Remote Procedure Call (RPC).  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 makes 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.  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

   The terms client and server only apply to a particular transaction; a
   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.


   The ONC 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-
Show full document text