Friday, August 29, 2008

End-to-end Arguments in System Design

This paper argues that functions placed at lower level of a system may be redundant and less effective compared to functions placed at the application level. It uses several examples to show that lower level implementations may only offer a performance advantage over higher level functions. The paper focuses on communication subsystem, but can be applied to other parts of a distributed system design.

This is a seminal paper describing a design principle that is found everywhere even in modern network design. It is an excellent choice to start off the term. Examples used in the paper such as error recovery, secure transmission, etc. are still very relevant today, and are still implemented following end-to-end principle.

However, I do not completely agree with all aspects of the paper. This paper was written in 1981, when the number of applications running on top of the network is relatively small. In addition to possible performance advantages, implementing features in-network or at lower level has the benefit of benefiting all application at once and ease of deployment. Network switches are getting more and more advanced to perform traffic shaping, network filtering, firewall functions that may be implemented on end hosts better, but would be a nightmare to maintain and deploy.

Future research will continue to revolve around where the ends are in a system and moving functionality to and away from end points. Because of constraints such as mobility and power, some features are becoming prohibitively expensive to perform on the end hosts.

Welcome to Network Bits

Welcome to Network Bits. My name is David Zhu. I am a graduate student attending University of California, Berkeley. I will use this blog to write down and reflect on any thoughts on the readings in CS 268 class taught by Prof. Randy Katz in Fall 2008.