Time and Location

Term: Spring 2019

Lectures:

Overview

There are two components to this class:

Readings

Students must write a review for each assigned paper. Each review should be about a paragraph long and discuss in the student’s own words the main idea(s) of each paper, the student’s main criticisms (regarding soundness, methodology, presentation, etc.), and the relevance to current systems or future research directions. David Wetherall at the University of Washington has written a great guide to reviewing papers.

Every review should answer the following three questions:

Submitting Reviews

Reviews are due the day before the lecture in which the reviewed paper will be discussed. Students must submit reviews to the course HotCRP website: usi-advanced-networking19.hotcrp.com

After submitting a review, students can read reviews submitted by other students. Note that students may not update their review; updated reviews will not be graded.

Teams

The class will be broken down into teams of two students. We leave it up to each team to decide how to they would like to divide up the workload amongst themselves. However, we highly encourge close collaboration and consulation so that each member is intimiately familiar with both aspects of the router implementation.

Class Router Interoperation

Routers by nature work cooperatively in large complex environments. In fact, much of the complexity in router design and implementation is inter-operating with routers developed by different teams based on varying assumptions of standard protocol specifications. Inter-operation is such a critical feature of network infrastructure development that it is one of the major focuses of this course. For the midterm milestone, teams must demonstrate interoperability of thier router will all other teams’ routers. The students are responsible for initiating communication between groups, coming up with a cooperative integration plan and ensuring that your routers inter-operate with all other routers in the class. It is our goal that every finished router will be able to route traffic cooperatively on a large shared topology.

We have reserved a portion of the total class points to allocate based on participation during inter-operation. This means that we expect all the students to be pro-active from the start about planning and communicating a solid inter-operation strategy between teams during development. It is a good idea to collectively map out a strategy early on in the quarter and have incremental goals that can tested piece-wise. You may meet during designated course hours (since not all lectures are held), use the class email, or meet during class hours.

Documentation and Deliverables

This is a project based course. There is no midterm or final exam. There is a set of deliverables specified on the course schedule. These deliverables are meant to function as milestones for the main task of the semester: building an internet router. We will be using github extensively throughout the course. Each team will fork the starter code from a github repository and will add the instructors as collaborators on their forks. Teams will “submit” their deliverables by adding a tag to a specific commit, this will allow instructors to evaluate their work easily and efficiently, and it’s also good code development practice.

In addition to the deliverables specified in the course schedule, teams are also asked to maintain a design document as a README file in their project directory. This document is the instructors’ window into the team’s design, so it is important to keep it up to date and organized. The design document may contain diagrams, pseudocode, flow charts, or whatever else might be helpful to explain the key design decisions to the instructors. Every Friday, starting March 29, instructors will review each teams design document to ensure that they are on track and making progress. A portion of the total points is reserved for these documentation checks.

Each team will give a 15 min presentation / demonstration at the end of the course explaining project.