NatalieTanML / cs536-assignments

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

drawing

CS 536: Data Communication and Computer Networks (Fall 2022)

[[TOC]]

Logistics

  • 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
    • Wednesday 2:00-3:00pm, Zoom, Muhammad Shahbaz
    • Tuesday 3:30-4:30pm, Zoom, Sharuna Anandraj
    • Thursday 4:00-5:00pm, Zoom, Darwin Kamanuru
    • Wednesday 3:00-4:00pm, Zoom, K M A Solaiman
    • Friday 2:30-3:30pm, Zoom, Kai Ling
  • 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

Note: Visit Brightspace for instructions on joining Campuswire, Gradescope, Perusall, HotCRP, and AWS Academy.

Suggesting edits to the course page and more ...

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.

Course Description

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

Prerequisites

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.

Recommended Textbooks

  • 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

Programming Assignments

  • 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

Paper Reading and Discussion

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.

Reading list

Note: We will pick the top-5 scoring papers for each student.

Midterm and Final Exams

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

Course Project

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:

  1. Reimplement or reproduce results from a paper we read during the semester or on a similar topic OR
  2. 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.

Project proposal

There are two types of projects in this class: reproducing others' research results and novel research. Proposals should be submitted via HotCRP.

a. Reproducing research

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

b. Novel research

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.

Project selection

The project proposal from above will be finalized. This may involve some back-and-forth between instructors and the group (likely via Campuswire).

Final report

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.

Deliverables

  • Team selection due Sep 11
  • Project proposal due Oct 04
  • Project report due Dec 09 & presentations on Dec 01, 08
  • Blogpost and/or YouTube video (extra credit) due Dec 09

Grading

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

Policies

Late submission

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

Academic integrity

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.

Honor code

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

COVID-19 and quarantine + isolation!

Please visit Protect Purdue Plan or Fall 2022 resources for most up-to-date guidelines and instructions.

Acknowledgements

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.

About

License:Apache License 2.0


Languages

Language:Python 43.9%Language:P4 22.1%Language:Makefile 17.8%Language:Shell 11.3%Language:C 4.9%