Remote Procedure Call (RPC) is based on the observation that procedure calls are a well-known and well-understood mechanism for transfer of control within a program running on a single computer.
It is proposed that this same mechanism be extended to provide for transfer of control and data across a communication network. RPC Makes the programming of distributed systems look similar, if not identical, to conventional programming - achieving high level of distribution transparency.
Request-reply protocols can be implemented in different ways to provide different delivery guarantees. The main choices are: