[comp.protocols.tcp-ip] Info on implementation details...

lap@udel.EDU (Larry Pearlstein) (08/17/89)

Can anyone tell me:

At what levels (interrupt, daemon, system driver, application 
program) are each of the seven network layers generally 
implemented in a typical TCP/IP system.  I imagine that the 
answers might differ depending on whether the host was a 
microcomputer, mini, or mainframe?  Since most micros are 
single-tasking, would daemons be available?

Thanks for any info.

                                   Larry Pearlstein
                                   lap@huey.udel.edu

geoff@hinode.East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) (08/17/89)

In article <21853@louie.udel.EDU> lap@udel.EDU (Larry Pearlstein) writes:
>Can anyone tell me:
>
>At what levels (interrupt, daemon, system driver, application 
>program) are each of the seven network layers generally 
>implemented in a typical TCP/IP system. 

What seven levels? Not even ISO has seven levels. You need to read
Mike Padlipsky's "Elements of Networking Style" to get rid of
any such mystical numerological superstitions before embarking on
a study of real-world implementations. Then go read RFC817: Dave Clark
on "Modularity and efficiency in protocol implementation", and McKusick
on 4.3BSD.  One day John Romkey et al may get around to writing about
the PC/IP experience (John?). Comer's Xinu and TCP/IP books are
invaluable.

The bottom line: there are a LOT of different solutions that have been
tried.

Geoff Arnold,                              Internet: geoff@East.Sun.COM
PCDS Group, Sun Microsystems Inc.
---------------------------------------------------------------------------
My disclaimer is available via anonymous FTP as a compressed tar archive....

gors@well.UUCP (Gordon Stewart) (08/18/89)

In article <718@east.East.Sun.COM> geoff@East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) writes:
>
>What seven levels? Not even ISO has seven levels. You need to read
>Mike Padlipsky's "Elements of Networking Style" to get rid of

	Physical Layer
	Data Link Layer
	Network Layer
	Transport Layer
	Session Layer
	Application Layer
	Presentation Layer

I count seven. But then, I'm off caffeine this week, so maybe I miscounted! :-)

In answer to the original query, and your flippant reply, it is true that most
implementations provide a programmatic interface, which means Transport level
at best, with some Session material (connection-oriented sockets).

There is considerable effort to implement all seven (SEVEN, count 'em) layers
of ISO OSI on top of TCP/IP, despite the fact that they are not isomorphic
in the first few layers. DOD and others have a big investment in TCP/IP, but
there is a billion dollar push for OSI.

The physical and data-link layers are usually hardware/device - driver level;
The Network and Transport level services are provided by daemon processes
in most unix systems - session level services involve library function calls
that give access to lower levels.




-- 
				{apple, pacbell, hplabs, ucbvax}!well!gors
							gors@well.sf.ca.us
(Doolan) | (Meyer) | (Sierchio) | (Stewart)

lap@udel.EDU (Larry Pearlstein) (08/19/89)

> At what levels (interrupt, daemon, system driver, application 
> program) are each of the seven network layers generally 
> implemented in a typical TCP/IP system.  I imagine that the 

I have received a proper scolding for using the "seven layer model"
in the same sentence with "TCP/IP".  I actually was aware that TCP/IP
did not strictly adhere to the ISO model.  Still, it has been my impression
that a "typical" TCP/IP system might correspond roughly as follows:

	Physical & data link		Ethernet
	Network				IP
	Transport			TCP
	Session				RPC
	Presentation			XDR
	Application			user application

Is there some heresy in this conceptualization?

I didn't want to spell out the RPC, XDR, ... layers in the question
in the hopes of receiving the most general responses.

Thanks for all those who responded (either by mail or on the net).  If
I get a few more mail messages, I'll summarize to the net.

                                   Larry Pearlstein
                                   lap@huey.udel.edu

dcrocker@AHWAHNEE.STANFORD.EDU (Dave Crocker) (08/19/89)

Previous messages certainly have pointed out the dangers of asking about
TCP and the seven-layer model and protocol implementation.  They certainly
are correct that there is no straightforward, objective, single "truth"
in dealing with either.

However,

It is useful to try to view TCP in terms of the 7-layer model, simply
because the 7-layer model is the international lingua franca for protocol
discussions.

Your suggested association of Ethernet/IP/TCP/RPC/XDR/Appl is quite
reasonalbe, as a first-order approximation.  I used just that model for
a couple of years, until a few other beat me unmercifully.  The
modifications that I suggest are:

IP resides at the internet SUB-layer of the network layer.  X.25 has 3
sub-layers, of which the top resides at the SUB-network SUB-layer of
the network layer(layer 3).  (Yes, it is a mouthful.)  When using
ethernet, the subnetwork layer is null.

TCP has some session functionality in it, and therefore crosses into part
of layer 5.

Referring to XDR and RPC is correct, but mostly confusing, since they
are used by so few of the application protocols.  (I.e., none of the
official, standard applications.)

With respect to implementation choices -- and keeping in mind the obvious
religious furvor that this topic can generate:

Physical layer usually is in a device driver and link layer (or part of
it) often is.

Network and Transport usually are in the kernel, both for performance and
multiplexing reasons.  (They have multiple clients and many o/s's have trouble
getting applications to provide reasonable service from one user program to
a number of others.)

For the TCP world, the rest is in individual user-level programs.

For the OSI world, there seems to be a tendency to put layers 5-7 into
individual user-level programs, but I have run into at least a few attempts
to put session into the kernel.  Haven't heard of Presentation being in the
kernel, and my current level of understanding suggests that that would not
make sense, anyhow.

Dave

mckee@MITRE.MITRE.ORG (H. Craig McKee) (08/22/89)

>that a "typical" TCP/IP system might correspond roughly as follows:
>
>[deleted] 
>
>	Application			user application
>
>Is there some heresy in this conceptualization?

There is, depending on your religious fervor, a small heresy:
The Application layer does not contain applications such as an editor,
spreadsheet, or matrix inversion; rather, it contains communications
routines, such as file transfer and e-mail, that may be used by 
applications.  For example, on the Ultrix system here, when the system
goes down, the editor vi uses e-mail to tell me how to recover the file 
I was working on.

Regards - Craig