# eecs489 **Repository Path**: wang_ting_jun/eecs489 ## Basic Information - **Project Name**: eecs489 - **Description**: EECS 489: Computer Networks @ the University of Michigan - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EECS 489: Computer Networks (F’19) ## Administrivia - Catalog Number: 29083 - Lectures: 1109 FXB, MW: 4:00 PM – 5:30 PM - Discussion 1: 2150 DOW, F 9:30 AM – 10:30 AM - Discussion 2: 1014 DOW, Th 5:00 PM – 6:00 PM - Discussion 3: 1014 DOW, F 12:30 PM – 1:30 PM ### Team | Member (uniqname) | Role | Office Hours | | :---------------- | :--- | :----------- | | [Mosharaf Chowdhury](http://www.mosharaf.com/) (mosharaf) | Faculty | 4820 BBB, W: 2:00 PM - 4:00 PM and by appt. | Leonard Lin (yklin) | GSI | 4917 BBB, F: 10:30 AM - 12:30 PM | | Joseph Buiteweg (joebb) | GSI | 1637 BBB, Tu: 11:00 AM - 1:00 PM | ### Piazza All communication regarding this course must be via [Piazza](https://piazza.com/umich/fall2019/eecs489/). This includes questions, discussions, announcements, as well as private messages. ## Lecture Recordings Available at [https://caen.engin.umich.edu/lecrecording/students/](https://caen.engin.umich.edu/lecrecording/students/). ## Course Description EECS 489 takes a top-down approach to explore how networks operate and how network applications are written. We study how popular distributed systems such as video streaming, content distribution networks (CDNs), and cloud computing systems work in the *application layer*. We explore how these applications transfer data between their components and end users over the Internet using *transport layer* protocols such as TCP and UDP. We go deeper to understand what keeps the transport layer running (hint: the *network layer* routes packets for them); specifically, we look at how packets are routed and how routers work. Finally, we dive one more layer down to understand how the *link layer* transfer packets using Ethernet. In addition to cutting through the layers and covering the basics, we learn about the state-of-the-art topics in networking such as datacenter networks and software-defined networking (SDN). From a practical point of view, we learn what sockets are and how to use them. And we write code. We write code to implement various protocols, to build client-server applications, HTTP proxies, and video distribution applications, and to learn how to use SDNs. ### Prerequisite The working prerequisite for this course is EECS 281 (Data Structures and Algorithms) even though officially it is EECS 482 (Operating Systems). The current curriculum of this course does not assume or require any prior knowledge of EECS 482. Nonetheless, you must have a good working knowledge of C/C++ and Unix family of operating systems. ### Optional Textbook - Kurose and Ross, Computer Networking: A Top-Down Approach, 7th. or Earlier Editions, Pearson, 2016. ISBN 978-0133594140. ## Tentative Schedule | Week of | Monday | Wednesday | Optional Readings | Assignments |:---------|:------:|:---------:|:------------------|:----------: | 09/02/19 | **No Class** | [Introduction](Slides/090419.pptx) | | 09/09/19 | [Overview](Slides/090919.pptx) | [Protocol Layering](Slides/091119.pptx) | 1.1, 1.3, 1.4, 1.5 | A1 Out | 09/16/19 | [HTTP and the Web](Slides/091619.pptx) | [DNS and CDN](Slides/091819.pptx) | 2.2, 2.4 | 09/23/19 | [Video Streaming and Cloud Systems](Slides/092319.pptx) | [Transport Layer](Slides/092519.pptx) | 2.6, 3.1, 3.2, 3.3, 3.4 | A1 Due | 09/30/19 | [TCP Basics](Slides/093019.pptx) | [Flow and Congestion Control](Slides/100219.pptx) | 3.5, 3.6 | A2 Out | 10/07/19 | [More Congestion Control](Slides/100719.pptx) | [Network Layer and IP](Slides/100919.pptx) | 3.7, 4.1, 4.3.1, 4.3.2, 4.3.5 | 10/14/19 | **No Class** | [Midterm Review](Slides/101619.pptx) | | 10/21/19 | **MIDTERM
MONDAY 10/21/19
6 PM - 8 PM** | [IP Routers](Slides/102319.pptx) | 4.2 | A2 Due
A3 Out | 10/28/19 | [Routing Fundamentals](Slides/102819.pptx) | [Routing Algorithms](Slides/103019.pptx) | 5.1, 5.2, 5.3 | | 11/04/19 | [IP Addressing and Inter-AS Routing](Slides/110419.pptx) | [BGP](Slides/110619.pptx) | 4.3.3, 5.4 | 11/11/19 | **No Class** | [SDN](Slides/111319.pptx) | 4.4, 5.5 | A3 Due | 11/18/19 | [Link Layer](Slides/111819.pptx) | [Switched LAN](Slides/112019.pptx) | 6.1, 6.3, 6.4 | A4 Out | 11/25/19 | [Datacenter Networks](Slides/112519.pptx) | **No Class** | 6.6 | 12/02/19 | [Networking in Datacenters](Slides/120219.pptx) | [Wireless](Slides/120419.pptx) | 6.6, 7.1, 7.2, 7.3 | 12/09/19 | [Final Review](Slides/120919.pptx) | **No Class** | | A4 Due | 12/16/19 | **FINAL
THURSDAY 12/19/19
1:30 PM - 3:30 PM
FXB 1008 (Last name A to G) 
FXB 1012 (Last name H to L)
FXB 1109 (The rest)** | | | ## Policies ### Assignments Four assignments will be assigned during the semester; the first one will be done individually and the rest will be in groups. Visit [this page](Assignments) for detailed policies on assignments (including late submission policies) as well as the assignments themselves. ### Exams There will be two exams during the semester: a midterm exam and the final exam. You are expected to take both exams at the scheduled times. If you miss an exam for reasons other than a documented medical or personal emergency, you will receive a zero for that exam. If you anticipate a conflict with an exam time, talk to the instructor **at least one month** before the exam date. Exam dates are given at the beginning of the semester so you can avoid scheduling job interviews or other commitments on those days. Outside commitments are not considered a valid reason for missing an exam. ### Attendance and Discussion Sections You are expected to attend lecture regularly and to be at your discussion section weekly. Discussion section meetings will typically involve active participation by discussion, group exercises, or question-and-answer sessions. ## Grading Final grades will be based on the total points earned on the assignments and exams. You must average a passing grade on the exams to receive a passing grade for the class. Factors such as class participation may be used to adjust your final grade, especially if it falls on a borderline. The tentative point breakdown is: | | Allocation | -------------| ----------: | Assignment 1 | 5% | Assignment 2 | 15% | Assignment 3 | 15% | Assignment 4 | 15% | Midterm Exam | 25% | Final Exam | 25%