By J. H. Saltzer, 1994.
Discussion ideas for Clark: RFC-817 The main reason for reading this paper is for insight into the way a systems specialist goes about thinking about a network as a system. This paper came out relatively early in the process of thinking through the performance issues involved in network software, so it is discursive and seems sometimes to dance around the point. Technically, its contribution is to explore the idea that even though the conception of the network is in terms of layers, the implementation need not be layered. And in this case, separating the conception from the implementation turns out to be the key to achieving the necessary performance. In the process of developing the assignment question, Carl Manning also came up with two runner-up questions. You may find either of them useful for recitation discussion: * Clark concludes that "a layer boundary has both a benefit and a penalty." [p.16] The benefit described is that the implementations on either side of the interface can be changed independently; the penalty is that a restricted interface leads to inefficiency. However, the examples he gives appear to imply there must be just one interface. * How well does this conclusion apply in general for all module interfaces (where modules need not be organized in layers)? * Is this conclusion necessarily true of all interfaces? (Consider compiled languages as an interface.) * (continuing from above) If we expose all the interfaces in a system, people can pick and choose the interfaces best suited to their components or applications, not just the interface of the top layers. The resulting systems may not be organized into clean layers. * Perhaps the "layer" metaphor isn't always an inappropriate metaphor for describing organizations of modules. Discuss the merits and problems of the following metaphors: - stepped canyon (still layers, but all layers exposed) - Tetris blocks (components build on others from several levels) - market networks (a variety of interfaces are available, some built using others, but no clear hierarchy; builders choose the interface best suited for their needs)
Saltzer@mit.edu