End-to-end arguments

From: Michael J Cafarella (mjc@cs.washington.edu)
Date: Tue Oct 12 2004 - 16:08:33 PDT

  • Next message: Ethan Phelps-Goodman: "end to end"

    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.


  • Next message: Ethan Phelps-Goodman: "end to end"

    This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 16:08:33 PDT