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. ABSTRACT 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". TABLE OF CONTENTS 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 1. INTRODUCTION 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. 2. TERMINOLOGY 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 client. 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. 3. THE RPC MODEL 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