Accessibility

6.033--Computer System Engineering

Suggestions for classroom discussion


Topic: Clark, David D. Modularity and efficiency in protocol implementation. Internet Engineering Task Force RFC 817.

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)

Comments and suggestions: Saltzer@mit.edu