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:

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.

As always, there are multiple correct answers for each of these questions.