Advanced Computer Networks EN.601.714


  • Instructor: Soudeh Ghorbani
  • Lecture time: Tuesdays and Thursdays, 1:30-2:45pm
  • Location: Homewood Campus, Shaffer 2
  • Office hours: Wednesdays 2:30-3:30pm or by appointment
  • Piazza discussion board

Course Description

This is a graduate-level course on computer networks. It provides a comprehensive overview on advanced topics in network protocols and networked systems. The course will cover both classic papers on Internet protocols and recent research results. It will examine a wide range of topics, e.g., routing, congestion control, network architectures, datacenter networks, network virtualization, software-defined networking, and programmable networks, with an emphasize on core networking concepts and principles. The course will include lectures, paper discussions, programming assignments and a research project.
Recommended Course Background: One undergraduate course in computer networks (e.g., EN.601.414/614 Computer Network Fundamentals or the equivalent), or permission of the instructor. The course assignments and projects assume students to be comfortable with programming.

Acknowledgment: This course is based on UIUC CS538 and influenced by Princeton COS561, Stanford CS244, and Stanford CS144. We particularly thank Brighten Godfrey.

Topics and Schedule

Grading Policy

The class is graded as follows:
  • Research project (60%)
    • Proposal (5%)
    • Midterm presentation (10%)
    • Final presentation (10%)
    • Final paper (35%)
  • Paper reviews (14%)
  • Topic presentations (14%)
  • Assignment (6%)
  • Participation (6%)

Research Project

The research project is a main component of this course. The goal is to conduct high-quality novel research related to networking that, by the end of the semester, would be publishable as a paper in a top-quality workshop like HotNets, and when expanded to a full paper would be publishable in a top-quality conference. You may work alone or in groups of 2. The steps in the research project are as follows: During the first few weeks of the course, you should think about projects you might like to do. The instructor will suggest some topics (you need to set an appointment), but it's even better if you have ideas of your own.
  • Project proposal: During the first few weeks of the class, you should think about the topic you want to work on and optionally find a partner. You are welcome (and encouraged) to explore your own ideas. However, you can also talk with the instructor who will suggest some topics. Submit a project proposal to the instructor via email (plain text email with no attachments). The proposal should be at most one page and inlcude each of the following:
    • the problem you plan to address
    • what will be your first steps to attack the problem
    • what is the most closely related work, with at least 3 full academic paper citations (title, authors, publication venue, year) plus paper URLs, and why your proposed problem is different than those or why your proposed solution is better. You should actively search for related work, not just cite papers that the instructor mentions.
    • if there are multiple people on your project team, who they are and how you plan to partition the work among the team
  • The proposal can be short. It should simply demonstrate that you have a plausible project and know how to attack it. The instructor will give a grade for the proposal, and either approve the project or ask for a revision.
  • Midterm presentation: Give a presentation in class describing what problem you are solving, why existing approaches will not solve your problem, your solution approach, and your progress in your solution. You must demonstrate progress in your solution.
  • Final paper: This is a short paper suitable for submission to a workshop. It should clearly state the problem being solved, importance of problem, Related work, Your approach, evaluation, and results, Summary of conclusions, discussion of limitations, and future work. The paper should be at most 8 pages for one-person projects, and at most 12 pages for two-person projects. But you will be judged on results, not pagecount!
  • Final presentation: At the end of the course (the last day of our class), we will have final project presentations. This will be an opportunity for other students and the instructor to ask questions about your project.
Dates for the above steps will be announced on the class schedule. In general, you are encouraged to meet with the instructor and seek advice on the project as often as you like.
Can a project be shared with another course's project or independent research? It is OK, and often a good idea, to work on a class project that complements your other ongoing projects and has a related topic. However, you should identify the piece of the larger project that you are working on for 538, with separate pieces for other courses. Check with your other instructors as well.

Paper Reviews

For each class, we will have one assigned paper that you should read prior to class and be ready to discuss during the class. You should submit one paper review for each class on Pizza publicly (so that it is visible to the instructor and other students) by 5:00pm the day before the lecture for which the paper was assigned. This review should be relatively short (about one paragraph). It should not summarize the paper or repeat it; we have all read the paper already. Instead your review should inlcude at least two comments on the paper that supply information not in the paper itself. For example, a comment might be:
  • a suggestion to build on or extend the paper's ideas in future work
  • a criticism of the paper
  • an advantage of the paper (not discussed in the paper)
  • an alternative solution for the solutions discussed in the paper
  • a response to another student's comment
