Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!auspex!guy From: guy@auspex.auspex.com (Guy Harris) Newsgroups: comp.unix.questions Subject: Re: Sockets/STREAMS/TLI ? Message-ID: <3785@auspex.auspex.com> Date: 28 Jul 90 18:58:39 GMT References: <36200002@inmet> Organization: Auspex Systems, Santa Clara Lines: 43 >The question is, WHICH set of lower-level components should I use? I >gather that the underlying mechanism for SUN's rpc facility is >sockets, so that would be an obvious choice. Correct, in SunOS (modulo the non-existence of a major workstation vendor named SUN; it's "Sun Microsystems", not "SUN Microsystems"). >However, the SUN 4.1 documentation (in particular the Network >Programming Guide) alludes to the fact that SUN intends to ultimately >discontinue support for sockets, and warns the user to not use them >directly for new software. What this means is that the next major OS release from Sun will be based on System V Release 4, and the "native" networking interface in S5R4 is TLI. However, S5R4 will have a sockets interface, at least to the Internet protocol family, as well. >If that were true, what should one use instead? The impression I >get from that very same Guide is that the answer is TLI. However, >TLI is NOT available on pre-4.1 releases. Is there something on that >level that IS available both now and in the future? No. >What comes to mind is STREAMS. However, I find it hard to figure out whether >STREAMS provide the same functionality as sockets and/or TLI, That's because it ultimately doesn't. Sockets provides the same functionality as STREAMS+TLI. TLI is built atop STREAMS; some of the functionality provided by sockets is mirrored by STREAMS functionality, and other functionality is mirrored by TLI functionality. Prior to SunOS 4.1, the only networking functionality implemented using STREAMS is NIT (unless you count the tty driver). Prior to SunOS 4.0, you don't have STREAMS anyway. I would probably go with sockets for now, if I were concerned about maximum portability. Just about every UNIX system that offers the Internet protocol family has them (I think most TCP/IP packages for S5R3 come with a socket emulation library; TCP/IP implementations atop S5R2 and the like tended to be done with sockets; S5R4 comes standard with a sockets library, and any UNIX system with a BSD-based networking implementation has sockets).