Student name: YOUR-NAME-HERE
LOGIN: YOUR-CS-DEPT-LOGIN-HERE
E-mail: YOUR-EMAIL-HERE

Tufts CS 117 (Fall 2024):
Internet-scale Distributed Systems

Tufts CS 117 Assignment:
End-to-end Arguments
Questions

You are welcome to write as much as you like, but this is not intended to be a very time-consuming assignment. In most cases, each question can be answered in one or a few sentences, but it is essential that you demonstrate strong understanding. Try to get to the essence quickly. If you want to provide supporting detail, that's fine too.

Remember that you will have a chance to update your answers after class discussion, and before your work is assigned a final grade. Don't worry if there are a few questions that you don't know how to answer until after the discussion.

Note that the end-to-end paper discusses, starting in its abstract, an end-to-end design principle, and many of these questions are about that principle. Make sure you understand what the principle is before attempting to answer these questions. Indeed, it's worth returning to the abstract after you've read the whole paper, as it sets out in quite a subtle way the essence of the principle.

  1. Briefly summarize the "end-to-end" principle in your own words. Why does it matter? In what situations is it applicable? What does it say about the pros and cons of doing other sorts of checking and recovery (I.e. other than end-to-end)? For full credit it must be clear when checking is required, when it's optional, and why.
  2. ...your answer here...
  3. The end-to-end paper describes a situation at MIT in which end-to-end checking was not done, and the result was a system that did not work well enough. What was the problem, and how would more attention to the end-to-end argument have helped?
  4. ...your answer here...
  5. The end-to-end principle discusses the impact of various design choices on system correctness. What are the implications of attention to the end-to-end principle for system performance? Briefly discuss.
  6. ...your answer here...
  7. If a networking system with multiple "hops" does error checking and recovery on some of the individual links, does that violate the end-to-end principle? Briefly explain why or why not. Remember: this question is not asking whether such checking is ever a good idea (though you might want to comment on that too), this question is asking what the principle says, if anything, about such checking.
  8. ...your answer here...
  9. Do systems designed with attention to the end-to-end principle tend to be simpler or more complex, I.e. compared to otherwise similar systems designed without attention to the principle? Briefly discuss.
  10. ...your answer here...
  11. Consider the postal system. Letters are typically addressed, mailed and delivered without explicit acknowledgement. How, if at all, does the "end-to-end" argument apply to the postal system?
  12. ...your answer here...
  13. Paul Baran explains why packet switching could not have been successful in an all-analog world. Why was digital messaging a necessary pre-requisite for the adoption of packet switching? Be specific.
  14. ...your answer here...
  15. What reason does Baran give why packet switching can make a network achieve similar performance at less cost than a circuit-switched network?
  16. ...your answer here...
  17. What reaction did Baran get from the experts at AT&T when he proposed packet-switching? Why?
  18. ...your answer here...
  19. Why did or didn't Baran seek patents on his work?
  20. ...your answer here...
  21. (optional: for fun not credit) What efforts were made to keep this technology secret from the "enemy" in the Soviet Union? Why?
  22. ...your answer here...