Differences Between TI-RPC and TS-RPC
The major differences between transport-independent RPC and transport-specific RPC are illustrated in the
following table. Also see Comparison Examples for code examples comparing TS-RPC with TI-RPC.
Table 6-1 Differences Between TI-RPC and TS-RPC
|
|
|
Default
Transport Selection |
TI-RPC uses the TLI interface. |
TS-RPC uses the socket interface. |
RPC Address Binding |
TI-RPC
uses rpcbind() for service binding. rpcbind() keeps address in universal address format.
|
TS-RPC uses portmap for service binding. |
Transport Information |
Transport information is kept in
a local file, /etc/netconfig. Any transport identified in netconfig is accessible. |
Only
TCP and UDP transports are supported. |
Loopback Transports |
rpcbind service requires a secure loopback transport
for server registration. |
TS-RPC services do not require a loopback transport. |
Host Name Resolution |
The
order of host-name resolution in TI-RPC depends on the order of dynamic libraries
identified by entries in /etc/netconfig. |
Host-name resolution is done by name services. The
order is set by the state of the hosts database. |
File Descriptors |
Descriptors are assumed
to be TLI endpoints. |
Descriptors are assumed to be sockets. |
rpcgen |
The TI-RPC rpcgen
tool adds support for multiple arguments, pass-by values, sample client files, and sample
server files. |
rpcgen in SunOS 4.1 and previous releases does not support the features listed
for TI-RPC rpcgen. |
Libraries |
TI-RPC requires that applications be linked to the libnsl library.
|
All TS-RPC functionality is provided in libc. |
MT
Support |
Multithreaded RPC clients and servers are supported. |
Multithreaded RPC is not supported. |
|