RPC

Stands for "Remote Procedure Call."

An RPC is a message instructing one computer to execute code on behalf of another computer over a network. It allows a program running locally on one computer to offload a procedure (a block of code that performs a specific task) to another program on a server, which returns the result. The program that issued the RPC then treats the result of the remote procedure the same as it would treat the result of one that ran locally.

RPCs utilize a client-server model, where multiple client computers may connect to a server to send instructions and receive data. When a program issues an RPC, it includes a set of parameters to instruct the server what procedure to run and how to run it. For example, a client computer sending an RPC message to DNS server would include the domain name it wants to resolve as a parameter; another message sending a print job to a network printer would include print settings like paper size and orientation as parameters.

There is no single RPC protocol. Instead, the idea of RPCs is the concept that many protocols use to enable remote execution of code. Some common RPC protocols include XML-RPC (which formats an RPC using XML markup) and JSON-RPC (which formats an RPC using JSON). However, all RPC protocols send messages in a similar way. A client program first issues a procedure call to a piece of client-side code, called a stub, that acts as a proxy for that procedure. The stub communicates with the server to tell it what procedure to run and what parameters to use. The server performs the procedure and sends the result back to the stub, when returns the result to the program that issued the RPC.

Updated November 1, 2023 by Brian P.

quizTest Your Knowledge

Which Windows API is used for network communication?

A
Winsock
0%
B
SENS
0%
C
WIC
0%
D
BITS
0%
Correct! Incorrect!     View the Winsock definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of RPC on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.