Subject: Re: corba or sockets?
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 1 Nov 2000 04:03:16 GMT
Newsgroups: comp.lang.lisp
Message-ID: <8to4m4$ai0np$1@fido.engr.sgi.com>
Erik Naggum  <erik@naggum.net> wrote:
+---------------
| * Wade Humeniuk <humeniuw@cadvision.com>
| | The whole conceptual framework of protocols I think is best
| | described by the OSI reference model.
...
|   Please note that the full name is the _ISO_ Reference Model for Open
|   Systems Interconnection.  It's their model.  It is _not_ a model
|   that explains or can describe all Open Systems Interconnection.
| 
|   See The Elements of Networking Style: And Other Essays &
|   Animadversions on the Art of Intercomputer Networking by
|   M. A. Padlipsky for a full coverage of this.  ISBN 0-595-08879-1.
+---------------

Damn! You beat me to it!! ;-}  ;-}

Padlipsky's book is classic ammunition for refuting ignorant/naive
ISORMOSI advocates (or as he says, ISORM, pronouonced "eye sore...M").

+---------------
| | TCP and IPv4 only live within the context of the data link and
| | physical layer protocols that carry them.
| 
|   This is false.
+---------------

Indeed. As Padlipsky says:

	If you know what you're doing, three levels is
	enough; if you don't, even seventeen won't help.

Granted, the ARPANET (now IETF) Reference Model *did* eventually grow
in practice from three to four levels, since it was recognized that it
was useful to have a common "Protocols/Services" layer separate from
Applications. So now the Internet protocol architecture's four levels
are (per "Figure 1" of RFC 791):

	Applications
	Protocols/Services
	Internetwork Protocol (incl. ICMP)
	Local Network

ISO needlessly complicated thing by breaking up Applications into
Applications & Presentation (as if presentation could even be separated
from the application context -- hah!), breaking Protocols into Session
and Transport, and breaking Local Net into Data Link & Physical. But the
802.3 & FDDI Standards Committees didn't stop *there* -- they further
subdivided the Physical into MAC, PHY, and PMD (stealing some of Data
Link for the MAC layer), and now we have even *more* sub-layers, such
as "AUI" and "MII".

+---------------
| | All the issues of reliability, delivery and such need to be looked
| | at as protocol stacks.
| 
|   If you use the ISORMOSI on the Internet, you will end up with very,
|   very weird attitudes towards a very fine technology...
+---------------

As Dave Clark's classic paper "Modularity & Efficiency" addresses.
Or as Padlipsky puts it:

	Layering makes a good servant but a bad master.

+---------------
| | For those that want to learn about protocols break open the OSI spec
| | on the reference model.
| 
|   I would recommend against ISORMOSI until you understand whence it
|   came, that is: the history of protocol design preceding it, both
|   within the CCITT/ITU and the ISO camps and without either.
+---------------

Well, as I heard the story, there were seven strong personalities who
each wanted their own sub-committee, so -- guess what? -- they ended up
with seven layers! (Surprise, surprise.)

+---------------
|   TCP and IP do not live quietly down in the basement, but actually
|   extend their services and _presence_ all the way up to the
|   "application layer" (and you _really_ want this, by the way), there
|   is no way you can avoid knowing about "the underworld" relative to
|   your actual interests.
+---------------

In the very early days, some of you may recall, the protocol implementations
*did* live in user mode, but that later became unfashionable for "security"
and (mistaken) "efficiency" reasons. However, this is now getting a revival
with today's higher-speed network links. See, for example:

        <URL:http://www.cl.cam.ac.uk/~iap10/gige.ps>
        "Arsenic: A User-Accessible Gigabit Ethernet Interface"
	Ian Pratt (University of Cambridge Computer Laboratory).

"Arsenic" is a way of moving the IP/UDP/TCP functions back up into
user-mode, *without* sacrificing inter-user security, so that applications
can access the data directly, where the network interface dropped it,
with no copying.

We do something very similar with our MPI-over-"O/S Bypass"-over-STP-
over-GSN. User programs on one system can exchange MPI messages with
user programs on other systems at a very high rate *without* doing
system calls or causing any interrupts!! Yes, applications (safely,
in a protected way) talking *directly* to the hardware!! To paraphrase
Dogbert, "I wave my paw, Bah! You layer demons, be gone!"

MPI-over-Myrinet or -Giganet does something similar as well.

[Yes, some people (such as SGI) implemented (and shipped) "zero-copy DMA"
protocol stacks before, but they usually depended on the network MTU being
a multiple of the host operating system's page size... which is becoming a
problem on systems which have shifted to larger page sizes for efficiency.]

We're going to *have* to embrace this, guys! 10-gigabit/sec Ethernet is right
around the corner (hardware demos are already being shown), and we're going
to *need* some clever "layer breaking" to provide full 10GbE performance.

+---------------
|   The belief in cleanly separated layers is almost a religion.  It has
|   no basis in reality or experience, but there is nothing that can
|   make someone who believes in it stop believing in it.
+---------------

Again, people like Dave Clark & Mike Padlipsky & even Van Jacobsen (his
papers on the "Witless" interface, as well as TCP "header prediction")
blew this religion away years ago, but its adherents never got the message.
(They never do seem to. *sigh*)


-Rob

-----
Rob Warnock, 31-2-510		rpw3@sgi.com
Network Engineering		http://reality.sgi.com/rpw3/
Silicon Graphics, Inc.		Phone: 650-933-1673
1600 Amphitheatre Pkwy.		PP-ASEL-IA
Mountain View, CA  94043