Computer Networks

Computer Networks

527, Fall 2017, Ivan Beschastnikh (

Mon/Wed 1:30-3:00PM, DMP 101, UBC course page

Course piazza

Office hours by appointment

Course description

Computer networks and protocols are critically important to modern life. They range from the small (set of peripherals in a laptop) to the very large (the world wide web), and are also extremely diverse. Yet, at their core, all computer networks have similar challenges, such as addressing and naming the entities in the network. The focus of this course is to explore the broad diversity of computer networks through a series of research papers. Each week (2 class sessions) will focus on a particular networking topic. The course will especially emphasize re-occurring challenges and approaches that appear across topics.

This course satisfies the PhD "Computer Systems and Design" breadth requirement.

Course-level learning goals

The course will provide an opportunity for students to
  • understand key principles involved in designing and implementing network architectures and protocols
  • reason about challenges that are inherent to all computer networks
  • develop advanced networked systems


This seminar-style course will be primarily driven through in-class discussion of the readings. The readings are available online and are linked to from the schedule below. Most of the readings are research papers; there is no textbook. The course will also include an open-ended course project (the bulk of your course mark) that must be completed as part of a team. As well, there will be a take-home final exam.

If you are in the course, you should start by signing up for the class Piazza instance. We will use this for all class communication.

  • The discussion in each class will focus on 1-2 papers
  • Everyone posts a response for each of the assigned papers to Piazza, due at least 24 hours before class

Schedule (a work in progress)

Sep 6
Introductions, course overview, and academic paper reading
  1. Keshav. How to Read a Paper.
  2. Roscoe. Writing reviews for systems conferences.
Do not write reviews for these readings.
Sep 11
Internet architecture
  1. David Clark. The Design Philosophy of the DARPA Internet Protocols. Sigcomm 1988.
  2. Handled. Why the Internet only just works. BT Technology Journal 2006.
Sep 13
End-to-end arguments
  1. Saltzer et al. End to end arguments in system design. TOCS 1984.
Sep 18
Routing: wired
  1. Balakrishnan. Interdomain routing. (background, no response)
  2. Savage et al. The End-to-End Effects of Internet Path Selection. Sigcomm 1999.
Ivan away. Nodir and Fabian leading class.
Sep 20
Routing: overlays
  1. Andersen et al. Resilient Overlay Networks. SOSP 2001.
Ivan away. Nodir and Fabian leading class.
Sep 25
Transport: congestion control
  1. Jacobson. Congestion Avoidance and Control, Sigcomm 1988 (revised).
  2. Winstein and Balakrishnan. TCP ex Machina: Computer-Generated Congestion Control, Sigcomm 2013.
Sep 27
SPDY and project speed-dating
  1. Wang et al. How speedy is SPDY?. NSDI 2014.
In-class project speed-dating (come with two ideas)
Oct 2
Data center network architecture
  1. Al-Fares et al. A Scalable, Commodity Data Center Network Architecture. Sigcomm 2008.
  2. Liu et al. F10: A Fault-Tolerant Engineered Network. NSDI 2013.
Oct 4
Data center traffic
  1. Benson et al. Network traffic characteristics of data centers in the wild. IMC 2010.
Oct 9
No class (Thanksgiving)
Project proposal drafts due by end of day
Oct 11
Multipath TCP
  1. Raiciu et al. Improving Datacenter Performance and Robustness with Multipath TCP. Sigcomm 2011.
  2. Raiciu et al. How Hard Can It Be? Designing and Implementing a Deployable Multipath TCP. NSDI 2012.
Oct 16
Naming: DNS
  1. Mockapetris and Dunlap. Development of the Domain Name System. Sigcomm 1988.
  2. Bellovin. Using the domain name system for system break-ins. USENIX Security 1995.
Project proposals due by end of day
Oct 18
Host mobility and DNS
  1. Snoeren and Balakrishnan. An End-to-End Approach to Host Mobility. Mobicom 2000.
  2. Adjie-Winoto et al. The design and implementation of an intentional naming system. SOSP 1999.

Oct 23
Distributed Hash Tables and DNS revisited
  1. Stoica et al. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
  2. Ramasubramanian and Sirer. The Design and Implementation of a Next Generation Name Service for the Internet. Sigcomm 2004.
  3. Maymounkov and Mazières. Kademlia: A Peer-to-peer Information System Based on the XOR Metric. IPTPS 2011.
    Freedman et al. Democratizing content publication with Coral. NSDI 2004.

Oct 25
Alternate architectures: indirection
  1. Stoica et al. Internet Indirection Infrastructure. Sigcomm 2002.
Oct 30
Programmable networks
  1. Wetherall. Active network vision and reality: lessons from a capsule-based system. SOSP 1999.
  2. Feamster et al. The Road to SDN: An Intellectual History of Programmable Networks.
  3. Other recommended reading:
    McKeown et al. OpenFlow: enabling innovation in campus networks. CCR 2008.

Ivan away. Amanda and Fabian leading class.
Nov 1
Software defined WAN
  1. Jain et al. B4: Experience with a Globally-Deployed Software Defined WAN. Sigcomm 2013.
Nov 6
Routing in wireless ad hoc nets
  1. Johnson and Maltz. Dynamic Source Routing in Ad Hoc Networks. Mobile Computing 1996.
  2. Karp and Kung. GPSR: Greedy Perimeter Stateless Routing for Wireless Networks. MobiCom 2000.
  3. Other recommended reading:
    Priyantha et al. The Cricket location-support system. MobiCom 2000.

Project meetings with Ivan during this week
Nov 8
Wireless privacy
  1. Pang et al. 802.11 user fingerprinting. MobiCom 2007.
  2. Other recommended reading:
    Borisov et al. Intercepting Mobile Communications: The Insecurity of 802.11. Mobicom 2001.

Nov 13
No class (Remembrance Day)
Nov 15
Internet privacy
  1. Dingledine et al. Tor: The Second-Generation Onion Router.
  2. Murdoch and Danezis Low-cost traffic analysis of Tor. S&P 2005.
  3. Other recommended reading:
    Liu et al. Tor Instead of IP. HotNets 2011.

Nov 20
DDoS and spam
  1. Moore et al. Inferring Internet denial-of-service activity. TOCS 2006.
  2. Ramachandran and Feamster. Understanding the Network-Level Behavior of Spammers. Sigcomm 2008.
  3. Other recommended reading:
    Levchenko et al. Click Trajectories: End-to-End Analysis of the Spam Value Chain. S&P 2011.
    Pang et al. Characteristics of internet background radiation. IMC 2004

Nov 22
  1. Grier et al. Manufacturing Compromise: The Emergence of Exploit-as-a-Service. CCS 2012.
  2. Other recommended reading:
    Caballero et al. Measuring Pay-per-Install: The Commoditization of Malware Distribution. SEC 2011.
    Staniford et al. How to 0wn the Internet in Your Spare Time. USENIX Sec. 2002.

Nov 27
In-class project presentations
Nov 29
In-class project presentations
Dec 11 Final project reports and code due by email
Take-home final exam posted
Dec 15 Final exam solutions due by email

Paper responses

For each of the assigned readings in the schedule above you must compose a 1-2 paragraph response. (The schedule sometimes lists optional readings; you do not need to respond to these). You should post your response on Piazza at least 24 hours before class in the thread with the title/date for the paper.

See paper responses instructions for more information.

You will have access to all the other students' submissions. Please read them, because reading the other responses is a good way for you to get perspective. You can see what you missed (or what other people missed), and whether you agree with their take on the key ideas. It will help to make the class sessions more productive.

The response will be graded using the following scale:

  • 1 : the response engages with the reading in some depth
  • 0 : no response was posted, or it was posted late, or the response is unreadable, off topic, or offers no insight into the reading and/or is a simple re-statement of some text in the reading (e.g., the abstract).

Late responses will not be accepted.


The project must address a non-trivial problem relevant to networked systems. The project can resolve the problem by building a system, by collecting data/carrying out experiments, by developing algorithms and proving them correct, etc. The project must be done in a team of 3-5 students.

Here are some projects ideas (do not limit yourself to these!):

  • Develop and evaluate a new networking abstraction (use tools from PL/SE; apply to Cloud/Mobile/etc)
  • Build a useful phone-based middlebox
  • Build a useful/interesting networked system (personal web cache)
  • Passively collect network traffic and analyze it
  • Perform an active measurement study (Do Canadian ISPs obey net neutrality?)
  • Prototype and evaluate a new routing algorithm in the NS simulator

I especially encourage project proposals that span other areas of computer science. Meet and chat with me if you have an idea, or if you have a topic but need to translate it into a project idea.

There are four project deliverables:

  1. Project proposal: a paper detailing the problem, your proposed approach/solution, and a realistic timeline for your team. See proposal instructions for more information.
  2. Prototype implementation/experiments: must involve substantial development/experimental effort. The final prototype/data must be shared with the instructor (at the end of the term), preferably as an hg or git repository.
  3. Project presentation: a 30 minute presentation describing your project. I encourage you to demo your project (if you built a system) during your talk. Presentation details TBD.
  4. Project report: a paper detailing the problem, your approach/solution, your prototype/experiments, and analysis/evaluation. The final report (due at the end of the term) should be no longer than 10 pages and should resemble a research paper. See final report instructions for more information.

The project is structured as a series of regularly occurring deadlines, listed in the schedule above and below. Do not miss these! The deadline deliverable must be submitted by email to the instructor by 6PM on the day of the deadline.

  • Oct 09: Project proposal drafts
  • Oct 16 : Project proposals
  • Nov 06 : Teams send email to schedule a meeting with Ivan to discuss project status.
  • Nov 27,29 : Project presentations
  • Dec 11 : Project code and reports

Final exam

Details TBD


Final course mark will be based off of:

  • Class participation: 10% (general)
  • Paper responses: 10%
  • Project: 70%
    • Proposal: 20% (team)
    • Presentation: 5% (team) + 5% (individual)
    • Final report: 40% (team)
  • Final exam: 10%

Note that the project must be a team effort. The team's mark for the proposal and final report is the same for all team members. For project presentations each team member will receive a team mark and an individual mark.

The general mark for class participation is based on two factors:

  • Regular course attendance
  • Regular participation in the in-class paper discussions

How to do well in this course

Be prepared to participate in in-class discussion. This is a seminar-style course, which means that most of the class time will be devoted to discussion. The best way to prepare for class is to read the assigned paper(s), write a thoughtful response, and then read and carefully consider the responses submitted by your peers. Continue to work on improving your paper reading abilities.

Plan you reading time. The readings will likely challenge you. I recommend allocating an explicit time slot each week for reading the papers and for thinking about the papers. Note that some readings will be more difficult than others. Jump ahead and note the readings that are particularly long, theoretical, or may be especially challenging to you.

Invest time into the project. Do not underestimate the importance of a thorough (and interesting!) project proposal. Proposal write-ups that are vague or are incomplete will not be accepted. Put in consistent and weekly effort into the project. Rehearse and polish your presentation, and make sure your final report is well-written and conveys its ideas clearly.

Reach out for success and be proactive. There are no explicit office hours for this course. Email and schedule a time to meet with the instructor to discuss the course, the project, etc.

University students often encounter setbacks from time to time that can impact academic performance. Discuss your situation with your instructor or an academic advisor. Learn about how you can plan for success at: For help addressing mental or physical health concerns, including seeing a UBC counselor or doctor, visit:

Academic honesty and collaboration guidelines

The department has a detailed policy regarding collaboration and plagiarism. You must familiarize yourself with this policy.

Paper responses. Paper responses must be written individually. You are free to discuss the readings with other students, but write your reviews on your own. Cite and attribute points from discussions with other students or external sources that you have read in your review.

Projects. You are free to use any code you find in your project. However, a non-trivial fraction of functionality in your prototype/analysis must be constructed by your team. Cite and attribute sources of the code/ideas that you borrow and utilize in your project.