Review of End-To-End Arguments in System Design

From: ssaponas (ssaponas@u.washington.edu)
Date: Wed Oct 13 2004 - 07:36:59 PDT

  • Next message: Scott Schremmer: "Review of Saltzer et al."

    Review by T. Scott Saponas

     

    "End-To-End Arguments in System Design" describes the principle they call 'the end-to-end argument'. Saltzer, Reed, and Clark argue functions such as reliability and duplicate packet protection are redundant and of little value when implemented below the application layer in the communication network. The authors' argument is convincing as it pertains to pushing such functionality in to the network (i.e. into gateways). They describe a scenario at MIT where a network was implemented with 'reliability' in the network by verifying data integrity between the gateways on each hop. The downfalls of this approach being it slowed the gateways from the unnecessary burden of checking and computing error codes as well as ignoring the possibility for data corruption inside the gateways.

    However, I found the paper's generalization of the argument that this higher level functionality should not be below the application layer at all, even when implemented only at the end hosts not convincing. Some of this difference in opinion may be rooted in the fact that computation and memory such as needed for error detecting codes was relatively expensive when this paper was written but is relatively cheap now. For example, it is argued that striving "for a negligible error rate at any point below the application level" is not important. This is justified by the fact that some applications, such as a file transfer application, have to do a data integrity check after all the data is transferred anyway so putting reliability below that application is just a waste. It is admitted that this will make it so that as file lengths increase the likelihood of a need to retransmit will go up exponentially. I would argue the computation and memory required to implement reliability at the end hosts but below the application layer is so small that for many many applications, including the described file transfer application, one pays little cost but gets a huge benefit in not having to perform things like whole retrys of a file copy at the application layer. This can be illustrated by a file copy application performing nightly backups. Nightly backups of a system might take many hours, but is scheduled in the middle of the night so as not to disrupt work. However, the backup had to be retried several times because of a few simple bit flips the backup might spill over into the work day.

    Overall, I found the paper's end-to-end argument to be relevant today's discussion about network layering and the debate about putting intelligence into the network. However, I don't think their argument generalizes to all higher level functionality not being implemented anywhere below the application layer.


  • Next message: Scott Schremmer: "Review of Saltzer et al."

    This archive was generated by hypermail 2.1.6 : Wed Oct 13 2004 - 07:37:06 PDT