8 ms·
Are sockets the wave of the future? (1990)
- Lammy 4y agoMeta: The "opposing arrows" icon is Expand All. Next to the Subscribe checkbox. It was non-obvious to me.
- NelsonMinar 4y agoFor anyone needing context, STREAMS was SysV's competing API for I/O. https://en.wikipedia.org/wiki/STREAMS https://en.wikipedia.org/wiki/STREAMS
- JohnMakin 4y agoso I'm guessing this response nailed why it didn't catch on: >Regardless of what the wave of the future is, presently if you write to the TLI interface you won't be able to compile your code on a socket-only system whereas if you use the socket interface you'll be portable to most TLI systems (since they usually come with socket interface libraries). If you aren't concerned about optimal efficiency, writing to the socket interface now would be more portable.
- thriftwy 4y ago> The disadvantage is that you can't write programs like FTP or sendmail using the RPC protocol. Not programs that will interoperate with other FTP's and sendmails, at any rate. > While RPC is good for some things, it is not the answer to all the networking problems. Sometimes you just gotta write at a fairly low level to interoperate with other programs.
- dan-robertson 4y agoMy understanding was that the thinking at the time was that the IP family protocols (ie tcp, udp, etc) would soon be replaced by OSI protocols and the sockets api was too tightly coupled with IP protocols and so your applications would need more difficult upgrades in the future if you wrote them against sockets. But your quotation disagrees with that claim. I think part of the implied benefit of the epic library is that it would seamlessly transition when the new OSI protocols were used. Obviously, we now know that the OSI protocols didn’t get used (unless you count ldap or x509 or everyone talking about layers all the time) and so the more flexible api was not required.
- logronoide 4y agoThat’s what our “Teleinformatics” professors taught to us early in the 90’s at the university. OSI protocols were promising but adoption was not clear.
- saghm 4y ago> or everyone talking about layers all the time This is super funny, but also a bit of a surprise for someone born after the referenced thread occurred. As someone who only learned about the "layers" model of networks in college more than two decades after the discussion, it never occurred to me that the original intent of the model was to describe forthcoming protocols from OSI; we were just told "this layer means TCP or UDP, this layer means IP, etc.", and no one mentioned any historical context around the choices.
- TedDoesntTalk 4y agoTannenbaums network books from the late 80s also mapped the OSI layers onto TCP/UDP/IP
- Tuna-Fish 4y agoFor anyone interested in the historical context, I strongly recommend this blogpost on it: https://computer.rip/2021-03-27-the-actual-osi-model.html https://computer.rip/2021-03-27-the-actual-osi-model.html
- convolvatron 4y agosockets seem conceptually worse than streams, but streams was a total PITA to code to. once you got something set up, it was fine, but you had to assemble the stack with a bunch of control messages, and there was very little introspection. I can't imagine pushing streams as an everyday networking interface for people
- cryptonector 4y agoThe application need not have a LEGO blocks picture of networking. The networking stack can, but doesn't have to have a LEGO blocks picture of networking. The OSI model is a guide, not a law.
- cryptonector 4y agoAnd also because STREAMS/TLI/XTI was awful.
- jrpelkonen 4y agoI found this quote by Henry Spencer amusing: > It is important to distinguish "streams" (Dennis Ritchie's term for his revised non-block-device i/o system) from "STREAMS" (what AT&T put into System V). Dennis's streams cleaned up a lot of mess, and improved performance to boot. But as Dennis is rumored to have said, "`streams' means something different when shouted".
- cryptonector 4y agoYes, quite. At Sun we used to have a pejorative phrase "it came from NJ" which referred to code added by AT&T but which wasn't from Ritchie et. al.
- dan-robertson 4y agohttps://en.m.wikipedia.org/wiki/X/Open_Transport_Interface https://en.m.wikipedia.org/wiki/X/Open_Transport_Interface describes the (slight successor to) the TLI api mentioned and has a shallow comparison table to tcp.
- detourdog 4y agoWhen Apple bought NeXT I was surprised when they dropped Open Transport. They had been touting The move from sockets to streams as the future and had finally migrated to Open Transport. I specifically remember hearing from Avie that Streams maybe technically better but sockets are so foundational that the new OS would use sockets. He felt streams just weren't an option.
- TazeTSchnitzel 4y agoSo many software solutions have promised to be the future and failed. If you write software with APIs that are a few years old already, you'll not have to worry about it.
- zwieback 4y agoYou still have to pick the right one of the older APIs, though. In the 90s there were plenty of other networking protocols and APIs to choose from but TCP/IP and sockets won out.
- antonvs 4y agoLook at network effects to pick the right tool, API etc. TCP/IP won out because of the internet. The competitors were mostly LAN protocols, like Novell’s IPX/SPX and Microsoft’s SMB, that became superfluous once networks were connected to the internet - none of those protocols had any reason to exist in the presence of TCP/IP. I remember trying to convince a Netware fan of that in the late 90s though - he wasn’t having it.
- zwieback 4y agoand let's not forget about AppleTalk, respectable in its day.
- davidw 4y agoWow, some famous people on that thread: https://en.wikipedia.org/wiki/Daniel_J._Bernstein https://en.wikipedia.org/wiki/Daniel_J._Bernstein https://en.wikipedia.org/wiki/Werner_Vogels https://en.wikipedia.org/wiki/Werner_Vogels https://en.wikipedia.org/wiki/Henry_Spencer https://en.wikipedia.org/wiki/Henry_Spencer Jump out immediately, maybe there are others.
- zwieback 4y agoThat was the fun thing about Usenet back then - lots of open exchange between key people and anyone could join in (which eventually was its undoing).
- bigdict 4y agoIRC is still like that.
- pitched 4y agoI’ve wanted to get back on IRC for a while but don’t really know where people live in it these days. Are there any specific channels/servers that are still popular where I can start?
- narag 4y agoIt's been three years for me. Last time it was in Freenode, but there was some drama more recently and if I'm not mistaken, people migrated to a new net called libera.chat. Chanels, depending on what you're looking for, but there used to be a lot of them, just look number of users.
- pmarreck 4y agosome saudi dude apparently bought freenode and immediately tried to monetize it (not 100% sure of these details) and that was that apparently
- ajaimk 4y agoCan someone explain how Google Groups has posts from 1990?
- ChrisClark 4y agoThey bought all the Usenet archives, I forget what company it was though, Dejanews?
- magicalhippo 4y agoIndeed: https://en.wikipedia.org/wiki/Google_Groups#Deja_News https://en.wikipedia.org/wiki/Google_Groups#Deja_News They still have one of my favorite posts: https://groups.google.com/g/sci.nanotech/c/QlsQPORilE8 https://groups.google.com/g/sci.nanotech/c/QlsQPORilE8
- pmarreck 4y agoI loved that post but got annoyed by all the grammar fails so I asked chatgpt4 to not only correct it but add some Douglas Adams flavor. Here is the result: https://gist.github.com/pmarreck/7092d28f3d9bf8dff99faa61d01f1176 https://gist.github.com/pmarreck/7092d28f3d9bf8dff99faa61d01...
- ern 4y agoThey bought Dejanews, but then some people donated their archives dating back to the 80's and they were integrated into Google News. https://web.archive.org/web/20011212191924/https://www.google.com/googlegroups/archive_announce_20.html https://web.archive.org/web/20011212191924/https://www.googl...
- smcameron 4y agoIt's (some of) the old DejaNews stuff.
- ur-whale 4y ago> Can someone explain how Google Groups has posts from 1990? They bought Dejanews which brought in a large chunk of what was available on usenet. But there was also a team inside Google that was specifically tasked with hunting ancient newsgroup archives from where ever they could find it, and a lot of people on the net contributed what they had archived. For example some people physically mailed them stacks of CD's in cardboard boxes. Kudos to that team for merging the whole mess into a usable, so far ever-lasting resource.
- deleted 4y ago[deleted]
- krupan 4y agoAmazing! If you ever wondered how Linux and open source were able to completely destroy proprietary UNIX, this is a great example. Competing proprietary libraries on competing proprietary UNIX implementations all with subtle differences just because.
- loa_in_ 4y agoThe frontier probably didn't really move all that much, conceptually. Someone probably is writing open CUDA lib right now, or spending another half-awake night improving Nouveau open graphics driver, or trying to tell if NTFS is even worth pushing on with...
- 0xbadcafebee 4y ago> Competing proprietary libraries on competing proprietary UNIX implementations all with subtle differences just because. Replace "UNIX implementations" with "desktop environments" and that's Linux to a tee
- revelio 4y agoEh what destroyed proprietary unix was Windows NT, which was proprietary everything. Linux came along and mopped up what was left, but was able to do so largely because UNIX wasn't all that proprietary. As the thread points out, Sun had documented all their protocols which Microsoft never did.
- deleted 4y ago[deleted]
- kalleboo 4y agoApple's networking and TCP/IP implementation for classic MacOS was also based on STREAMS, as it was presumed to be the wave of the future https://en.wikipedia.org/wiki/Open_Transport https://en.wikipedia.org/wiki/Open_Transport
- Taniwha 4y agoI coded the AppleTalk stack for Apple's A/UX a year or two before the above conversation (I don't know if my code ever got used more widely at Apple) - it was all STREAMS - and pretty easy - create a DDP mux layer, open a stream on it (allocating a socket number), push an ATP module on that - you have an ATP connection - push a remote login protocol extension on that, then push a line discipline on that - all like plugging together lego bricks. You could replace DDP with UDP and do the same thing. STREAMS really was the cool thing at the time (if you were in the SystemV camp, if you were in the BSD camp it was the enemy - A/UX had both :-)
- hapless 4y agoI love how this thread goes completely off the rails almost immediately. In the grim darkness of the internet, there is only eternal flamewar
- cryptonector 4y agoWow, what blast from the past. Fortunately STREAMS and TLI and XTI all died the death they should have. Someone must have had a time machine and fixed the past a wee bit.
- 0xbadcafebee 4y agoWow, this thread is ancient. Not a single person is suggesting layering 3 different protocols inside one HTTP request, or turning the request into a full-duplex stateful connection. The fools!
- fijiaarone 4y agoThey would have recommended GRPC over JSON-SOAP-P over web sockets using Lambda functions communicating via Kafka event streams, but HTTP hadn’t been invented yet.
- mianos 4y agoI was following this a few years so I did a few things with streams on my sun 386i. 'Everyone was pretty confident streams would replace everything'. Like DCE later. By the time I went back to client server work a few years later it was all sockets. Seems like yesterday.
- eslaught 4y agoCan someone talk about what this "auth" library is that djb talks about? What is its security model? As best I can tell, it doesn't protect from MITM attacks. If so, I'm confused about what the point is.
- cosmojg 4y agoThere's definitely more to it than this, but keep in mind that djb was a teenager at the time, likely flaming for the sake of flaming as we all have at some point in our misguided youth, and no doubt, he was quite proud of his library.
- swixmix 4y agoAn implementation of auth is identd. https://en.wikipedia.org/wiki/Ident_protocol https://en.wikipedia.org/wiki/Ident_protocol It is a way for the server to verify which username initiated a connection from the client by connecting back to the client on a privileged port and ask, referencing the local and remote port of the target connection.
- mcint 4y agoHe said "above TCP". > it eliminates mail and news forgery above TCP I have some trouble guessing offhand what flavor of security confusion was fresh in mind from the preceding 3 to 10 years (and I was yet to be born), but after glancing at RFC 931, I'm going to guess that before this, user-hostname identifiers were handled in varied ad-hoc ways allowing spoofing of sender, or connecting user. I'm careful not to say "authenticating" user. https://datatracker.ietf.org/doc/html/rfc931 https://datatracker.ietf.org/doc/html/rfc931 It's actually an evergreen problem, happened on a new social site, last week. A message from your good friend, Amazon S3: https://pbs.twimg.com/media/FvW7NJtWAAAocCe?format=jpg&name=small https://pbs.twimg.com/media/FvW7NJtWAAAocCe?format=jpg&name=...
- meindnoch 4y agoSockets? Nah. If you want to be future-proof you should abstract that crap away with something modern like CORBA!
- jasonm23 4y agoOh great now coffee is everywhere.
- pfoof 4y agoI just feel and hear the sound of this clicky old mechanical keyboard, anyone who writes on this keyboard faster than 20 wpm is announcing to the world their unprecedented productivity