Dismiss
There will be a system update on Friday, May 5th, 6 PM ET. You may experience a brief service interruption.
Browse Prior Art Database

RPC: Remote Procedure Call Protocol specification (RFC1050)

IP.com Disclosure Number: IPCOM000001857D
Original Publication Date: 1988-Apr-01
Included in the Prior Art Database: 2000-Sep-12
Document File: 20 page(s) / 47K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

Sun Microsystems: AUTHOR

Abstract

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 [9]. 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 [1] is recommended as an excellent background to and justification of RPC.

This text was extracted from a ASCII Text document.
This is the abbreviated version, containing approximately 6% of the total text.

Network Working Group Sun Microsystems, Inc.

Request for Comments: 1050 April 1988

RPC: Remote Procedure Call

Protocol Specification

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.

1. INTRODUCTION

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 [9].

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 [1] is recommended as an excellent background to and

justification of RPC.

2. TERMINOLOGY

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

machine.

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...