CSE logo University of Washington Computer Science & Engineering
 CSE 561 Syllabus
  CSE Home   About Us    Search    Contact Info 

CSE 561: Computer Networks

Instructor: Tom Anderson (tom)
TA: Dan Halperin (dhalperi)
Meetings: Mon/Wed 12:00-1:20, CSE 503
Pre-requisite: graduate standing in CSE or permission of the instructor


Final Exam and Presentations: The final exam will be due Friday, March 16th by email to Tom.

Presentations will be Monday, March 12th in Sieg 327 from 3-5pm.


Textbook: Peterson and Davie, Computer Networks: A Systems Approach, 3rd Edition.

Discussion Board: (UW NetID protected)

Project Webpage: http://www.cs.washington.edu/education/courses/cse561/CurrentQtr/project.html

Project Writeups: http://www.cs.washington.edu/education/courses/cse561/CurrentQtr/projects/

USRP Reservations: http://reserve.cs.washington.edu/visitor/day.php?area=134 (CSE NetID)

Anonymous Feedback anonymous feedback form

Schedule and Reading List: Below.

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 software programmable radios. 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; even better if your project interoperates with the projects of other groups. We will be setting up a lab in Sieg 327 for the class to use.

Phases:

  1. Design and implement (efficient) reliable communication between two software radios. We will provide you a basic working communication channel as a baseline; your task is to improve this channel in some interesting and useful way.
  2. Design and implement robust ad hoc routing between a set of PC's using software radios as their only means of communication.
  3. Design and implement (efficient, fair, etc.) resource control (that is, air control) among a set of PC's using software radios as their only means of communication.

The phases are due at 4:30pm on Feb. 2, Feb. 16, and March 9, respectively. We will conduct an end of project interview with each group, late afternoon on March 9, to give you a chance to demonstrate your solution in its entirety.

For the first phase of the project, you may find the following references useful; there will be a copy on reserve at the engineering library and in CSE 391:

Collaboration/Cheating: 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. The grading in the class is emphatically not curved; I would like nothing better than for all of you to pass.

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, 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 - there's 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. It is a requirement that you do the reading before class, as we will take the research papers as a starting point, not the end point of the class discussion. 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.

Discussion and Blogs: 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 each paper and blog a unique comment about the paper to the course web site no later than 10:30am on the day of the class. (This is to give time for everyone to read the blog entries before class.) Note that the earlier you post, the easier it is to be unique. Please keep blog entries short: they can be anything that provides insight into the paper, e.g., a summary, the broader context for the work, a question about some aspect of the paper, an answer to someone else's question, a methodogical flaw, or a pointer to related work not described by the paper.

Final: A take home final will be handed out at 4:30pm on March 9, and will be due back at 4:30pm on March 14. 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 during that period of the 9th - 14th to work on the final, on the honor system.

Grading: Blogs/Class Discussion: 20%; Project: 40%; Final: 40%.


Schedule and Reading List:
Date Topic P&D Chapters Papers Advocate Skeptic
1/3 Basic comm. 2.2-2.5, 5.2

Karl and Willig, Protocol and Architectures for Wireless Sensor Networks, Chapter 4 (handout. Get from Melody Kadenko in CSE 660 and read before class)

Josie Ammer from EE will be presenting an overview of the physical layer in class. Her slides are here.

n/a n/a
1/8 Routing: wired 3.2, 4.2 Khanna and Zinky, The Revised ARPAnet Routing Metric. SIGCOMM 86. Allan C Dan Halperin
1/10 Routing: wireless  

Johnson and Maltz, Dynamic Source Routing in Ad Hoc Networks, Mobile Computing, 1996.

Biswas and Morris, Opportunistic Routing in Multihop Wireless Networks, SIGCOMM 05.

Ben Birnbaum

Nick

Jonah

Carl Hartung

1/17 Media access: Ethernet and MACAW 2.6

Cheng et al., Jigsaw: Solving the Puzzle of Enterprise 802.11 Analysis. SIGCOMM 06.

Katti et al., XORs in the Air: Practical Wireless Network Coding. SIGCOMM 06.

Ivan

Brian DeRenzi

Andrew Guillory

Nguyen

1/22 Congestion Control: TCP 6.3

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

Carl Hartung Nathan Kuchta
1/24 Congestion Control: RED, WFQ, PCP 6.2, 6.4

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

T. Anderson et al. PCP: Efficient Endpoint Congestion Control. NSDI 06.

Natalie Linnell

Roxana

Elizabeth

Ivan

1/29 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 1992.

Suporn Allan C
1/31 Internetworks (design) 1.3, 4.1

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

Saltzer et al. End to end arguments in system design. ACM TOCS 1984.

Suporn

Sam Guarnieri

Brian DeRenzi

Natalie Linnell

2/5 Internetworks (evolution)  

Handley, Why the Internet Only Just Works, BT Technology Journal, July 2006.

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

Peterson et al. Overcoming the Internet Impasse through Virtualization. IEEE Computer, 2005.

Nathan Kuchta

Andrew Guillory

Gyanit

Nguyen

Sandra

Roxana

2/7 Addressing and Naming 4.3, 9.1

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

Vahdat et al., Active Names: Flexible Internet Routing and Transport, USITS 99.

Elizabeth

Roxana

Sandra

Ben Birnbaum

2/12 Interdomain Routing  

Balakrishnan, Interdomain routing. (background, no blog needed)

Greenberg et al., A Clean Slate 4D Approach to Network Control and Management, CCR 2005.

Mahajan et al., Mutually Controlled Routing with Independent ISPs, NSDI 07.

N/A

Jonah Cohen

Nguyen

N/A

Suporn

Elizabeth

2/14 Content Distribution 9.4

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

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

Brian DeRenzi

Nathan Kuchta

Cherie

Sam Guarnieri

2/21 Peer to Peer Incentives  

Cohen, Incentives Build Robustness in BitTorrent

Piatek et al. Do Incentives Build Robustness in BitTorrent? NSDI 07.

Walsh and Sirer. Experience with an Object Reputation System for Peer-to-Peer Filesharing. NSDI 06.

Cherie

Gyanit

Andrew Guillory

Gyanit

Cherie

Allan C

2/26 DHTs  

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

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

Dan Halperin

Natalie Linnell

Cherie

Nick

2/28 Overlays  

Andersen et al. Resilient Overlay Networks, SOSP 2001.

Madhyastha et al. iPlane: An Information Plane for Distributed Services, OSDI 06.

Hsieh

Dan Halperin

Nick

Gyanit

3/5 Security 8.1-8.3

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

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

Ben Birnbaum

Hsieh

Carl Hartung

Sam Guarnieri

3/7 Denial of Service  

Yang et al. A DoS-Limiting Network Architecture. SIGCOMM 2005.

Shieh et al. Trickles: A Stateless Network Stack for Improved Scalability, Resilience and Flexibility. NSDI 2005.

Sandra

Ivan

Hsieh

TBA


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