Review of Paper 7

From: Shobhit Raj Mathur (shobhit@cs.washington.edu)
Date: Tue Oct 12 2004 - 12:23:47 PDT

  • Next message: Danny Wyatt: "End-to-end Arguments in System Design"

    End-to-End Arguments in System design
    -------------------------------------

    This paper describes one of the most important principles of system design called 'end-to-end argument'. This principle basically
    says that a function should not be provided at the lower levels of a system unless it can be completely and correctly implemented at
    that level. It also says that, functions at a lower level of a system add to the cost of providing them at that level, and hence may
    be redundant. It allows for functions to be incompletely provided at a lower level as a performance optimization.

    A communication system has a boundary between the application and the underlying communication framework. Functions can either be
    implemented by the application or the communication subsystem or both. This paper applies the end-to-end argument to communication
    systems through a series of examples. The examples include file transfer applications, secure transmission, duplicate message
    suppression etc. The examples illustrate that low level function implementation adds to the cost and in most cases is redundant.

    The authors conclude by saying that the end-to-end argument must be applied taking the particular application into consideration.
    Among the many examples given, I will use the 'careful file transfer' application to demonstrate my conclusions as I feel that it
    best reflects the paper. Applying the end-to-end argument blindly to an application which requires reliable file transfer would
    result in very poor performance. The expected time to transmit the file grows exponentially with file length. To improve the network
    reliability, efforts at the lower levels have significant effect on the performance of the file transfer application. Their role
    cannot be ignored completely. It is not important to strive for negligible error rates at the lower level, as one can never be
    assured of that (faulty gateway example). But, some implementation at the lower levels is necessary. This implementation should be at
    the minimum possible cost and not affect other applications which use the same network.

    I feel that over the years the end-to-end argument has helped in shaping the internet as we see it today. The 'dumb
    network-intelligent hosts' approach which has guided the internet design is based on this argument. Error detection on a hop to hop
    basis; detecting (and retransmitting) a single corrupt packet across one hop is preferable to having to retransmit an entire file
    end-to-end. The end-to-end argument is now being applied to build more flexible operating systems by getting functions out of the
    low system levels.

    The paper has a unique style, as it bases its argument only on examples. There are no performance measures or any concrete numbers
    in favor of the argument. It is more of a discussion. The paper concludes by saying that end-to-end arguments can be applied to
    communication systems and other layered systems. Though this may seem insufficient, the paper motivates and describes one of the
    most widely applied rules of system design which has also shaped the internet. The end-to-end argument has made the internet more
    versatile and allows different applications with varied requirements to run over it successfully. This would not have been possible
    otherwise.


  • Next message: Danny Wyatt: "End-to-end Arguments in System Design"

    This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 12:23:47 PDT