I've started studying distributed systems in college and here's a beginners view on RPC's.
Remote Procedure calls are protocols that enable a program execute a service in a different address space or another computer for simplicity.These are normally referred to as subroutine calls or function calls.
RPC's are synchronous which means client programs requesting need to be suspended until the results of the subroutine call is returned.
In the OSI model, an RPC laps the transport layer and Application Layer.
The regular method in which the client continually pings the server until it responds.
The client requests and continues to process without having to wait for a response from the server. note : The server doesn't respond.
Sending non-blocking client calls in bulk.
Sending messages to many servers and receiving replies
Client makes a non-blocking client/server call , the server responds by invoking a procedure associated with the client.