ONC+ Developer's Guide

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. 


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.


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.