├── .gitignore ├── README.md └── slides ├── Final_review.pdf ├── Final_review.pptx ├── Midterm_recap.pdf ├── Midterm_recap.pptx ├── Midterm_review.pdf ├── Midterm_review.pptx ├── lab01.pdf ├── lab01.pptx ├── lec01_introduction.pdf ├── lec01_introduction.pptx ├── lec02_basic.pdf ├── lec02_basic.pptx ├── lec03_layering.pdf ├── lec03_layering.pptx ├── lec04_web.pdf ├── lec04_web.pptx ├── lec05_cdn.pdf ├── lec05_cdn.pptx ├── lec06_transport.pdf ├── lec06_transport.pptx ├── lec07_tcp.pdf ├── lec07_tcp.pptx ├── lec08_flow_congestion.pdf ├── lec08_flow_congestion.pptx ├── lec09_congestion.pdf ├── lec09_congestion.pptx ├── lec10_ip.pdf ├── lec10_ip.pptx ├── lec11_ip_router.pdf ├── lec11_ip_router.pptx ├── lec12_routing.pdf ├── lec12_routing.pptx ├── lec13_routing_algorithms.pdf ├── lec13_routing_algorithms.pptx ├── lec14_interdomain.pdf ├── lec14_interdomain.pptx ├── lec15_bgp.pdf ├── lec15_bgp.pptx ├── lec16_programmable.pdf ├── lec16_programmable.pptx ├── lec17_link.pdf ├── lec17_link.pptx ├── lec18_LAN.pdf ├── lec18_LAN.pptx ├── lec19_wireless.pdf ├── lec19_wireless.pptx ├── lec20_security.pdf ├── lec20_security.pptx ├── lec21_misc.pdf └── lec21_misc.pptx /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.bak 3 | *.sublime-project 4 | *.sublime-workspace 5 | exams 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EN.601.414/614: Computer Networks 2 | 3 | ## Logistics 4 | 5 | - Instructor: [Xin Jin](http://www.cs.jhu.edu/~xinjin/) 6 | - Teaching assistants: Zhihao Bai 7 | - Course assistants: Ziming Chen, Kun (Ryan) Liu 8 | - Lecture time: Tuesday and Thursday, 1:30-2:45pm 9 | - Location: Zoom (please find the Zoom link on Piazza) 10 | - Credits: 3 credits 11 | - Course discussion: [Piazza](https://piazza.com/jhu/fall2020/en601414614) 12 | - Homework submission: [Gradescope](https://www.gradescope.com/), join the course with entry code 94BWPW 13 | - Office hours 14 | - Tuesday: 2:45-3:45pm, Zoom, Xin Jin 15 | - Thursday: 2:45-3:45pm, Zoom, Zhihao Bai 16 | - Thursday: 8:00-9:00pm, Zoom, Ziming Chen 17 | - Friday: 9:00-10:00am, Zoom, Kun Liu 18 | 19 | ## Course Description 20 | 21 | Topics covered will include application layer protocols (e.g. HTTP, FTP, SMTP), transport layer protocols (UDP, TCP), network layer protocols (e.g. IP, ICMP), link layer protocols (e.g. Ethernet) and wireless protocols (e.g. IEEE 802.11). The course will also cover routing protocols such as link state and distance vector, multicast routing, and path vector protocols (e.g. BGP). The class will examine security issues such as firewalls and denial of service attacks. We will also study DNS, NAT, Web caching and CDNs, peer to peer, and protocol tunneling. Finally, we will explore security protocols (e.g. TLS, SSH, IPsec), as well as some basic cryptography necessary to understand these. Grading will be based on hands-on programming assignments, homeworks and two exams. 22 | 23 | ## Prerequisites 24 | 25 | EN.601.220 and EN.601.229 or permission. Students can only receive credits for one of 601.414/614. 26 | 27 | ## Announcements 28 | 29 | - Tuesday, December 8: [Assignment 4](https://github.com/xinjin/course-net-assignment/tree/master/assignment4) is due. 30 | - Tuesday, November 12: [Assignment 4](https://github.com/xinjin/course-net-assignment/tree/master/assignment4) is out. 31 | - Tuesday, November 9: [Assignment 3](https://github.com/xinjin/course-net-assignment/tree/master/assignment3) is due. 32 | - Tuesday, October 27: [Assignment 3](https://github.com/xinjin/course-net-assignment/tree/master/assignment3) is out. 33 | - Sunday, October 11: [Assignment 2](https://github.com/xinjin/course-net-assignment/tree/master/assignment2) is due. 34 | - Thursday, September 24: [Assignment 2](https://github.com/xinjin/course-net-assignment/tree/master/assignment2) is out. 35 | - Sunday, September 20: [Assignment 1](https://github.com/xinjin/course-net-assignment/tree/master/assignment1) is due. 36 | - Monday, September 7: [Assignment 1](https://github.com/xinjin/course-net-assignment/tree/master/assignment1) is out. 37 | - Monday, September 1: First day of class. Join [Piazza](https://piazza.com/jhu/fall2020/en601414614). 38 | 39 | ## Course Syllabus 40 | 41 | The syllabus and slides will be updated along the way during the semester. 42 | 43 | | Date | Topics | Readings | Notes | 44 | | :------ | :------ | :------ | :------ | 45 | | Tue 09/01 | Introduction ([ppt](slides/lec01_introduction.pptx), [pdf](slides/lec01_introduction.pdf)) | | | 46 | | Thu 09/03 | Basic ([ppt](slides/lec02_basic.pptx), [pdf](slides/lec02_basic.pdf)) | 1.1, 1.3, 1.4 | | 47 | | Tue 09/08 | Protocol Layering ([ppt](slides/lec03_layering.pptx), [pdf](slides/lec03_layering.pdf)) | 1.5 | A1 Out | 48 | | Thu 09/10 | HTTP and the Web ([ppt](slides/lec04_web.pptx), [pdf](slides/lec04_web.pdf)) | 2.2 | | 49 | | Tue 09/15 | CDN and DNS ([ppt](slides/lec05_cdn.pptx), [pdf](slides/lec05_cdn.pdf)) | 2.4 | | 50 | | Thu 09/17 | Exercise and Lab ([ppt](slides/lab01.pptx), [pdf](slides/lab01.pdf)) | | A1 Due | 51 | | Tue 09/22 | Transport Layer ([ppt](slides/lec06_transport.pptx), [pdf](slides/lec06_transport.pdf)) | 3.1, 3.2, 3.3, 3.4 | | 52 | | Thu 09/24 | TCP Basics ([ppt](slides/lec07_tcp.pptx), [pdf](slides/lec07_tcp.pdf)) | 3.5 | A2 Out | 53 | | Tue 09/29 | Flow and Congestion Control ([ppt](slides/lec08_flow_congestion.pptx), [pdf](slides/lec08_flow_congestion.pdf)) | 3.6 | | 54 | | Thu 10/01 | More Congestion Control ([ppt](slides/lec09_congestion.pptx), [pdf](slides/lec09_congestion.pdf)) | 3.7 | | 55 | | Tue 10/06 | Network Layer and IP ([ppt](slides/lec10_ip.pptx), [pdf](slides/lec10_ip.pdf)) | 4.1, 4.3 | A2 Due | 56 | | Thu 10/08 | IP Routers ([ppt](slides/lec11_ip_router.pptx), [pdf](slides/lec11_ip_router.pdf))| 4.2 | | 57 | | Tue 10/13 | Midterm Review ([ppt](slides/Midterm_review.pptx), [pdf](slides/Midterm_review.pdf)) | | | 58 | | Thu 10/15 | Midterm Exam | | | 59 | | Tue 10/20 | Routing Fundamentals ([ppt](slides/lec12_routing.pptx), [pdf](slides/lec12_routing.pdf)) | 5.1 | | 60 | | Thu 10/22 | Fall Break | | | 61 | | Tue 10/27 | Routing Algorithms ([ppt](slides/lec13_routing_algorithms.pptx), [pdf](slides/lec13_routing_algorithms.pdf)) | 5.2, 5.3 | A3 Out | 62 | | Thu 10/29 | Midterm Recap ([ppt](slides/Midterm_recap.pptx), [pdf](slides/Midterm_recap.pdf)) | | | 63 | | Tue 11/03 | IP Addressing and Inter-AS Routing ([ppt](slides/lec14_interdomain.pptx), [pdf](slides/lec14_interdomain.pdf)) | 4.3.3 | | 64 | | Thu 11/05 | BGP ([ppt](slides/lec15_bgp.pptx), [pdf](slides/lec15_bgp.pdf)) | 5.4 | | 65 | | Tue 11/10 | Programmable Networks ([ppt](slides/lec16_programmable.pptx), [pdf](slides/lec16_programmable.pdf)) | [TuringAward'17 Lecture](https://www.youtube.com/watch?v=3LVeEjsn8Ts) | A3 Due | 66 | | Thu 11/12 | Link Layer ([ppt](slides/lec17_link.pptx), [pdf](slides/lec17_link.pdf)) | 6.1, 6.3 | A4 Out | 67 | | Tue 11/17 | Switched LAN ([ppt](slides/lec18_LAN.pptx), [pdf](slides/lec18_LAN.pdf)) | 6.4 | | 68 | | Thu 11/19 | Wireless ([ppt](slides/lec19_wireless.pptx), [pdf](slides/lec19_wireless.pdf)) | 7.1, 7.2, 7.3 | | 69 | | Tue 11/24 | Thanksgiving | | | 70 | | Thu 11/26 | Thanksgiving | | | 71 | | Tue 12/01 | Security ([ppt](slides/lec20_security.pptx), [pdf](slides/lec20_security.pdf)) | 8.1, 8.3, 8.6 | | 72 | | Thu 12/03 | Misc ([ppt](slides/lec21_misc.pptx), [pdf](slides/lec21_misc.pdf)) | | | 73 | | Tue 12/08 | Final Review ([ppt](slides/Final_review.pptx), [pdf](slides/Final_review.pdf)) | | A4 Due | 74 | | Wed 12/16 | Final Exam at 7-9pm ([official schedule](https://studentaffairs.jhu.edu/registrar/wp-content/uploads/sites/23/2020/09/Fall-2020-Final-Exam-Schedule-FINAL-9.30.pdf)) | | | 75 | 76 | ## Textbook 77 | 78 | Computer Networking: A Top-Down Approach (7th edition), by Jim Kurose and Keith Ross. Earlier editions are fine. 79 | 80 | ## Programming Assignments 81 | 82 | - [Assignment 1](https://github.com/xinjin/course-net-assignment/tree/master/assignment1): Socket programming. 83 | - [Assignment 2](https://github.com/xinjin/course-net-assignment/tree/master/assignment2): Reliable transport. 84 | - [Assignment 3](https://github.com/xinjin/course-net-assignment/tree/master/assignment3): Intra-domain routing algorithms. 85 | - [Assignment 4](https://github.com/xinjin/course-net-assignment/tree/master/assignment4): Programmable networks. 86 | 87 | 88 | ## Policies 89 | 90 | ### Academic Integrity Policy 91 | 92 | This course strictly enforces the university and department policies on academic integrity. The details can be found on the [department website](https://www.cs.jhu.edu/academic-integrity-code/). 93 | 94 | ### Late Policy 95 | 96 | - Grace period: 96 hours for the entire semester. 97 | - After the grace period, 25% off for each 24 hours late, rounded up. 98 | 99 | ## Grading 100 | 101 | - Class participation: 20% 102 | - Programming assignments: 40% 103 | - Midterm exam: 20% 104 | - Final exam: 20% 105 | -------------------------------------------------------------------------------- /slides/Final_review.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Final_review.pdf -------------------------------------------------------------------------------- /slides/Final_review.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Final_review.pptx -------------------------------------------------------------------------------- /slides/Midterm_recap.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Midterm_recap.pdf -------------------------------------------------------------------------------- /slides/Midterm_recap.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Midterm_recap.pptx -------------------------------------------------------------------------------- /slides/Midterm_review.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Midterm_review.pdf -------------------------------------------------------------------------------- /slides/Midterm_review.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/Midterm_review.pptx -------------------------------------------------------------------------------- /slides/lab01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lab01.pdf -------------------------------------------------------------------------------- /slides/lab01.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lab01.pptx -------------------------------------------------------------------------------- /slides/lec01_introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec01_introduction.pdf -------------------------------------------------------------------------------- /slides/lec01_introduction.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec01_introduction.pptx -------------------------------------------------------------------------------- /slides/lec02_basic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec02_basic.pdf -------------------------------------------------------------------------------- /slides/lec02_basic.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec02_basic.pptx -------------------------------------------------------------------------------- /slides/lec03_layering.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec03_layering.pdf -------------------------------------------------------------------------------- /slides/lec03_layering.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec03_layering.pptx -------------------------------------------------------------------------------- /slides/lec04_web.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec04_web.pdf -------------------------------------------------------------------------------- /slides/lec04_web.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec04_web.pptx -------------------------------------------------------------------------------- /slides/lec05_cdn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec05_cdn.pdf -------------------------------------------------------------------------------- /slides/lec05_cdn.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec05_cdn.pptx -------------------------------------------------------------------------------- /slides/lec06_transport.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec06_transport.pdf -------------------------------------------------------------------------------- /slides/lec06_transport.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec06_transport.pptx -------------------------------------------------------------------------------- /slides/lec07_tcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec07_tcp.pdf -------------------------------------------------------------------------------- /slides/lec07_tcp.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec07_tcp.pptx -------------------------------------------------------------------------------- /slides/lec08_flow_congestion.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec08_flow_congestion.pdf -------------------------------------------------------------------------------- /slides/lec08_flow_congestion.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec08_flow_congestion.pptx -------------------------------------------------------------------------------- /slides/lec09_congestion.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec09_congestion.pdf -------------------------------------------------------------------------------- /slides/lec09_congestion.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec09_congestion.pptx -------------------------------------------------------------------------------- /slides/lec10_ip.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec10_ip.pdf -------------------------------------------------------------------------------- /slides/lec10_ip.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec10_ip.pptx -------------------------------------------------------------------------------- /slides/lec11_ip_router.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec11_ip_router.pdf -------------------------------------------------------------------------------- /slides/lec11_ip_router.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec11_ip_router.pptx -------------------------------------------------------------------------------- /slides/lec12_routing.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec12_routing.pdf -------------------------------------------------------------------------------- /slides/lec12_routing.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec12_routing.pptx -------------------------------------------------------------------------------- /slides/lec13_routing_algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec13_routing_algorithms.pdf -------------------------------------------------------------------------------- /slides/lec13_routing_algorithms.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec13_routing_algorithms.pptx -------------------------------------------------------------------------------- /slides/lec14_interdomain.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec14_interdomain.pdf -------------------------------------------------------------------------------- /slides/lec14_interdomain.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec14_interdomain.pptx -------------------------------------------------------------------------------- /slides/lec15_bgp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec15_bgp.pdf -------------------------------------------------------------------------------- /slides/lec15_bgp.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec15_bgp.pptx -------------------------------------------------------------------------------- /slides/lec16_programmable.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec16_programmable.pdf -------------------------------------------------------------------------------- /slides/lec16_programmable.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec16_programmable.pptx -------------------------------------------------------------------------------- /slides/lec17_link.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec17_link.pdf -------------------------------------------------------------------------------- /slides/lec17_link.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec17_link.pptx -------------------------------------------------------------------------------- /slides/lec18_LAN.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec18_LAN.pdf -------------------------------------------------------------------------------- /slides/lec18_LAN.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec18_LAN.pptx -------------------------------------------------------------------------------- /slides/lec19_wireless.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec19_wireless.pdf -------------------------------------------------------------------------------- /slides/lec19_wireless.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec19_wireless.pptx -------------------------------------------------------------------------------- /slides/lec20_security.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec20_security.pdf -------------------------------------------------------------------------------- /slides/lec20_security.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec20_security.pptx -------------------------------------------------------------------------------- /slides/lec21_misc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec21_misc.pdf -------------------------------------------------------------------------------- /slides/lec21_misc.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xinjin/course-net/957e70bddcafea1486aca9b13561e2d60410caf5/slides/lec21_misc.pptx --------------------------------------------------------------------------------