G22.2260 Networks and Distributed Systems

Spring 2009
Prof. Lakshminarayanan Subramanian
Thu 5:00-6:50, WWH 102
Office Hours:  Wed 5:00- 6:00, 715 Broadway, Room 706

[Assignment 1]


This is a graduate level course on computer networks and large-scale distributed systems. In this class, we will teach the design and implementation techniques essential for engineering both robust networks and Internet-scale distributed systems.There's no textbook, you need read many research papers (with our guidance) to learn the current challenges and solutions in networking and large-scale systems. If you have been exposed to a networking course in your undergrad (i.e. you know the basics of TCP/IP, socket programming), we highly encourage you to take this class.  

The goal of this class is to guide students so that they can:

This course will have three components

We will read about 40-50 research papers on various aspects of networks and distributed systems. Topics include routing protocols, network congestion control, multicast, wireless networking, peer-to-peer systems, overlay networks and applications, distributed storage systems and network security. Students are expected to read papers before the class and participate in the discussion during the class. The lecture will be conducted in an interactive fashion. We will lead the discussion, but we expect everyone to participate. You will be graded for class discussion and paper summaries. Each student will be individually responsible for writing up a short summary of every paper. The summaries are due before 5 PM on the day of the corresponding class. Submission instructions will be posted before class begins. There will be no exams in this class.

The final course project (conducted in a group of 2-3 students) should be a research-oriented project which should be a design/implementation of a new concept in networking or distributed systems. Research projects are a critical aspect of the course.  Your goal is to do some quality systems research; that is, to add to our understanding of how to build systems.  Research projects must be written up in a term paper, and will be presented in a poster in a departmental mini-conference in the Spring Showcase.  Suggested project ideas will be provided by the instructor.

1. Undergraduate Networks and/or Operating Systems
2. Programming experience in C/C++ or Java is helpful for the final project.

Lectures and Readings

There is no textbook required. We will read and discuss 2 papers per week. All of the papers for the class will be available on-line (if paper is not on the class web-page, search for the paper online).

Lecture 1: Basic concepts of Networks + Internet Structure and Evolution + OSI layer

Lecture 2:  End-to-end principle, Naming

Lecture 3: Routing in the Internet World 

Lecture 4: Routing in Wireless and P2P networks

Other related (optional) readings:

Lecture 5: TCP  and Congestion Control
Lecture 6: Network Services: QoS, Fair Queuing
Additional Reading
Lecture 7: Multicast and Anycast: IP and Overlays
Lecture 8: Overlay based services
Lecture 9: Peer to Peer Services
Lecture 10: Wireless Basics

No Papers for this Class.

Lecture 11:  Analog Network Coding
Lecture 12: Wireless protocols
Lecture 13: Software Routers
Lecture 14: Networks Security
Lecture 15: Enterprise Security