The paper, End-to-end arguments in system design by J.H. Saltzer, D.P. Reed and D.D. Clark [1] presents a design principle called end-to-end argument that discourages the placement of functions in the lower level of the system unless they provide performance enhancements. It suggest instead that these functions be move upward in the layered system, closer to the application or the End where the requirements for these functions are more defined. The only justification of creating a lower level function is to provide performance optimization but only to certain degree. However, the end-to-end argument is not absolute but rather a guideline and one must use some care to identify the Ends to take the right approach.
As mentioned in [2], the end-to-end principle is one of the key architectural guidelines of the Internet. Because of the bias of the principle in the movement of function "up" from the lower level or the network and "out" to the edge node or applications, the Internet network have remained rather simple and general and because of this, it is able to support many different applications like e-mail, World Wide Web (WWW), web browsers, multi-player games etc. The application of the end to end arguments makes the network transparent, packets go in and they come out and that is all that happens in the network.
The biggest advantage of use of the end to end arguments as a design principle is the simplicity that it produces at the lower levels of a system. Building simple rather than complex lower layers increases the potential uses of these layers which may be unknown or unpredictable at design time. Because of this design, the Internet was able to grow. By making the host responsible for reliability, the network's role was made simple and it became possible to join the different networks that existed at that time.
However the principle's biggest advantage might well be its source of fault. Aside from the additional work that is left out for the higher layer in implementing functions, placing the functions in the slower upper layers has potential performance cost.
References:
[1] J. H. Saltzer, D.P. Reed and D. D. Clark, "End-to-end arguments in system design," ACM Transactions in Computer Systems, vol. 2, no. 4, pp. 277-288, November 1984.
[2] M. S. Blumenthal and D. D. Clark, "Rethinking the design of the Internet: The end to end arguments vs. the brave new world," ACM Transactions on Internet Technology, vol. 1, no. 1, pp. 70-109, August 2001.
No comments:
Post a Comment