6.829: Computer Networks, Fall 2018

Instructors: Hari Balakrishnan and Mohammad Alizadeh

TA: Akshay Narayan, Vikram Nathan

Lectures: Tue/Thr 1:00-2:30pm at 32-144

Office Hours:

  • Hari and Mohammad: By appointment

  • Akshay: Wednesday 10am-11am, 32-G9

  • Vikram: Tuesday, 4pm - 5pm, 32-G9

Course Overview

6.829 is a graduate-level introduction to classic and advanced topics in computer networks. It counts towards the TQE in Systems for CS and EE PhD students, and will also be appropriate for MEng and undergraduate students with the prerequisite background.

Over the past two decades, the Internet has grown from a research curiosity to something we all rely on daily. It has been able to withstand rapid growth and accommodate numerous unforeseen applications.

How does this global infrastructure work? What design principles allow it to scale well? What settings render these principles inadequate, and why? How can we make it work much better in the future? These are some questions that we will address in this course.

Our goals are:

  • to understand a good slice of the state-of-the-art in network architecture, protocols, and networked systems, and

  • to understand how to conduct networking research and develop innovative ideas.

Topics include the principles and practice of:

  • Internet architecture: resource management and congestion control, inter-domain routing, mobility, naming

  • “Underlay” networks: wireless and datacenter networks, software-defined networks, and programmable data-planes

  • “Overlay” networks: content distribution networks, peer-to-peer networks, video streaming

Announcements

  • The first lecture will be on Thursday, September 6.

  • Sign up for the 6.829 Piazza forum. We'll be using Piazza for Q&A and other discussions, so please sign up ASAP.

About the Course

Units

12 (3-0-9). Requirements satisfied: TQE, AUS, Grad-H subject.

Prerequisites

6.033 or 6.02 (or equivalent). This requirement may be waived for students with strong undergraduate-level background in networked systems, with the instructor's permission. Experience with at least one programming language, such as Python or Rust (ideally both).

Piazza

We will be using the 6.829 Piazza forum for Q&A and other discussions. Please sign up and check Piazza regularly.

Grading policy

The class will be graded as follows:

  • Three PSets: 30%

  • One quiz: 25%

  • Project: 45%

Readings

Each lecture will have one assigned paper reading. All students are expected to thoroughly read the paper, and answer a few questions about the assigned paper before each lecture. This is essential to get the most out of the class!

The questions for each lecture will be posted on the Lectures page. Please submit answers using the Answer submission page. The answers are due by 12am (midnight) the night before the lecture. To pass the class, students must submit adequate answers for at least 18 lectures.

Participation

We expect you to attend all lectures, unless there are pressing or unforeseen conflicts. Conflicts that are persistent (e.g., registering for another class at the same time and “splitting” attendance between them) are not excused.

Problem Sets

There will be three PSets posted on this website (see sidebar) throughout the semester. The PSets will include theory problems and a programming task (in Python or Rust) that involves exploring concepts from the class. Each PSet is due on the date specified; usually this will be about 2 weeks after the PSet is published.

Late policy: You may use up to five extension days (in total) over the course of the semester for the three PSets, apportioned in any way. To claim an extension day, contact the TA. For any other late PSet, your score will be multiplied by 0.5; moreover, you must submit it within 7 days of the original due date to get any credit. If you have a note from Student Support Services, please contact the instructors. For all other circumstances (interview trips, sporting events, performances, overwork, etc.) you may use your extensions. If these days are not enough, please contact the instructors.

Collaboration policy: The PSets must be done individually. You may get help from the course staff and other students on the underlying material in the PSets, but the work you hand in must be your own. In particular, you must not copy another person's solution, code, or other work. Someone telling you the solution to a problem is also not acceptable. Copying another person's work or allowing your work to be copied by others is a serious academic offense and will be treated as such.

Quiz

There will be one quiz, in-class, on Thursday, November 15.

Project

The term project is a key part of the class. Students will propose and conduct the project in groups of 2-3. The project milestones and rough timeline are as follows:

  • Proposal (1-2 pages): October 8

  • Final Presentation: December 11

More details about the scope of the project, deadlines, and sample topics can be found in the staff's Project Guide.