From: Michael J Cafarella (mjc@cs.washington.edu)
Date: Tue Oct 12 2004 - 16:08:33 PDT
End-to-End Arguments in System Design
By Saltzer, Reed, and Clark
Review by Michael Cafarella
CSE561
October 12, 2004
This paper discusses a rule-of-thumb for system design called the
"end-to-end" rule. The end-to-end rule states that many desirable system
functions that use a network channel can only be properly implemented with
the assistance of application software at either end. Since the application
is always going to be involved, it's usually not a good idea to include such
features in low-level network software. The low level implementations
are either insufficient or redundant.
The authors do their best to discuss the idea, and how it might be applied
in many different design scenarios. These scenarios form the bulk of the
paper. It's interesting to see a wide set of systems subjected to the
same kind of discussion, but this kind of analysis hits the wall pretty
quickly. Since each discussion is pretty brief, and there's no quantitative data,
the examples all feel the same fairly quickly.
It might have been more instructive to find areas in which the end-to-end
principle *doesn't* apply, or how it might be misapplied. Without examples
like these, it's hard to say whether the end-to-end argument has actual bite to
it.
It's a shame the paper doesn't attack the problem from more angles, because
I think such a discussion would be very successful and very doable. There is
no shortage of networks, CPUs, and software systems that failed to gain
users because they provided inappropriate levels of functionality. Examples
of these failures would have been fun and helpful.
Another interesting question is how to design lower-levels, given that they
should not try to implement application-specific questions. Why does TCP
make it into the protocol stack? The authors are great at saying why things
should be in the application-level, but that's not helpful without saying
why things should be in lower-levels, too. (Unless, perhaps, only performance-
enhancing tricks should go into lower levels.)
Overall, the authors present an interesting idea, but don't ventilate
it as much as they could. Since a strictly "design argument" paper is
already something of a fishy proposition, it's hard to buy what they're
saying.
This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 16:08:33 PDT