Last lecture on networking. Read Saltzer's "Case study: synchronized file transfer; failure retry", reading #20.
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 modem (modulator-demodulator) is a device used by many computers to communicate over a telephone line. In general, the telephone lines do not provide noise-free connections, so there is always a risk that some data sent will be corrupted. To avoid this problem, modem protocol designers came up with a protocol which provides error correction in the data stream. New modems guarantee almost 100% error-free communication.Today, there are two popular file-transfer protocols for use with error-correcting modems: Zmodem and Ymodem-g. Zmodem can be used with any modem, and provides a rather reliable error-detection mechanism (using a checksum of each block it sends). If Zmodem detects an error in a block, it requests that that block be sent again.
Ymodem-g uses a minimal error-detection scheme. If a block arrives and appears corrupt, the file transfer is aborted. Needless to say, this protocol is only used with error-correcting modems.
Argue for one of the above protocols, using ideas from the reading as well as from experience you may have had.
For your entertainment we also included reading #19 (D. Cohen, "On holy wars and a plea for peace"). It is not necessary to understand this article in full detail. You only need to understand the basic issues, and what big-endian and little-endian are.
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. To get prepared read Saltzer Chapter 5.A, reading #21.
System aphorism of the week
A system takes longer to debug
than you expect, even when you take this fact into account.
6.033 Handout 9, issued 3/5/96