Preparation for E2E Recitation
Read End-to-end Arguments in System Design. This paper presents an argument that system designers can use when deciding where to place certain functionality in their system. The first two sections of the paper give many examples of instances where the end-to-end argument applies; later sections discuss some finer points.
This paper was published in 1981, before the main deployment of TCP/IP. As such, some of the paper is surprising. Consider this quote from page 5 of the paper: "Although [a packet acknowledgment] may be useful within the network as a form of congestion control, it was never found to be very helpful to applications using the ARPANET. The reason is that knowing for sure that the message was delivered to the target host is not very important."
This is really not true today! In fact, it’s difficult to imagine this motivation; so many applications run over TCP. However, not all applications run over TCP. TCP and IP were intentionally split into two layers so that applications could use IP directly. And now, there is also UDP (a protocol for unreliable data transport); although many applications use TCP, a non-negligible portion do use UDP.
Dave Reed (one of the authors of the paper) argued that the TCP/IP split should happen; an original proposal was to provide only a TCP-like interface. So the E2E argument influenced the design of TCP as being a layer above IP.
As you read, think about the following:
- Of all of the networking functions you've learned about, what functions belong at what layers?
- In what other areas of 6.033 have you seen examples of the end-to-end argument (even though we did not call it that at the time)?
- How might one use the end-to-end argument when designing a system?
- What role does trust play in the end-to-end argument?
Question for Recitation
Before you come to this recitation, you'll turn in a brief answer to the following questions (really—we don't need more than a sentence or so for each question). Your TA will be in touch about exactly how to turn that in.
Your answers to these questions should be in your own words, not direct quotations from the paper.
- What is the end-to-end argument (what does it state)?
- How is the end-to-end argument used in practice? Give at least one example.
- Do you agree with the end-to-end argument? Why or why not?