From: Chandrika Jayant (cjayant@cs.washington.edu)
Date: Tue Oct 12 2004 - 21:48:05 PDT
"End-To-End Arguments in System Design"
Written by Saltzer, Reed, and Clark
Reviewed by Chandrika Jayant
This paper presents the "end-to-end argument" in system
design, which helps guide function placement among a distributed
computer system's modules. It argues for placing main responsibility on
the end hosts rather than the network itself, citing many advantages.
The authors provide reasons for moving functions upward in the layered
system closer to the applications which use them, as they will have
specific and changing needs and the network should be more generalized
for flexibility.
The paper gives some helpful general pros/ cons for relying
on the communication subsystem, the client, a joint venture, or on a
combination. The examples are very informative (i.e. careful file
transfer, presented in the most detail) explaining possible threats and
solutions. Sometimes network checking helps reduce problems overall but
the authors claim there is still a necessity for end-to-end reliability
checks. Performance-wise, lower level functions can benefit, but they
don't need perfect reliability- any help is good. The end to end
argument is application dependent and the authors speak of juggling
between relying on the hosts versus relying on the network. They raise
some very interesting questions but seem to stop there and could have
gone a few steps further in suggesting lower level functionality
(specific times it would be useful to implement).
There is not much historical background provided in this
paper either. Yes, there is in discussion of the individual end-to-end
arguments, but not in why the community has really stuck with the
communication subsystem way in the past. I would have like more insight
on the motivation and reasoning for the paper. Why hasn't the end-to-end
argument been "used with conviction" before? The authors seem too
satisfied placing so much responsibility on hosts. And they treat the
performance benefits using the lower levels as a perk rather than a
necessity!
Though written 20 years ago, this paper is still relevant
today because it shows the weakness that can develop when accepting one
mode of use over the other- the authors have little faith in hardware
and instead of considering improving it they chose to make the
end-to-end protocol seem like the only solution. Hardware is so much
better today but we still face these issues of where to make things
general and where to make them specific. These days it seems even more
application driven than before. The paper also focuses on the very
important general issues of flexibility and responsibility trade-off,
which are always vital to system and software designers.
In terms of future work, the authors believed that awareness of
end-to-end argument would help push arguments for "proper layering"
protocols.
This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 21:48:25 PDT