nobody@lll-tis.arpa (User for running unprivileged daemons) (11/26/87)
More on sockets vs. TLI
System calls comparison of socket and TLI.
-------------------------------------------------------------------------------
socket TLI functionality
-------------------------------------------------------------------------------
select poll for asynchronous I/O
socket t_open open a socket (or connection end-point)
close t_unbind,close,t_close close a socket
shutdown t_snddis,t_sndrel disconnect
bind t_bind bind address to socket
listen t_listen watch for incoming calls
accept t_accept accept a connection request
connect t_connect ask for a connection
read read obvious
write write ditto
recv t_rcv ditto
send t_snd ditto
recvfrom t_rcvudata for datagrams
sendto t_sndudata for datagrams
It's no wonder why TLI seems to be more compatible with OSI - it has
been invented recently. BSD sockets use different address format (structure)
for different domains, thus Internet, UNIX, XNS domain address structures
differ accordingly. TLI ep address space is allocated via t_alloc and
t_free - t_alloc determines a particular address format for a particular
protocol family automatically. OSI Tranport Layer Protocols doesn't
guarantee all pending data will be transferred when the connection gets
shutdown - it's done by the Session Layer.
TCP handles this graceful close. Socket library calls, I think,
is tailored to fit this TCP scheme. When you "close" without "shutdown"
first, graceful close is implemented automatically. "shutdown"ing first
doesn't guarantee anything. TLI t_sndrel explicitly tells STREAM protocol
module to support graceful close; t_snddis does the opposite.
TLI and STREAMS have much going for them. Already implementations of
TP4, TCP/IP, X.25 are beginning to emerge for STREAMS.
I think both socket, and TLI could have been better. I also think we
can pretty much use what we have to do what we want, therefore am
thankful to those who implemented these calls.
Only I (not my employer) am responsible for what I said here.
Hwa Jin Bae (415) 463-6865 | Control Data Corp.
bae@{lll-tis.arpa,lll-aftac.arpa} (internet) | 4234 Hacienda Dr.
{ames,ihnp4,lll-crg}!lll-tis!plseca!hbae (UUCP) | Pleasanton, CA 94566