Unformatted text preview: uilt this way.
RPC, Remote Procedure Call, is a different way of doing network programming. A client
program is written that just calls functions in the server program. This is how it appears to
the programmer, but the following steps actually take place.
1. When the client calls the remote procedure, it's really calling a function on the
local host that's generated by the RPC package. This function is called the client
stub. The client stub packages the procedure arguments into a network message, file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/nfs_netw.htm (1 of 23) [12/09/2001 14.47.56] Chapter 29. NFS: Network File System and sends this message to the server.
2. A server stub on the server host receives the network message. It takes the
arguments from the network message, and calls the server procedure that the
application programmer wrote.
3. When the server function returns, it returns to the server stub, which takes the
return values, packages them into a network message, and sends the message back
to the client stub.
4. The client stub takes the return values from the network message and returns to the
The network programming done by the stubs and the RPC library routines uses an API
such as sockets or TLI, but the user application-the client program, and the server
procedures called by the client-never deal with this API. The client application just calls
the server procedures and all the network programming details are hidden by the RPC
package, the client stub, and the server stub. An RPC package provides numerous
1. The programming is easier since there is little or no network programming
involved. The application programmer just writes a client program and the server
procedures that the client calls.
2. If an unreliable protocol such as UDP is used, details like timeout and
retransmission are handled by the RPC package. This simplifies the user
3. The RPC library handles any required data translation for the arguments and return
View Full Document
- Spring '12