Steam-powered Turing Machine University of Washington Computer Science & Engineering
 CSE 561: Computer Communication and Networks (Graduate Networking)
  CSE Home     Previous Quarters  About Us    Search    Contact Info 

 Schedule and Reading List
 Projects
 Mailing List ArchiveCSE only
 Anonymous Feedback Form
   

CSE561 Autumn 2005

When & where: Mondays and Wednesdays, 10:30am-11:50am, CSE 203 (status)

Instructor: Tom Anderson (mail)
Office Hours: By appointment

TA: Pat Tressel (mail)
Office Hours: By appointment

Required Textbook: Peterson and Davie, Computer Networks: A Systems Approach, 3rd Ed.
(Note that the 2rd edition is nearly, but not exactly, the same.)

Prerequisites: Graduate standing in CSE or permission of the instructor.

Mailing List: Please subscribe to the class mailing list.


Overview

This course is on how to design (good) computer network protocols.

While it is relatively easy to learn how a specific network protocol works, it is incredibly hard to design a good network protocol. The Internet is a great example one can learn most of the aspects of how the Internet protocols work in a relatively short period of time, but that won't help you (much) in designing a new protocol. The Internet is successful for reasons that are mostly hidden in its design, embodying specific, debatable tradeoffs in balancing robustness, interoperability, scale, evolution, flexibility, operator incentives and security. And while you might think that we don't need any new protocols beyond the Internet, industry is developing new protocols all the time, often quite poorly. As a recent example, one need look no farther than 802.11 (WiFi) -- it has fundamental flaws in security, resource allocation, scalability and management. Added to the fact that the Internet itself is poorly designed for many of these same issues, the need for understanding how to design better protocols has never been greater.

Project

The best way to learn how to design protocols is by practice, and so the core of the course is a substantial protocol design project: to build a wireless ad hoc network using sound waves as the means for communication. Ideally, we would use radio waves, but to date, WiFi systems lack the flexibility to be changed at a fundamental level. Essentially, a PC with a microphone and speaker can serve as a poor man's software radio. The project is designed to be done in groups of three to four. The project has phases that can be worked on independently, but ultimately, the phases must work together. You may use any available machine (e.g., in your offices) to run the project, but we will also try to have ones set up in the network lab for experimentation.

Phase 1: Design and implement (efficient) reliable communication between two PCs using a microphone and speaker.

Phase 2: Design and implement robust ad hoc routing between a set of PCs using sound as their only means of communication.

Phase 3: Design and implement (efficient, fair, etc.) resource control (that is, sound control) among a set of PCs using sound as their only means of communication.

You may do the phases in any order, but at least one of the phases must be turned in by 5pm on each of the following dates: Nov. 3, Nov. 17, and Dec. 12. For the first two turn-ins, send your (working) code and a 3-5 page high-level description of what you did. We will conduct an end of project interview in the late afternoon on Dec. 12 to give you a chance to demonstrate your solution in its entirety.

Collaboration

Another observation guiding the design of this course is that students typically learn more from each other than they do from the faculty. Thus, I encourage you to collaborate with your classmates, including those from other groups, in all aspects of the course, with only one exception outlined below.

However, collaboration should not extend into plagarism. To draw a very clear line, you may use any idea or code from any other person or group in the class or out, provided you clearly state what you have borrowed and from whom. If you do not provide a citation -- that is, if you turn other people's work in as your own -- that's cheating. Anything else is fair game. Of course, we'll be grading you on the ideas you've added, but you should always borrow as much as you can as a starting point theres no point in reinventing the wheel.

The one exception is that there will be an open book, take home final; the final is to be done individually without consultation with anyone else.

Readings

The reading list is a mixture of textbook material and research papers. The textbook material is designed to help you understand the basics of the project; the research papers are to bring you to the state of the art. A goal for each class meeting will be to identify the limits of the research community's knowledge -- what are the open research problems for that topic? An illustration of how little we really know about network protocol design is that we will be able to do this even for the most basic of topics.

For each paper, I'll appoint two people: an advocate and a skeptic, each to speak for 2-3 minutes about the paper. The advocate gives the elevator pitch for the paper: what is the topic of the paper, what are its main results, why the system or idea is better than its competition, why does the result matter and who are the target users. Note that the answers to these questions may be different from the ones the authors gave in the paper! The skeptic speaks on why reading the paper was a waste of time or that the conclusion is the opposite of that claimed in the paper. Everyone else (except these two) are to read the paper and blog a unique comment, question about some aspect of the paper, or answer to someone else's question, by 9:30am on the day of the class. Please keep these blog entries short.

Final

A take home final will be handed out on the last day of class, and will be due at 5pm on Dec. 16 (by e-mail to Tom). The final will consist of a single network protocol design question, as a capstone to the topics covered in the course. So that students don't take the entire final exam period working on it, the exam is designed to take a day to think about and no more than two hours to write. Students may take any contiguous 48 hour period between the 7th and the 16th to work on the final, on the honor system.

Grading

Blogs: 20%; Project: 40%; Final: 40%.

The grading in the class is emphatically not curved; I would like nothing better than for all of you to pass.


Schedule and Reading List

 

Date

Topic

Textbook

Research Papers

Advocate & Skeptic

1

9/28

Basic communication

2.2-2.5, 5.2

 

 

2

10/3

Routing: Wired

3.2, 4.2

Khanna and Zinky, The Revised ARPANET Routing Metric, SIGCOMM 89.

A: Jon C.
S: Jon F.

3

10/5

Routing: Wireless

 

Johnson and Maltz, Dynamic Source Routing in Ad Hoc Networks [PDF], Mobile Computing, ed. Imielinski and Korth, Kluwer 1996.

