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. |
|