From: Lillie Kittredge (kittredl@u.washington.edu)
Date: Tue Oct 12 2004 - 21:44:56 PDT
End to end
This paper codifies the "end-to-end argument" design principle; as they
hint at the end, it was a guiding principle of the seperation of the
layers of the protocol stack.
The end-to-end principle basically codifies that we must think carefully
about what level to implement what functionality on. For a given
function, does it make sense for the lower layer to implement it? Is it
capable of implementing it? Will all the layers above it want that
functionality implemented in the low level? A current example of this
principle at work is how IP does not guarantee reliable packet delivery.
Though TCP wants reliability, other layers over IP will not; though from
TCP's point of view it might be nice if IP provided it, the different
layers are hindered by this "feature" (Windows users may recognize this
feeling). In other situations such as the careful file transfer the
authors describe, the lower layer is actually not capable of providing all
the functionality needed. In the example of the careful file transfer,
the higher-level application still needed to provide a checksum: even
though the lower layer provided support, the application still needed to
be involved in the guarantee.
An analogy could be made with language - sure, certain functions would be
made easier if the alphabet contained more special characters that
represented whole words, but with that extra functionality comes a lot
more overhead - now we have to store all these extra characters and make
bigger keyboards and so on. By letting a higher-level system like words
deal with conveying meaning, the lower level system of alphabet can be
simpler and more versatile.
The historical relevance of this paper is (I'm conjecturing) that it
provided some perspective on the rules that everybody was following
anyway, and codified them in a way that made them easier to follow. I
suspect that their hope that "our discussion will help to add substance to
arguments about the 'proper' layering" came true.
This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 21:44:57 PDT