cvs commit: src/sys/contrib/pf/net if_pflog.c if_pflog.h if_pfsync.c if_pfsync.h pf.c pf_ioctl.c pf_norm.c pf_osfp.c pf_table.c pfvar.h src/sys/contrib/pf/netinet in4_cksum.c

Poul-Henning Kamp phk at
Fri Feb 27 11:26:58 PST 2004

In message <20040227191602.2A2045D07 at>, "Kevin Oberman" writes:

>The very existence of ICMP is a layering violation!
>TCP/IP pre-dates the OSI reference model and really doesn't fit it. You
>can't build a stack that runs reasonably without "layering violations".
>These are NOT bugs!

More to the point, when people tried to design the protocols to end
all data transmission according to the OSI protocol reference model
banning all layering violations, they hit some very recognizable
problems which they couldn't solve or couldn't solve sanely.

My personal favourite is the network management (CMIP etc) which runs
at layer 7 and therefore reliably informs you of your network being
in trouble by ceasing to report anything at all.

In the two "The science of discworld" books, the authors introduce
the concept of "lies to children" to explain how you have to
progressively add detail if you want to teach children and students
things:  You simply cannot give the right explanation until the
child or student has accumulated enough knowledge to be able to
understand what you're talking about in the first place.

You start out with simple mechanics, then you add acceleration an
forces, then you drop Newton in there, then Keppler and only then
can you pull Einstein out:  You have to have more than one step on
your ladder.

The OSI reference model is such a "lies to children" and it is not
how you get data communication to work in practice.

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the cvs-all mailing list