system on the network. Most remote and local calls are
very similar in nature and can be distinguished from one
another based on whether they are local or remote. RPCs
are sometimes also known as function or subroutine
calls. Using an RPC is a very common way of executing
specific commands, such as executing GET or POST
operations to a set API or URL.
When a client sends a request message, the RPC
translates it and then sends it to the server. A request
may be a procedure or a function call destined to a
remote server. When a server receives the request, it
sends back a response to the client. While this
communication is happening, the client is blocked,
allowing the server time to process the call. Once the call
is processed and a response has been sent back to the
client, the communication between the client and server
is unblocked so the client can resume executing the
procedure call. This can be considered a security
mechanism to prevent the flooding of RPCs to brute-
force the server and cause denial-of-service (DoS) attacks
or exhaustion of resources. Figure 6-8 showcases the
high-level RPC communications between a client and a
server.
Figure 6-8 High-Level RPC Communications