This preview shows page 1. Sign up to view the full content.
Unformatted text preview: lues. For example, if the arguments consist of integers and floating point
numbers, the RPC package handles any differences in the way integers and floating
point numbers are stored on the client and server. This simplifies coding clients
and servers that can operate in heterogeneous environments.
Details of RPC programming are provided in Chapter 18 of [Stevens 1990]. Two popular
RPC packages are Sun RPC and the RPC package in the Open Software Foundation's
(OSF) Distributed Computing Environment (DCE). Our interest in RPC is to see what the
procedure call and procedure return messages look like for the Sun RPC package, since
it's used by the Network File System, which we describe in this chapter. Version 2 of Sun
RPC is defined in RFC 1057 [Sun Microsystems 1988a].
Sun RPC comes in two flavors. One version is built using the sockets API and works with
TCP and UDP. Another, called TI-RPC (for "transport independent"), is built using the
TLI API and works with any transport layer provided by the kernel. From our perspective
the two are the same, although we talk only about TCP and UDP in this chapter.
Figure 29.1 shows the format of an RPC procedure call message, when UDP is used. file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/nfs_netw.htm (2 of 23) [12/09/2001 14.47.56] Chapter 29. NFS: Network File System Figure 29.1 Format of RPC procedure call message as a UDP datagram.
The IP and UDP headers are the standard ones we showed earlier (Figures 3.1 and 11.2).
What follows after the UDP header is defined by the RPC package.
The transaction ID (XID) is set by the client and returned by the server. When the client
receives a reply it compares the XID returned by the server with the XID of the request it
sent. If they don't match, the client discards the message and waits for the next one from
the server. Each time the client issues a new RPC, it changes the XID. But if the client
retransmits a previously sent RPC (because it hasn't received a reply), the XID does not
The call variable is 0 for a call, and 1...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12