You are encouraged to read and comment on the other students' reviews. However, please write down notes on your own thoughts independently prior to reading other students' reviews. Collaborating with other students to write reviews is not permitted. Your reviews should ideally include original ideas that do not appear in the other students' reviews. However, If you independently make similar points, that is acceptable. You may skip any 2 paper reviews without affecting your grade. You will receive a deduction of one letter grade for missing more than 2 reviews. Each review will be given a score in the [0,2] range. The overall review grade for the course will be calculated based on a random sample of 7 reviews over the semester.

Topic Presentations

Each student will give two presentations on two topics during the semester. The goals are for you to learn more about particular areas of interest related to our assigned readings, and give an overview of what you learned to the rest of the class. Here is what you should do:
  • By the deadline mentioned on the class schedule, specify your topic preferences (up to 5 topics) from the list of topics posted on Pizza. For each topic, you can find the related readings and the presentation date on the class schedule. The instructor will take your preferences into account while assigning the topics. The topic assignment will be announced on the class schedule.
  • To prepare for your presentation, pick one "primary paper" to cover in depth, and a related paper. You can choose these papers from the optional readings for your topic on the course web site (not the required reading!) or others that you find. You can also contact the instructor for paper suggestions.
  • At least one week before your presentation date, tell the instructor what papers you plan to cover, and arrange a meeting time with the instructor to go over your draft presentation. The instructor will then approve the papers or suggest other papers you should cover instead or in addition to what you pick.
  • Prepare a presentation on your topic. The presentation should do two things. First, it should describe the primary paper and how it relates to the required reading for that day (this should take roughly 20 minutes of your presentation). Second, it should summarize the related paper (this should take roughly 10 minutes of your presentation) and compare it to your primary paper, the required reading, and/or other research in this area.
  • Prepare 2 (or more) discussion questions. You should lead a 15 minute discussion during or after your presentation.
  • Meet with the instructor to discuss your draft presentation at least 2 days before your presentation.


There will be one assignment during the semester which includes introducing several tools for experimental networking research and written questions covering roughly the first 2/3 of the course. There will be no final exam.


You are expected to attend all sessions of the class, The general policy is that a student will automatically receive a deduction of one letter grade for missing more than 2 lectures. Class sessions combine lectures, discussions of reading, and presentations by students. In all cases, the class is focused around discussion. Please comment, question, and interact! I ask that you do not use laptops during class. This way, we will all be maximally engaged.

Academic Honesty and Cheating

The author of all writing, ideas, and other work must be clearly credited. For example, if your presentation of a past paper uses some slides from the author, you must credit the author. The standard penalty for a first instance of cheating is a grade of zero on the assignment in question, plus a reduction of one full letter grade in your final course grade. For details, please see the departmental honor code.

Project Ideas

How can you pick a good research project topic? Your taste for projects will evolve over years, but to get started, here are a few places to look.

Workshops and Conferences

Browse programs at top conferences to see current research topics. Workshops often contain early work on "hot" new directions, raising more questions than answers. These are good conferences and workshops to check out when looking for papers to present on a certain topic, or to see current areas of research when looking for project inspiration:

Survey Papers


The required papers are listed on the schedule. There is no required textbook. If you have not taken an undergraduate networking course, or if you need a refresher, you might take a look at standard books such as
  • Peterson and Davie, Computer Networks
  • Tanenbaum, Computer Networks
  • Kurose and Ross, Computer Networking: A Top-Down Approach
Readings, Assignments, and Notes
Fundamental Architectural Principles and Key Protocols
September 4 Introduction
Internet & IP
Layering pinciple

No reviews due


Optional:The Design Philosophy of the DARPA Internet Protocols (D. Clark, SIGCOMM 1988)

September 6

Transport layer
End-to-end principle

No reviews due

Where to look for project ideas

End-to-End Arguments in System Design (J.H. Saltzer, D.P. Reed and D. Clark, ACM Trans. on Computer Systems, Vol. 2, No. 4, Nov 1984, pp. 277-288)

Presentation topic preferences due (5pm)

September 11 Congestion control

Congestion Avoidance and Control (Jacobson, SIGCOMM 1988)

September 13 Global connectivity

BGP Routing Policies in ISP Networks (Caesar and Rexford, IEEE Network Magazine, Nov/Dec 2005).

Optional: Nation-State Hegemony in Internet Routing (Edmundson et al., COMPASS 2018), Espresso (Yap et al., SIGCOMM 2017), Internet at the Speed of Light (Singla et al., HotNets 2014)

Software Defined Networks (SDN)
September 18 SDN

