ietf
[Top] [All Lists]

layering and separation of function

2003-12-18 12:58:51
On Thu, 18 Dec 2003 13:07:24 -0500
Keith Moore <moore(_at_)cs(_dot_)utk(_dot_)edu> wrote:

I'm a bit surprised at the frequency at which people who claim to be
networking protocol engineers fail to appreciate the benefits of
clean separation-of-function and layering.

Hopefully the drawbacks are appreciated also.  Quoting Rich Seifert,
"Layering makes a good servant, but a poor master.  Use layering to
organize the way you THINK about networks, but don't let it restrict
how you DESIGN networks."  If I recall correctly, David Clark used to
say something very similiar to this in a protocol workshop class at
Interop awhile back.

there's clearly a limit to how much layering is desirable, and it's
often desirable to have a way to bypass layering in corner cases.
I'm convinced that IPv4 worked better because it _didn't_ separate 
location and identity, than it would have otherwise, because the cost
of the extra mapping layer would have been prohibitive for most of
IPv4's history (and may still be prohibitive, but we're getting
closer).

but failure to have clean interfaces and separation of function 

- makes the whole system more complex and less reliable (because 
components can't rely on other components functioning as advertised -
e.g. NATs try to second-guess apps and apps try to second-guess NATs)
and 

- makes the system less adaptable to meet unanticipated needs (because
assumptions about how things work are no longer isolated in certain
parts of the system but they permeate the entire system - meaning that
the entire system has to evolve rather than evolving it one piece at a
time)