| | |
Summary: SALTZER ET AL. End-to-End Arguments in System Design 1
END-TO-END ARGUMENTS IN SYSTEM DESIGN
J.H. Saltzer, D.P. Reed and D.D. Clark*
M.I.T. Laboratory for Computer Science
This paper presents a design principle that helps guide placement of functions among the
modules of a distributed computer system. The principle, called the end-to-end argument,
suggests that functions placed at low levels of a system may be redundant or of little
value when compared with the cost of providing them at that low level. Examples
discussed in the paper include bit error recovery, security using encryption, duplicate
message suppression, recovery from system crashes, and delivery acknowledgement. Low
level mechanisms to support these functions are justified only as performance
enhancements.
Introduction
Choosing the proper boundaries between functions is perhaps the primary activity of the
computer system designer. Design principles that provide guidance in this choice of function
placement are among the most important tools of a system designer. This paper discusses one
class of function placement argument that has been used for many years with neither explicit
recognition nor much conviction. However, the emergence of the data communication network as
a computer system component has sharpened this line of function placement argument by making
more apparent the situations in which and reasons why it applies. This paper articulates the
|