25.02.2013 Views

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

► User authentication might be necessary.<br />

► The location of the server must be known.<br />

Call message <strong>and</strong> reply transport<br />

The RPC protocol can be implemented on any transport protocol. In the case of<br />

<strong>TCP</strong>/<strong>IP</strong>, it can use either <strong>TCP</strong> or UDP as the transport vehicle. When using UDP,<br />

remember that this does not provide reliability. Therefore, it is the responsibility<br />

of the caller program to employ any needed reliability (using timeouts <strong>and</strong><br />

retransmissions, usually implemented in RPC library routines). Note that even<br />

with <strong>TCP</strong>, the caller program still needs a timeout routine to deal with exceptional<br />

situations, such as a server crash or poor network performance.<br />

RPC call message structure<br />

The RPC call message consists of several fields:<br />

► Program <strong>and</strong> procedure numbers<br />

Each call message contains three unsigned integer fields that uniquely<br />

identify the procedure to be executed:<br />

– Remote program number<br />

– Remote program version number<br />

– Remote procedure number<br />

The remote program number identifies a functional group of procedures, for<br />

example, a file system, that includes individual procedures such as read <strong>and</strong><br />

write. These individual procedures are identified by a unique procedure<br />

number within the remote program. As the remote program evolves, a version<br />

number is assigned to the different releases.<br />

Each remote program is attached to an internet port. The number of this port<br />

can be freely chosen, except for the reserved well-known-services port<br />

numbers. It is evident that the caller will have to know the port number used<br />

by this remote program.<br />

► Authentication fields<br />

Two fields, credentials <strong>and</strong> verifier, are provided for the authentication of the<br />

caller to the service. It is up to the server to use this information for user<br />

authentication. Also, each implementation is free to choose the varieties of<br />

supported authentication protocols. These authentication protocols include:<br />

– Null authentication.<br />

– UNIX authentication: The callers of a remote procedure can identify<br />

themselves as they are identified on the UNIX system.<br />

Chapter 11. Application structure <strong>and</strong> programming interfaces 417

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!