Subject: Re: corba or sockets? From: Erik Naggum <erik@naggum.net> Date: 30 Oct 2000 22:41:40 +0000 Newsgroups: comp.lang.lisp Message-ID: <3181934500577293@naggum.net> * Paolo Amoroso <amoroso@mclink.it> | Could you please mention a few examples of well designed protocols | that are worth studying? Thanks in advance. TCP and IPv4 are _very_ good protocols. (I don't know enough about IPv6 to rate it.) The telecommunications protocols used on the gigabit trunks and on the long-haul high-speed interconnects are amazing feats of science. Of the really, _really_ large protocol suites, I find ITU's Signalling System #7, the Digital Subscriber Signalling System, and the Integrated Digital Services Network protocols as well-designed as they are complex. The Telecom people have probably done some of the best work there is in protocol design. Just take a look at how they started out with very low speeds, like 300 bps, but over time managed to squeeze 56kbps through the feeble phone lines that were not upgraded, then got DSL to work across that same old copper wire. Impresses me, anyway. FTP and SMTP are well-designed and fairly small protocols, too. (Small does not mean quick-and-dirty: If you spend less than 3 months implementing a server or client for either of them, however, you're doing it wrong, as almost every implementation that is not regarded as a huge monstrosity are.) As an example of a very good way of separating abstractions and representation, ASN.1 and its encoding rules are worth a study, such as what is done with SNMP. Finally, if you don't know X.25, you don't know packet exchange, but it's _real_ old, now, and probably doesn't bring anything directly applicable to people who think in streams implemented on top of record-based protocols, except what _not_ to do with streams and when it really does make sense to use records. _Very_ few of the recent application-level Internet protocols are worth the paper they aren't published on. The sheer lack of design behind the protocol that is _actually_ at work in the MIME cruft is astonishing, but trying to track that braindamaged piece of shit from its inception to its current specification level through the numerous RFCs will tell you what a few over-sized egos who had no clue what they were doing can do to a conceptually _very_ simple thing: Wrap various objects in a textual representation. On the other hand, the Network Time Protocol was done by people who really cared and also who managed to keep the dolts out of the way. #:Erik -- Does anyone remember where I parked Air Force One? -- George W. Bush