A: Jon F.
S: Raphael

Biswas and Morris, ExOR: Opportunistic Multi-hop Routing for Wireless Networks, SIGCOMM 05.

A: Tanya
S: Tomas

4

10/10

Media access: Ethernet and MACAW

2.6

Bharghavan et al., MACAW: A Media Access Protocol for Wireless LANs, SIGCOMM 94.

A: Rob
S: Indri

5

10/12

Congestion control: TCP

6.3

V. Jacobson, Congestion Avoidance and Control, SIGCOMM 88, pp. 314-329.

A: Anna
S: Lincoln

6

10/17

Congestion control: RED, WFQ, PCP

6.2, 6.4

Demers, Keshav, and Shenker, Analysis and Simulation of a Fair Queueing Algorithm, SIGCOMM 89.

A: John J.
S: Raphael

T. Anderson et al., PCP: Efficient Endpoint Congestion Control, Submitted to NSDI 06. (Will be handed out in class.)

A: Jon F.
S: Jon C.

7

10/19

QoS: IntServ vs. DiffServ

6.5

D. Clark, S. Shenker and L. Zhang, Supporting Real-Time Applications in an Integrated Services Packet Network: Architecture and Mechanisms, SIGCOMM 92.

A: Ravi
S: Stef

16

10/24

DHTs

9.4 (on chord)

Ion Stoica et al., Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications, SIGCOMM 2001.

A: Rob
S: Rob

Bharambe et al., Mercury: Supporting Scalable Multi-Attribute Range Queries, SIGCOMM 2004.

A: Mike
S: Jon F.

Question to ponder: What common services beyond packet delivery are worth providing in an internet?

17

10/26

Overlays

9.4 (on RON)

Andersen et al., Resilient Overlay Networks, SOSP 2001.

A: Indri
S: Anna

I. Stoica et al., Internet Indirection Infrastructure, SIGCOMM 2002.

A: Jon C.
S: Tomas

8

10/31

Internetworks: Design

1.3, 4.1

David Clark, The Design Philosophy of the DARPA Internet Protocols, SIGCOMM 88.

A: Jon C.
S: Lincoln

Saltzer et al., End-to-End Arguments in System Design, ACM Transactions on Computer Systems (4), pp. 277-288, 1984.

A: Stef
S: Tanya

Questions to ponder: What was the Internet designed to solve and why? How should you divide responsibility between the endpoints and the network?

9

11/2

Internetworks: Evolution

 

Clark et al., Tussle in Cyberspace: Defining Tomorrow's Internet, SIGCOMM 02.

A: Lincoln
S: Ravi

Peterson et al., Overcoming the Internet Impasse through Virtualization, IEEE Computer 38(4), Apr 2005, pp. 34-41.

A: Mike
S: Indri

Questions to ponder: Why can't we change the Internet? And what can we do about the fact that its resistant to change?

 

11/4

Turn in your phase 1 code by 3pm. Ten minute demos will be scheduled for each team.

10

11/7

Addressing and naming

4.3, 9.1

Mockapetris and Dunlap, Development of the Domain Name System, SIGCOMM 88.

A: Stef
S: Rob

Vahdat et al., Active Names: Flexible Location and Transport of Wide-Area Resources, USENIX Symposium on Internet Technologies and Systems, 1999.

A: Indri
S: Tanya

Turn in a ~2 page high-level description of phase 1 of your project by 5pm.

11, 12

11/9

Interdomain routing

 

Balakrishnan, Interdomain routing.

 

Caesar et al., Design and Implementation of a Routing Control Platform, NSDI 05.

A: Raphael
S: Ravi

13

11/14

Multicast

4.4

S. Floyd et al., A Reliable Multicast Framework for Light-weight Sessions and Application Level Framing, SIGCOMM 95.

A: Lincoln
S: John J.

14

11/16

Content Distribution

9.4

Breslau et al., Web Caching and Zipf-like Distributions, INFOCOM 1999.

A: Stef
S: Indri

Wang et al., Reliability and Security in the CoDeeN CDN, USENIX 2004.

A: Anna
S: Jon C.

15

11/21

Content Distribution

 

Kostic et al., Maintaining High Bandwidth Under Dynamic Network Conditions, USENIX 2005.

A: Ravi
S: Mike

Cohen, Incentives Build Robustness in BitTorrent,

A: Tomas
S: Jon F.

 

11/23

(No class)

 

 

 

Turn in your phase 2 code and a ~2 page high-level description by 5pm. Brief demos will be scheduled next week.

18

11/28

Security: Theory

8.1-8.3

N. Borisov et al., Intercepting Mobile Communications: The Insecurity of 802.11, MOBICOM 2001.

A: Raphael
S: John J.

19

11/30

Security: Vulnerabilities

 

Staniford et al., How to Own the Internet in Your Spare Time, USENIX Security Symposium, 2002.

A: Lincoln
S: Stef

Saroiu et al., Measurement and Analysis of Spyware in a University Environment, NSDI 04.

A: Ravi
S: Mike

20

12/5

Security: Prudent practices

 

Abadi and Needham, Prudent Engineering Practice for Cryptographic Protocols, DEC Compaq HP SRC Research Report, 1994.

A: Tanya
S: Anna

Tom Anderson et al., Design Guidelines for Robust Internet Protocols, HotNets 2002.

A: Tomas
S: Tom

21

12/7

Future Directions

 

Nick McKeown, et al., Is IP Going to Take Over the World (of Communications)?, HotNets 2002.

A: John J.
S: Anna

 

12/12

Project interviews and demos in the afternoon.

 

12/16

Send your your final to Tom by 5pm.


CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to tressel]