CS244: Advanced Topics in Networking, Spring 2020 [The new web page for 2022] CS244: Advanced Topics in Networking, Spring 2020 CS244 is a graduate course in computer networks. In this class we'll explore the principles and design decisions which underly the Internet. We'll explore the pros and cons of the current design, and give some thought to how we can make the Internet better in future. The goals for this class are: To become familiar with the state of the art in networking research: network architecture, protocols and systems. To gain some practice in reading research papers and critically understanding the research of others. To gain experience with network programming using state-of-the-art research platforms. Course Information Professors: Sachin Katti and Nick McKeown TA: Bruce Spang Lectures: Tue, Thu 9:00AM - 10:20AM on Zoom (link to the Zoom is on Canvas) Office Hours: (links to office hour Zooms are on Canvas) Sachin: Fri. 2-3pm Nick: Weds. 10-11am Bruce: Thurs. 1-2pm and by appointment Communication: We use Piazza for discussion. Assignments: All course assignments should be submitted via Canvas. Prerequisites: This course assumes a basic understanding of topics in networking, such as packet-switching, routing, socket programming, and congestion control. It is also helpful to know how to program in Python. We suggest taking CS 144, EE 284, or equivalent. For a refresher, you could look at the textbook “Computer Networking: A Top-Down Approach” by J. Kurose and K. Ross or “Computer Networks: A Systems Approach” by L. Peterson and B. Davie. Schedule and Papers 4/7 - Introduction Speaker: Sachin and Nick [Slides] How to Read a Paper (Optional) S. Keshav 4/9 - Architecture and Principles Speaker: Sachin [Slides] The Design Philosophy of the DARPA Internet Protocols D. D. Clark A Brief History of the Internet (Optional) B. Leiner, V. Cerf, D. Clark, R. Kahn, L. Kleinrock, D. Lynch, J. Postel, L. Roberts, S. Wolff On Distributed Communications Networks (Optional) P. Baran Assignments Assignment 1 released, due Monday, April 27 at 5pm 4/14 - Architecture and Principles Speaker: Sachin [Slides] End-to-End Arguments in System Design J. H. Saltzer, D. P. Reed, D. D. Clark 4/16 - Congestion Control Speaker: Nick [Slides] Congestion Avoidance and Control V. Jacobson and M. J. Karels Flow Rate Fairness: Dismantling a Religion (Optional) B. Briscoe 4/21 - Congestion Control II Speaker: Keith Winstein [Slides] Pantheon: the training ground for Internet congestion-control research F. Yan, J. Ma, G. Hill, D. Raghavan, R. Wahby, P. Levis, K. Winstein Congestion-Control Throwdown M. Schapira and K. Winstein 4/23 - Switching Speaker: Nick [Slides (ppt)] [Slides (pdf)] High-speed Switch Scheduling for Local-area Networks T. Anderson et al. Assignments Assignment 1 due next Monday, April 27 at 5pm 4/28 - Programmable Forwarding Speaker: Nick [Slides (ppt)] [Slides (pdf)] Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN Bosshart et al. 4/30 - SDN Speaker: Nick [Slides (ppt)] [Slides (pdf)] OpenFlow: Enabling Innovation in Campus Networks N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, J. Turner Ethane: Taking Control of the Enterprise M. Casado, M. Freedman, J. Pettit, J. Luo, N. McKeown, S. Shenker Assignments Final project proposal due next Monday, May 4th at 11:59pm 5/5 - SDN II Speaker: Nick [Slides (ppt)] [Slides (pdf)] Network Virtualization in Multi-tenant Datacenters Koponen et al. From Ethane to SDN and Beyond (Optional) M. Casado, N. McKeown, S. Shenker 5/7 - Buffer Sizing Speaker: Nick [Slides (ppt)] [Slides (pdf)] Sizing Router Buffers G. Appenzeller et al. Sizing Router Buffers (Redux) McKeown et al. 5/12 - Security Speaker: Zakir Durumeric [Slides] A Detailed Look at RFC 8446 (a.k.a. TLS 1.3) Nick Sullivan Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice Adrian et al. 5/14 - Edge Networking Speaker: Sachin Taking the Edge off with Espresso: Scale, Reliability and Programmability for Global Internet Peering K.K. Yap et al. 5/19 - Midterm No readings 5/21 - Data centers Speaker: Arjun Singh Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network Singh et al. Assignments Intermediate progress report due tomorrow Friday, May 22nd at 11:59pm 5/26 - Wireless Speaker: Sachin Architecture and Evaluation of an Unplanned 802.11b Mesh Network J. Bicket, D. Aguayo, S. Biswas, R. Morris 5/28 - Wireless II Speaker: Sachin Picasso: Flexible RF and Spectrum Slicing S. Hong, J. Mehlman, S. Katti 6/2 - ML for Networking Speaker: Mohammad Alizadeh Learning Scheduling Algorithms for Data Processing Clusters H. Mao, M. Schwarzkopf, S.B. Venkatakrishnan, Z. Meng, M. Alizadeh 6/4 - Video Streaming Speaker: TY Huang A Buffer-Based Approach to Rate Adaptation: Evidence from a Large Video Streaming Service TY Huang, R. Johari, N. McKeown, M. Trunnell, M. Watson 6/9 - Final Project Presentations Speaker: You! No readings 6/11 - Final reports due (no class) No readings Assignments Final report due at 5pm Organization The class consists of two main activities: Papers and discussions: We will read 1-2 papers for each class (i.e. 2-4 papers per week), and discuss them in class. You will likely need to spend a few hours reading each paper and making notes, to prepare you to discuss them in class. This class only works if you come prepared to discuss the papers in detail, which is why 15% of your grade is for in-class participation. Do not take this course unless you are willing and able to do a lot of reading. Reproducing research: You will do two projects which aim to reproduce a networking result: a guided assignment and an open-ended project. We've found that reproducing research results is a good way to get started doing networking research and contributing to the networking community. You can see example reproductions on the Reproducing Network Research blog, or read more about learning networking by reproducing research in our paper. Grading Policy In keeping with Stanford's policy, we will be grading on a CR/NC basis for Spring 2020. If you would like to use the class as part of a breadth requirement, please email the course staff so we can explain how it will work. Critiques Before each class, you must submit a short critique of the required readings on Canvas (under the Quizzes tab). Critiques will be accepted until 11:59pm the night before class. Canvas will allow submissions a few minutes late, and these may or may not be graded. There are prompts on Canvas to help frame your critique. As you read the paper, keep in mind that for the most part, these are classic, high-impact papers in networking. It's always possible to find flaws in a paper, and you will notice flaws in these papers, but it will be more interesting and rewarding to focus on their strengths. In-class Participation Is class participation based solely on attendance? No. Attendance is a necessary but not sufficient condition for good class participation. We will not take official roll during lecture, but because we make the effort to know everyone in the class we will notice if a student is frequently absent. Beyond attendance, we evaluate class participation by observing how prepared students are to discuss the covered paper when they come to class. We understand that this will be an unusual and stressful quarter outside of class. You may be sick, have to take some time to deal with family or personal matters, may have internet problems, and so on. We will excuse absences, but please let us know about them in advance or as soon possible afterwards. If there's anything we can do to help you or accomodate your learning, please let us know! Programming Assignments We will have two programming assignments throughout the quarter. Programming Assignment 1: Jellyfish Reproduction Final Project: Reproducing research. You and a partner will reproduce the main result from a recent networking paper. We will be posting your reproductions on the Reproducing Network Research blog. You have one free 24 hour extension for either the programming assignment or final project. You must email the TA before the deadline. After this, if you hand in an assignment 0-24 hours late, you will lose 25% of the grade. 24-48 hours late and you will lose 50% of the grade. 48-72 hours late you will lose 75% of the grade. After 72 hours you will receive a zero. If you have extenuating circumstances that result in an assignment being late, please let us know about them as soon as possible. Exam There will be one midterm exam. We will release a practice exam later in the quarter. The exam will test your understanding of papers and topics covered so far in the class. Page generated 2020-05-24 16:07:10 PDT, by jemdoc.