OpenFlow: Enabling Innovation in Campus Networks (McKeown wt al., CCR 2008)

Optional: The Road to SDN: An Intellectual History of Programmable Networks (Feamster et al., CCR 2014), Google's Move to SDN (Communications of the ACM, March 2016, Vol. 59 No. 3)

September 20 Software-defined routing [Michael]

B4: Experience with a Globally-Deployed Software Defined WAN (Jain et al., SIGCOMM 2013)

Optional: B4 and After: Managing Hierarchy, Partitioning, and Asymmetry for Availability and Scale in Google's Software-Defined WAN (Hong et al., SIGCOMM 2018)

September 25 Datacenter network architecture

Scalable, Commodity DC Net Arch (Al Fares et al., SIGCOMM 2008)

Optional: F10 (Liu et al., NSDI 2013), Jellyfish (Singla et al., NSDI 2012)

Project proposals due (11:59pm)

September 27 No class -- Soudeh traveling
October 2 Datacenters today [Robin]

Google Datacenters (Singh et al., SIGCOMM 2015)

Optional: Facebook Datacenters (Roy et al., SIGCOMM 2015)

October 4 Network virtualization

VMware NVP (Koponen et al., NSDI 2014)

Optional: Google Andromeda (Dalton et al., NSDI 2018)

October 9 Middleboxes [Steven]

An Untold Story of Middleboxes in Cellular Networks (Wang et al., SIGCOMM 2011)

Optional: Making Middleboxes Someone Else's Problem (Sherry et al., SIGCOMM 2012)

Network Verification
October 11 Static verifiers

HSA (Kazemian et al., NSDI 2012)

Optional: VeriFlow (Khurshid et al., NSDI 2013)

October 16 Dynamic verifiers [Justin]

Minesweeper (Beckett et al., SIGCOMM 2017)

Optional: A Formally Verified NAT (Zaostrovnykh et al., SIGCOMM 2017)

Reliability and Security
October 18 Failures and routing convergence [Steven]

Evolve or Die (Govindan et al, SIGCOMM 2016)

Optional: Delayed Internet Routing Convergence (Labovitz et al., SIGCOMM 2000), Internet Routing Instability (Labovitz et al., Transactions on Networking, Vol. 6, No. 5, 1998)

October 23 Reliable routing

Fibbing (Vissicchio et al., SIGCOMM 2015)

Optional: Consensus Routing (John et al., NSDI 2008)

October 25 No class -- Soudeh traveling
Work on the midterm presentations
October 30 Secure routing

How Secure are Secure Interdomain Routing Protocols? (Goldberg, SIGCOMM 2010)

Optional: Survey of BGP security (Butler, Proc IEEE, 2010)

Congestion Control
November 1 Congestion control in datacenters

DCTCP (Alizadeh et al., SIGCOMM 2010)

Optional: MPTCP (Wischik et al., NSDI 2011), pFabric (Alizadeh et al., SIGCOMM 2013)

November 6 Modern congestion control [Michael]

PCC (Dong et al., NSDI 2015)

Optional: Remy (Winstein et al., SIGCOMM 2013), PCC Vivace (Dong et al., NSDI 2018)

November 8 Forwarding

50-Gb/s IP Router (Partridge et al., ToN 1998)

Optional: PacketShader (Han et al., SIGCOMM 2010)

November 13 Project midterm presentations

Project midterm presentations due: November 8, 11:59pm

November 15 Programmable forwarding

RMT (Bosshart et al., SIGCOMM 2013)

Optional: Packet Transactions (Sivaraman et al., SIGCOMM 2016)

Thanksgiving Vacation
Special Topics
November 27 Internet Exchange Points (IXPs)

Anatomy of a Large European IXP (Ager et al., SIGCOMM 2012)

Optional: ISP Interconnectivity in Africa (Gupta et at., PAM 2014)

November 29 Censorship [Justin]

Towards a Comprehensive Picture of the Great Firewall's DNS Censorship (Anonymous, FOCI 2014)

Optional: Global Measurement of DNS Manipulation (Pearce et al., USENIX Security Symposium 2017), Networks Should Run Themselves (Feamster and Rexford, 2018)

December 4 Content delivery networks (CDNs) [Robin]

The Serving Infrastructure of a Large CDN (Wohlfart et al., SIGCOMM 2018)

Optional: A Case for a Coordinated Internet Video Control Plane (Liu et al, SIGCOMM 2012)

December 6 Final Project Presentations

Optional: Networks Should Run Themselves (Feamster and Rexford, 2018)

TBD Project papers due