[[TOC]]
- Instructor: Muhammad Shahbaz
- Teaching assistants:
- Lecture time: TTh 6:00-7:15pm
- Location: LYNN 1136
- Credit Hours: 3.00
- Course discussion and announcements: Campuswire
- Paper reviews: Perusall
- Project proposal, report, and link to a YouTube video (extra credit): HotCRP
- Development environment: AWS Academy
- Exam and assignment submissions: Gradescope
- Office hours
- Practice study observation (PSO)
- Wednesday 10:30-11:20am,
BRNG B261
, Sharuna Anandraj - Thursday 11:30-12:20pm,
REC 302
, Darwin Kamanuru - Wednesday 12:30-1:20pm,
REC 112
, K M A Solaiman - Friday 11:30-12:20pm,
UNIV 019
, Kai Ling
- Wednesday 10:30-11:20am,
Note: Visit Brightspace for instructions on joining Campuswire, Gradescope, Perusall, HotCRP, and AWS Academy.
We strongly welcome any changes, updates, or corrections to the course page or assignments or else that you may have. Please submit them using the GitLab merge request workflow.
CS536 is a graduate-level course in Computer Networks at Purdue University. In this course, we will explore the underlying principles and design decisions that have enabled the Internet to (inter)connect billions of people and trillions of things on and off this planet---especially under the current circumstances marred by COVID-19. We will study the pros and cons of the current Internet design, ranging from classical problems (e.g., packet switching, routing, naming, transport, and congestion control) to emerging and future trends, like data centers, software-defined networking (SDN), programmable data planes, and clound computing to name a few.
The goals for this course are:
- To become familiar with the classical and emerging problems in networking and their solutions.
- To learn what's the state-of-the-art in networking research: network architecture, protocols, and systems.
- To gain practice in reading research papers and critically understanding others' research.
- To gain experience with network programming using state-of-the-art research platforms.
Notes:
- This syllabus and schedule is preliminary and subject to change.
- Everything is due at 11:59 PM (Eastern) on the given day.
- Abbreviations refer to the following:
- PD: Peterson/Davie (online version)
- KR: Kurose/Ross (6th edition)
- SDN: Peterson/Cascone/O’Connor/Vachuska/Davie (online version)
- 5G: Peterson/Sunay (online version)
- GV: George Varghese (1st edition)
Date | Topics | Notes | Readings |
---|---|---|---|
Week 1 | ACM SIGCOMM Week | ||
Tue, Thu Aug 23, 25 |
SIGCOMM '22 Conference No Classes |
• How SDN will Shape Networking (video) • Assignment 0 and AWS Academy HowTo |
• How to Read a Paper • Internet History |
Week 2 | Course Overview | ||
Tue Aug 30 |
Introduction (ppt, video) | • How to Review a Paper | |
Thu Sep 01 |
A Brief History of the Internet (ppt, video) | • Paper Review 1 due Sep 13 |
• Research Patterns (Optional) |
Week 3 | Network Building Blocks | ||
Tue Sep 06 |
Layering and Protocols I (ppt, video) | • Team selection for the course project due Sep 11 |
• End-to-End Arguments |
Thu Sep 08 |
Layering and Protocols II (video) | • Discuss project ideas and a demo of Assignment 0 | • PD: 1.3 (Architecture) |
Week 4 | The Network API | ||
Tue Sep 13 |
Sockets: The Network Interface (ppt, video) | • Course Project Proposal due Oct 04 • Assignment 1 due Oct 07 |
• PD: 1.4 (Software) • Beej's Guide (Optional) |
Thu Sep 15 |
Transport: Process-to-Process Communication (ppt, video) | • Paper Review 2 due Sep 27 |
• PD: 2.5 (Reliable Transmission) • PD: 5.1 - 5.2 (UDP, TCP) |
Week 5 | Local Area Networks | ||
Tue Sep 20 |
Direct Links: The Wire Interface (ppt, video) | • PD: 2.1 - 2.6 (Technology, Encoding, Framing, ...) | |
Thu Sep 22 |
Indirect Links: Internetworking (L2/L3) (ppt, video) | • PD: 3 (Internetworking) | |
Week 6 | Software Defined Networks | ||
Tue Sep 27 |
Network Abstractions and Virtualization (ppt, video) | • SDN: 3 (Basic Architecture) | |
Thu Sep 29 |
Guest Lecture: Open vSwitch Design and the Future by Ben Pfaff (ppt, video) | • Paper Review 3 due Oct 13 |
• Open vSwitch (NSDI '15) |
Week 7 | Network Addressing and Configuration | ||
Tue Oct 04 |
Flat vs Classful vs Classless Addressing (ppt, video) | • PD: 3.3.3 - 3.3.9 (Addressing, DHCP ...) | |
Thu Oct 06 |
Guest Lecture: Mininet: Fun with Networking and (Lightweight) Virtualization by Bob Lantz (ppt, video) | • A Network in a Laptop (HotNets '10) | |
Week 8 | Datacenter Networks | ||
Tue Oct 11 |
October Break No Class |
• Assignment 2 due Nov 04 |
|
Thu Oct 13 |
Origins and Architectures (ppt, video) | • MapReduce and an interview with Jeff Dean and Sanjay Ghemawat on why it came into being (video) | |
Week 9 | 5G & Programmable Networks I | ||
Tue Oct 18 |
Guest Lecture: Overview of 5G & Aether Platform by Ajay Thakur (ppt, video) | • 5G: 3 (Basic Architecture) | |
Thu Oct 20 |
Guest Lecture: High-speed Programmable Packet Processing and Innovation in Networking by Vladimir Gurevich (video) | • Paper Review 4 due Nov 03 |
• SDN: 4 (Bare-Metal Switches) |
Week 10 | Wide Area Networks I | ||
Tue Oct 25 |
Midterm Exam | ||
Thu Oct 27 |
Direct Networks: Intradomain Routing (ppt, video) | PD: 3.4 (Routing) | |
Week 11 | Wide Area Networks II | ||
Tue Nov 01 |
Indirect Networks: Interdomain Routing (ppt, video) | • PD: 4.1 (Global Internet) | |
Thu Nov 03 |
Indirect Networks: Peering and IXPs (ppt, video) | • KR: 4.6.3 (Inter-AS Routing: BGP) • Where is Internet Congestion Occuring? |
|
Week 12 | Network Diagnostics and Data Persistence | ||
Tue Nov 08 |
Guest Lecture: How to Diagnose Performance Problems in Networks by Radhika Mysore (ppt, video) | • Paper Review 5 due Nov 20 |
|
Thu Nov 10 |
Guest Lecture: Accelerating Memory and Storage for Datacenter Applications by Sihang Liu (video) | • Assignment 3 due Dec 06 |
|
Week 13 | 5G & Programmable Networks II | ||
Tue Nov 15 |
Router Design: Lookup and Scheduling (ppt, video) | • KR: 4.3 (What's Inside a Router?) • GV: 10 (Exact-Match Lookups), 11 (Prefix-Match Lookups), 13 (Switching) (Optional) |
|
Thu Nov 17 |
Guest Lecture: P4 Language and Compiler Design by Mihai Budiu (ppt, video) | ||
Week 14 | Resource Allocation | ||
Tue Nov 22 |
Transport: Congestion Control (ppt, video) | • Paper Review 6 due Dec 09 |
• PD: 6.1 - 6.4 (Issues, Queuing, TCP, ...) |
Thu Nov 24 |
Thanksgiving Holiday No Class |
||
Week 15 | Project Presentations I | ||
Tue Nov 29 |
Final Review (video) | ||
Thu Dec 01 |
Project Presentations | ||
Week 16 | Project Presentations II | ||
Tue Dec 06 |
Guest Lecture: TBD by Daniel Firestone | ||
Thu Dec 08 |
Project Presentations | ||
Week 17 | Exam Week | ||
Thu Dec 15 |
Final Exam |
This course assumes that students have a basic understanding of data structures and algorithms and experience with programming languages like C/C++ and Python. Please see CS 240, CS 380, or similar courses at Purdue for reference.
- Computer Networks: A Systems Approach by L. Peterson and B. Davie (Online Version)
- Computer Networking: A Top-Down Approach by J. Kurose and K. Ross (6th Edition)
Other optional but interesting resources:
- Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices (Purdue Library)
- Software-Defined Networks: A Systems Approach by L. Peterson, C. Cascone, B. O’Connor, T. Vachuska, and Bruce Davie (Online Version)
- 5G Mobile Networks: A Systems Approach by L. Peterson and O. Sunay (Online Version)
- TCP Congestion Control: A Systems Approach (Online Version)
- Operating an Edge Cloud: A Systems Approach (Online Version)
- Sytems Approach - Blog
- Assignment 0: Virtual networks using Mininet and ONOS
not graded
- Assignment 1: File and Message Transmission using Sockets and 3-Way Handshake
due Oct 07
- Assignment 2: From Bridging to Switching with VLANs
due Nov 04
- Assignment 3: From Bridging to Switching using P4's Match-Action Tables (MATs)
due Dec 06
Starting Week 3, we will be reading and discussing six research papers on topics ranging from network protocols, systems, and architectures. The class will take place on Thursdays, and we will be discussing one paper every other week -- so we can discuss them in-depth. You should closely read each paper and add comments and questions along with a 1-page summary of the paper on Perusall by the due date below. Please plan to provide at least five comments or questions for each paper on Perusall ahead of the associated class and follow the comments from other students and the course staff. Please come to class prepared with several points that will substantially contribute to the group discussion.
Note: General tips on reading papers are here.
Grades for your class participation and paper reviews will be determined based on attendance and, more importantly, substantial contributions to paper discussions both on Perusall and in class.
Note:
- What we expect you to know and prepare before each discussion is here.
- Submit paper summaries via Perusall Notes and share it with your respective PSO TA and the Professor.
- Paper 1: A Protocol for Packet Network Intercommunication
due Sep 13
- Paper 2: Internet Routing Instability
due Sep 27
- Paper 3: The Road to SDN: An Intellectual History of Programmable Networks
due Oct 13
- Paper 4: Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
due Nov 03
- Paper 5: Azure Accelerated Networking: SmartNICs in the Public Cloud
due Nov 20
- Paper 6: Democratizing the Network Edge
due Dec 09
Note: We will pick the top-5 scoring papers for each student.
There will be one midterm and a final exam based on course content (lectures, assignments, and paper readings).
- Midterm Exam
on Oct 25
- Final Exam
on Dec 15
Format: in class, open book
See a list of past projects here.
The course includes a semester-long systems-building project that should be done in groups (either of size 5 or six, to be determined by the instructor after the course size is finalized) and must involve some programming. All group students are expected to share equally in the implementation. Students are expected to:
- Reimplement or reproduce results from a paper we read during the semester or on a similar topic OR
- Implement novel research projects, but such projects must be closely related to the material and topics covered in the course
Note: If you are uncertain about the project's satisfiability, please contact the instructor as soon as possible.
There are two types of projects in this class: reproducing others' research results and novel research. Proposals should be submitted via HotCRP.
For reproducing research projects, students should include the following information in their proposal.
- Background
- Name of the paper
- A brief summary of the paper's problem domain/challenge, goals, and technical approach
- Summary of paper's current implementation, evaluation strategy, and key results
- Plan
- Proposed implementation (language, framework, etc.)
- Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
- Key results trying to reproduce
- Discussion of how you can compare your findings (quantitatively, qualitatively) with previously published results
- New questions/settings trying to evaluate that are not addressed in the original paper
- As the final plan mentions, it is important when reading a paper to ask what questions and/or settings are not included in an evaluation. For example, what happens if a workload shifts from being uniformly distributed to Zipfian? What if failures occur differently than evaluated? What if the data in a big data processing system has a different structure than evaluated (e.g., the "graph" that the data represents has a different edge distribution)? And so forth ...
For novel research projects, students should include the following information.
- Background
- What problem is research attempting to solve?
- Why is the problem important?
- How does this relate directly to topics or papers covered in class
- Novelty
- What is the current state-of-the-art in related work, and why are they insufficient?
- What is your (novel) technical insight/approach to solving this problem
- Plan
- Proposed implementation (language, framework, etc.)
- Key questions that evaluation will address
- Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
- What does "success" look like? How do you quantify/compare results to alternative approaches / related work?
Note: If students are concerned that their proposed project might not be sufficiently relevant to CS 536 to satisfy the topical criteria, please contact instructors earlier than later. Proposals not closely related to the topical matter may be rejected outright as inappropriate.
The project proposal from above will be finalized. This may involve some back-and-forth between instructors and the group (likely via Campuswire).
The final report will be in the form of a paper written in Latex and submitted as a PDF file via HotCRP.
Notes:
- For reproducible projects, the report should have a particular focus and discussion on the evaluation (setup, comparative results, discussion of differences, and so forth).
- The project writeup should be six pages of double-column, single-spaced, 10-point font (excluding references, which can go on extra pages), similar in spirit to a workshop paper. Papers must be typeset in LaTeX using the ACM
sigconf
template.
- Team selection
due Sep 11
- Project proposal
due Oct 04
- Project report
due Dec 09
& presentationson Dec 01, 08
- Blogpost and/or YouTube video (extra credit)
due Dec 09
- Class participation: 5%
- Programming assignments: 20%
- Paper questions and summaries: 10%
- Midterm exam: 10%
- Final exam: 25%
- Course project: 30% (and 5% extra credit for video/demo posted on YouTube.)
- Grace period: 24 hours for the entire semester.
- After the grace period, 25% off for every 24 hours late, rounded up.
If you have extenuating circumstances that result in an assignment being late, please let us know about them as soon as possible.
We will default to Purdue's academic policies throughout this course unless stated otherwise. You are responsible for reading the pages linked below and will be held accountable for their contents.
By taking this course, you agree to take the Purdue Honors Pledge: "As a boilermaker pursuing academic excellence, I pledge to be honest and true in all that I do. Accountable together - we are Purdue."
Please visit Protect Purdue Plan or Fall 2022 resources for most up-to-date guidelines and instructions.
This class borrows inspirations from several incredible sources.
- The final project structure and accompanying instructions are inspired and adapted from my Ph.D. advisor, Jen Rexford's COS 561 class of Fall 2020 at Princeton and Nick McKeown's CS 244 class at Stanford.
- The lecture slides' material is partially adapted from my Ph.D. advisors, Jen Rexford's COS 561 class and Nick Feamster's COS 461 class at Princeton.
- Programming assignment 1 is based on a similar assignment offered at Princeton by Nick Feamster.