Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →A remote function call can look like an ordinary local call, but it is still a request sent across a network and a reply sent back. The API can hide the distance. It cannot erase what the distance changes: representation, latency, failure, retries, and uncertainty about whether an operation ran.
What happens when a remote call looks local?
With a local function call, a program invokes code in its own process, waits for it to run, and receives a result. The syntax may be as simple as result = getAccount(id).
As an Amazon Associate I earn from qualifying purchases.
In a remote procedure call (RPC), that line is an abstraction over communication. The client-side code turns the invocation and its arguments into a request message. A server receives and interprets that message, performs the operation, and sends a reply that the client turns into a return value or error. The function call itself does not cross the network; a representation of the call does.
That distinction matters because the client and server need an agreed way to represent the request and reply. ONC RPC, for example, defines its message protocol using External Data Representation (XDR). This is a feature of ONC RPC, not a universal rule for every RPC system. RFC 5531 describes the ONC RPC protocol.
#1 Best Overall
How does RPC differ from a local call?
A local-looking interface can save developers from repeatedly writing message-handling code. It cannot make the communication path behave like an in-process call.
| Concern | Local procedure call | Remote procedure call |
|---|---|---|
| Communication | Invokes code in the local process. | Sends a request message to a remote service and receives a reply. |
| Data | Arguments and results are handled within the process. | Arguments and results must be represented for transmission and interpreted at the other end. |
| Latency | Does not wait for a network round trip. | Includes communication and server-processing time; the caller may block while waiting for the reply. |
| Failure | Does not face network or remote-server failures. | Can encounter network or server errors, including a missing reply. |
| What a timeout tells the caller | Not applicable to a network reply. | The caller did not receive a reply in time; that alone does not establish whether the server ran the operation. |
RFC 5531, an IETF specification published in 2009, says remote procedures “usually operate at one or more orders of magnitude slower than local procedure calls.” This is a qualified general statement in the specification, not a current benchmark for every RPC framework, network, or workload.
Rank #2
Why doesn’t a timeout tell you whether the operation ran?
A timeout records what the client observed: no reply arrived within the time it was willing to wait. It does not reveal exactly what happened on the server. The request might not have reached the server, the server might have failed before acting, or it might have completed the operation while its reply was lost or delayed.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteThis ambiguity affects retries. If a client resends a request after a timeout, the server may perform the same operation again. That can matter for operations with effects such as charging a payment or creating a record. A reliable transport such as TCP does not make the application-level outcome certain: even with TCP, the absence of a reply does not prove that the remote procedure was not executed.
Rank #3
Applications therefore need an explicit policy for timeouts and retries, designed around the operation and server behavior. The available evidence does not support a blanket promise of “exactly once” execution. Whether duplicate effects can be prevented depends on the protocol and application design.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What does the transport change?
RPC and its underlying transport are separate concerns. RFC 5531 states that ONC RPC itself does not implement reliability. When an application uses an unreliable transport, it may need policies for timeouts, retransmission, and duplicate detection. The appropriate behavior depends on the transport and the operation; retrying is not automatically safe.
Rank #4
This distinction is useful beyond ONC RPC: an RPC interface does not, by itself, answer what happens when messages are lost or replies arrive late. Those behaviors must be understood and handled at the relevant protocol and application layers.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteWhat should a good RPC abstraction hide?
A useful abstraction can hide repetitive mechanics: constructing messages, sending them, receiving replies, and presenting results through a convenient interface. It should not encourage callers to assume that remote operations have local-call timing or failure semantics.
- Design for the possibility that a request or reply is delayed or lost.
- Choose retry behavior with the operation’s effects and duplicate-execution risks in mind.
- Make errors and timeouts meaningful to callers rather than disguising them as ordinary local outcomes.
- Use a defined data representation understood by both sides.
RFC 5531’s author, R. Thurlow, cautions: “The conclusion is that even though there are tools to automatically generate client and server libraries for a given service, protocols must still be designed carefully.” The specification dates to May 2009; RFC 9289 updates it, so current deployment details should be checked against the applicable specification and implementation documentation. RFC 9289.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




