6.033 - Computer System Engineering Handout 8 - March 3, 1998

Assignment 5: March 9 through March 11

For Lecture, Monday, March 9

Last lecture on networking. No reading assignment for today.

For Recitation, Tuesday, March 10

Your one-page reading report should address the following question regarding the end-to-end argument (Saltzer et al., "End-To-End Arguments in System Design", reading #18).

A file transfer done using the EFTP protocol described in the Ethernet paper will encounter two error-checking mechanisms. The first is a CRC calculated on the data for purposes of catching errors in the Ether (i.e., errors that occur in transit), and is performed in the Ethernet hardware. The second is another checksum provided as a backup to the (hardware) CRC, as well as for catching errors that occur at the host or destination (but still within the network layer). This check is done as part of the EFTP protocol. Note that the second checksum does not have to be computed, though some value must always be sent.

Discuss the use of these error-checking mechanisms on the basis of the End-to-End argument. Consider the usefulness of each individual checksum as well as the combination of the two. Do you need both checksums?

For Lecture, Wednesday, March 11

This lecture starts a new topic in 6.033: naming. Naming is typically treated superficially in most systems subjects, although it is one of the most fundamental issues in systems. Many properties in computer systems and languages can be phrased as naming questions. We will see how naming is done in virtual memory systems, file systems, the Domain Name System (the Internet's name system), and the WWW. We will also see that scoping and inheritance in programming languages are naming issues. There is no assigned reading for today's lecture.

System aphorism of the week

A system takes longer to debug than you expect, even when you take this fact into account.

Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu