6.829: Computer Networks, Fall 2020

Instructors: Manya Ghobadi and Mohammad Alizadeh

TA: Prateesh Goyal (prateesh@mit.edu), James Salamy (jsalamy@mit.edu)

Lectures: Tue-Thu 1PM-2:30PM (Zoom link)

Office Hours:

  • Manya and Mohammad: by appointment

  • Prateesh: Tue and Thu 5-6PM (Zoom link)

  • James: Wed 9-10AM and 5-6PM (Zoom link)

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


  • We will be using Piazza for Q&A and other discussions. Sign up information will be annpunced soon.

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

  • 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


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


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 C.

Class meetings

We will have live (synchronous) lectures (Zoom link). Live lectures give an opportunity to ask questions about the lecture material, to engage in an open-ended discussion about research papers, and to provide some sense of community among the students. We encourage students to attend these live lectures when possible. We will record the live lectures and post them for asynchronous viewing, for students that were unable to join the live lecture.


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:

  • Reading assignments: 10%

  • Three PSets: 30%

  • One quiz: 20%

  • Project: 40%


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. Please contact us if you have time zone challenges to meet this requirement.


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 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.


There will be one quiz, on Thursday, November 12 (tentative).


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): Oct 13, 2020

  • Final Presentation: Dec 4, 2020