[e2e] Layering vs. modularization

John Day day at std.com
Wed May 14 20:12:57 PDT 2008


At 20:55 -0400 2008/05/14, S. Keshav wrote:
>This note addresses the recent discussion on layering as a form of 
>modularization.
>
>Layering is one particular (but not very good) form of 
>modularization. Modularization, as in programming, allows separation 
>of concerns and clean interface design. Layering goes well beyond, 
>insisting on (a)  
>progressively higher levels of abstraction, i.e. an enforced 
>conceptual hierarchy, (b) a progressively larger topological scope 
>along this hierarchy, and (c) a single path through the set of 
>modules. None of the three is strictly necessary, and, for example 
>in the case of wireless networks, is broken.

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.  Although, I know the first two conditions hold for properly 
layered systems and I am not sure I understand the third.  Hmmm, 
guess I am missing something.  Although, I have to admit I never 
quite understood how wireless caused problems.

>Jon's message pointed to several previous designs, notably x-kernel, 
>that took a different cut. In recent work, (blatant
>self-promotion alert) we tried to formalize these approaches in our 
>Sigcomm 2007 paper called "An Axiomatic Basis for Communication."
>
>Interestingly, our approach only addressed the data plane. When we 
>move to the control plane, as Jon hinted, things get very hard very 
>fast.  Essentially, the problem is that of race conditions: the same 
>state variable can be touched by different entities in different 
>ways (think of routing updates), and so it becomes hard to tell what 
>the data plane is going to actually do. In fact, given a 
>sufficiently large network, some chunk of the network is always 
>going to be in an inconsistent state. So, even 
>eventual-always-convergence becomes hard to achieve or prove. 
>Nevertheless, this line of attack does give some insights into 
>alternatives to layer-ism.

The solution to that then is to not let the network get too large! 
Simple.  ;-)

Looking at your paper it seems to tend toward the beads-on-a-string 
model that the phone companies have always favored. Those never had 
very good scaling properties.  It is not clear how differences of 
scope are accommodated.  But then differences of scope sort of 
requires some sort of layer, doesn't it?  So how does this 
architecture facilitate scaling?

Still confused,  ;-)

John Day


More information about the end2end-interest mailing list