[comp.protocols.tcp-ip.ibmpc] No corners, just sockets, TLI, and Streams

bc@halley.UUCP (Bill Crews) (11/30/87)

In article <3373@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes:
>Throughout the discussion of sockets -vs- TLI, I am getting the persistent
>impression that the TLI people think sockets are somehow "TCP/IP specific"
>while TLI is "general".

You didn't get this from me.

>[...]
>
>Another posting said that TLI allows both byte-stream and message-oriented
>protocols, implying that this was a feature sockets lack.  It ain't so --
>sockets can do it too.

I think you did get that one from me, but I certainly didn't mean to imply
anything whatever about sockets.  I think you may have been reading a
"TLI-vs-sockets" theme into a discussion about TLI.

>I don't know the difference between streams and TLI, though someone
>said they are independent, but here's my uneducated complaints about both:
>
>* TLI only exists because of AT&T's "Not Invented Here" attitude, and I
>hate to help people who do that.

Oh, I agree.  Now, whether that means I do or do not want to support TLI
depends on quite a few more things.

>* The "select" or "poll" call is essential in providing easy, low overhead
>access to several network connections or devices or files.  For
>example, in a telnet (remote login) program, the program should wait
>until either a new packet of data comes in, or until a key is hit.
>Select was implemented throughout the system -- it works on any kind of
>file descriptor.  "Poll" only works on streams, not on pipes, files, or
>devices like serial ports, requiring ugly kludges for simple stuff like
>telnet.  And they could have called it "select" since it does the same
>thing, but NIH reared its ugly head again.

What select() and poll() work on is highly vendor-specific.  I see no reason
why the functionality should be limited to certain types of file descriptors.
It may happen that data is always there for regular files, but that's OK;
regular files should still be supported.  I think most vendors who try very
hard at all will have select() and poll() supporting the same set of
descriptor types.

>[...]
>
>For me the choice is clear.  There's a bunch of public domain software
>out that uses the socket interface, and while I could waste my time rewriting
>it so AT&T can play NIH, why bother?

No reason much, until TLI applications start to proliferate.

>[...]

I hope this discussion doesn't degenerate into a religious thing.  I'm still
interested in ferreting out the advantages and disadvantages of all interfaces.

-bc
-- 
Bill Crews                                   Tandem Computers
                                             Austin, Texas
..!rutgers!im4u!esc-bb!halley!bc             (512) 244-8350