Subject: Re: corba or sockets?
From: Erik Naggum <>
Date: 30 Oct 2000 22:41:40 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* Paolo Amoroso <>
| 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.

  Does anyone remember where I parked Air Force One?
                                   -- George W. Bush