[e2e] Layering vs. modularization

David P. Reed dpreed at reed.com
Thu May 15 15:20:48 PDT 2008


Two challenges to proponents of the thesis that "layering can be done 
right".

a) What specific problem in network systems design does a particular 
layering solve?  Can you quantify the adequacy of solution (without 
resorting to use of the concept of layering in a circular manner).  And 
is there an alternative solution to that problem?  I'd suggest that if 
you can't state the problem unambiguously and in a way that admits of 
alternative approaches, then layering always "works".  It's like saying 
that evolution creates the optimum result.  It's either vacuous to say 
that, or worse, it's eugenicism.  As a matter of rhetoric, saying that 
"layering" works when "done right" is unfalsifiable.   It's a tautology 
because it's essentially just uninterpreted symbols on the page.

  (I would be presumptive to state the problem, since I would claim that 
it's not very useful.  But I'd be convinced, for example, if someone 
picked a problem like: "allowing the Internet to evolve with minimum 
disruption due to new applications demanded by users".   An alternative 
approach would be to state that all implementations of network protocols 
should be written in a common language with an open source license 
agreement and a community process.   One could then test the hypothesis 
that layering helps by various evaluative metrics).

b) Explain protocol encapsulation  (sending IPv6 datagrams within UDP 
VPN packets over a TCP based overlay network implemented in userspace 
stacks on machines that offload part of the VPN implementation to a peer 
within a bluetooth subnet) as a form of layering?   It seems to me that 
encapsulation is akin to allowing recursion in one's language.   
Languages that allow recursion are unlike FORTRAN 77, which is "layered".

c) where does "security" go in a functional layering?   I would argue - 
everywhere, and nowhere.  Information leaks at all levels of a layered 
system.   Denial of service is possible at all layers.

It seems to me that "layering" is a collective hallucination.

Joe Touch wrote:
>
>
> John Day wrote:
> ...
>> Gee, the only layering I have ever seen that had problems were the 
>> ones done badly, such as with the Internet and OSI.  In my 
>> experience, if you do it right, it actually helps rather than gets in 
>> the way. 
>
> That's been my perspective as well; most of the issues I've seen with 
> layering problems - including "layer violation" really turned out to 
> be gaps in the layering structure that were patched over with 
> violations rather than fixed correctly.
>
> We've seen a few key issues with layering (insert self promotion 
> warning here), and our observations suggest that it may be a 
> fundamental construct, rather than an artifact to be "erased" in a 
> clean-slate approach:
>
> 1. layering often focuses on the layers and ignores the inter-layer 
> glue; Yu-Shun Wang's thesis (a recent PhD student of mine) focused on 
> this issue, and found numerous ways in which the interlayer glue was 
> similar at nearly every layer boundary, and could be addressed by an 
> additional, meaningful generic mechanism
>
> 2. layering disagreements sometimes revolve around what each layer 
> means, as unique from other layers; our NSF FIND "RNA" project (to 
> appear at ICCCN, Future Internet track) is exploring the ways in which 
> layers are internally similar, but their behavior is governed by their 
> relative position (what's above and below) and their scope 
> (distance/time extent). This turns the "one layer to bind them all" 
> (ala XTP) into a single 'stem cell' layer that acts like different, 
> well-known OSI layers when stacked. The idea is that the environment 
> of a layer defines the layer, and that layering is semantically useful 
> in composing services on each other.
>
> Joe
>


More information about the end2end-interest mailing list