Wikipedia defines computer science as the systematic study of algorithmic processes that describe and transform information. But for me, it is simply as F-U-N!
CSI: Computer Science & I
Bytes and Pieces of Me
Yet another blog of mine - this time it logs not just errors but also learnings as I master the world of computer science. And yes, this is getting so serious.
Does The End Justify The Means?
A Review on End-to-End Arguments in System Design
End-to-End Arguments in System Design [1], written by Jerome Saltzer, David Reed and David Clark, follows the Occam’s razor principle wherein the simplest among several acceptable explanations for a phenomenon is the preferable. [2] After 20 years since it has been published, does the end-to-end argument hold as the correct answer? The following post summarizes the end-to-end principle, the acceptance and the criticism the said principle is receiving today and the relevance to the modern context.
Summary
The key idea is that
the function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system.
[1] The end-to-end principle argues against the low-level function implementation. The author considers the latter propagates performance costs and redundancies to higher layers. Following Occam’s razor principle, it avoids more complicated operations that can already be handled with simpler logic at the top layer.
The redundancy in lower level has been shown in the careful file transfer example of the paper. The authors argues hat
those applications that do not need the function will pay for it anyway and the low-level subsystem may not have as much information as the higher levels, so it cannot do the job as efficiently.
[1] Yet, the paper still hands the decision to the system designer regaring the performance tradeoff.
The paper has also shown the application of end-to-end argument in communication aspects like guarantee of delivery, security on data transmission and suppression of duplicate messages. It also guides some rational principles for organizing layered architecture.
The Internet
The end-to-end principle gives way to the architecture of a ‘dumb’ network and ’smart’ applications.
This allowed Internet networks to demand less of the switching elements within the network, allowing network switches to process a far higher packet rate within a fixed amount of memory and processing capacity, and allowing the network itself to realize efficiency gains through making the entire transmission capacity available to the applications.
[3]. Thus, as we all know now, the Internet Protocol Suite. End-to-end application repairs any damage caused by the lower level protocols. The reliability and quality management has been passed their functions up to the end systems. However, from today’s Internet architecture, the application of end-to-end arguments the paper has presented like data integrity, per packet encryption and transaction management are viewed as transport layer and network layer functions as opposed to application layer’s [4]
Simple (or dumb) networks enjoy the benefits of end-to-end principle. They are more scalable than complicated networks. This is because simple network requires shorter design turnaround time and effort to expand. This is an important contributor to the recent success of peer-to-peer networking like Gnutella and Napster. [5]
The End of End-to-End
In [5], Blumental and Clark, one of the authors the main paper in discussion, Internet was originally assumed that the network is actually nodes that trust each other and enforce a policy of no commercial use which is not the case at the present. Architectural desirability of defining services in the network is a trend opposing to end-to-end principle which is also described by [6]. The Internet’s design goal is to be a network of heterogeneous networks.
Furthermore, [3] presented middleware opposing the end-to-end principle. Network Address Translators, firewalls, web caches, DNS interceptors, TCP performance shapers and load balancers are few examples of middlewares. They become important components of network design these days.
Middleware often breaks the semantics of the internet protocol. It is also in direct contravention to the end-to-end architecture of the Internet. Middleware breaks the operation of certain applications. Middleware alters packets on the fly, or, as with a transparent cache, intercepts traffic, interprets the upper level service request associated with the traffic and generates responses by acting as a proxy for the intended recipient.
One of the obvious oppositions in the end-to-end principle is the rise of the less sophisticated users [6] or those who are using lightweight devices such as PDAs, mobile phones and other appliances with computer embedded on it.
It is much more appealing to some to take advantage of software that is installed on a server somewhere else on the network.
End-to-End Won’t End Somehow
Although, there are endless debates against end-to-end for more than 20 years, the principle still influences at the present. In [4], Mobile IPv6 include security mechanisms for routing optimization thats allow end-to-end routing between the mobile end node and the correspondent node that it actually removes the need to route through the global routing proxy at the home agent.
Conclusion
Selecting what is the end in the end-to-end principle is relevant to the critics. The functions which were thought two decades ago as application layers functions are considered as functions of the lower layer. However, this should not be the main concern of the system designers. End-to-end principle served as the inspiration model of the first developments of Internet and it continues to be part in system design considerations nowadays. End-to-end principle gives the system designers the free will in weighing the pros and cons of moving functions up or down to a layer. As we all know, everything is changing – including the Internet.
References
[1] J.H. Saltzer, D.P. Reed and D.D. Clark. “End-to-End Arguments in System Design.” ACM Transactions on Computer Systems, Vol. 2, No. 4, pp. 277-288, November 1984
[2] http://en.wikipedia.org/wiki/Occam’s_Razor
[3] Geoff Huston, “The End of End-to-End”, http://www.circleid.com/posts/the_end_of_end_to_end/
[4] http://www.faqs.org/rfcs/rfc3724.html
[5] Tim Moors, "A critical review of End-to-end arguments in system design", http://www.seas.upenn.edu/~farooq/tcom512/a-critical-review-of_e2e.pdf
[6] Blumenthal, M., Clark, D.D., “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, August 2001, pp 70-109.
[7] http://ironick.typepad.com/ironick/2004/04/why_the_end_to_.html
Possibly Related Posts:
- Look Up! It’s a Chord!
- Chord-ially Inviting
- Relationship Between ASes: It’s Complicated
- Internalizing Interdomain Internet Routing
- Fly, DARPA, Fly!
Leave a Reply
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
- M. Fowle