[e2e] Layering vs. modularization

James Kempf kempf at docomolabs-usa.com
Thu May 15 11:14:27 PDT 2008

Layering has problems in wireless, ad hoc networks. There is a whole 
collection of cross-layer design papers that show substantial improvements 
when layers are broken down. For example:

- Chen & Hsia, 2004: 1000% gain in e2e SNR using joint channel coding (PHY) 
and compression (APP) for video over wireless
- Chaing, 2005: 82% improvement in throughput per watt by joint TCP/PHY 
- Pursley, 2002: 50%-400% improvement in various delay, throughput and 
efficiency metrics relative to min-hop routing for cross-layer MAC/NET
- Bougard, et. al, 2004: 50-90% reduction in energy while meeting user 
requirements depending on channel conditions through joint APP/MAC/PHY 

The list is courtesy of Chris Ramming, former program director for the DARPA 
MARCONI project.

The layers in the traditional IP stack often don't match well with concerns 
relevant to ad hoc wireless networks. Energy use, for example, is a big 
concern in ad hoc (and any for that matter) wireless but optimization of 
energy use wasn't a big issue when the IP stack was finalized in the 80's. 
So it is not reasonable to expect that the IP stack would do a good job at 
addressing it.

The DARPA MARCONI project looked at using network utility maximization (NUM) 
to rearrange the layers (review paper on NUM by Chaing, Low, Calderbank, and 
Doyle, 2007) with promising results. NUM basically formulates a network 
architecture as the maximization of a utility function over a constraint 
set. The architecture, including protocol layers and intermediate network 
entities (middleboxes if you will), falls out as a solution to the 
optimization problem. My take on the NUM work, which originated through 
analyzing TCP, is that, although promising, it is still unclear a) how to 
take an unstructured problem and formulate the NUM problem, and b) once the 
NUM solution is available, how to map that into a network architeture and 
protocol design. These processes seem to me to need more work, especially in 
areas outside of traditional transport concerns such as security which 
Chaing, et. al. call "externalities". Until these are solved, I think it 
will be difficult to use NUM for general architectural synthesis (i.e. you 
need to be a optimal control theorist to do a good job using it). Solving 
them is going to take some collaborative work between control theorists such 
as Calderbank, et. al. and the networking types which hang out on this list.


----- Original Message ----- 
From: "John Day" <day at std.com>
To: "S. Keshav" <keshav at uwaterloo.ca>; <end2end-interest at postel.org>
Sent: Wednesday, May 14, 2008 8:12 PM
Subject: Re: [e2e] Layering vs. modularization

At 20:55 -0400 2008/05/14, S. Keshav wrote:
>This note addresses the recent discussion on layering as a form of
>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