Instructor: Anirudh Sivaraman (anirudh@cs.nyu.edu)
TAs: Ulysses Butler (ulysses.butler@nyu.edu), Daniel Qian (daniel.qian@nyu.edu), and Jeff Ma (grader, jm9527@nyu.edu)
This course will introduce students to computer networks, using today's
Internet as an example. Topics covered include socket programming, routing,
forwarding, reliable transmission, congestion control, and medium access
control. The course will involve a good deal of programming in Python.
Familiarity with programming, algorithms, and basic probability is expected.
Prerequisites: Computer Systems Organization (CSCI-UA 201), Basic Algorithms
(CSCI-UA.0310), and Discrete Mathematics (Math UA 120); or permission of the
department.
The short version is: please don't cheat; it makes life difficult for everyone. Instead, use the extra credit or late days, or come talk to the instructor and/or the graders.
In more detail, you must cite any external sources that you make use of for an assignment. External sources include but are not limited to previously published articles, blog posts, ChatGPT output, Stack Overflow or similar sites, conversations with other people, assignment solutions from previous terms, verbatim phrases from the lecture notes, etc. You must provide citations for all work turned in for this class (similar to the acknowledgements section at the bottom of this page or the citations at the end of each lecture note). It is NOT OK to simply paste the assignment question into ChatGPT as a prompt and paste ChatGPT's output as your answer. This policy is not meant to discourage the use of external sources. Instead, it just codifies a standard academic practice.
However, you are responsible for ensuring that you understand any code or written material you turn in for the class. We reserve the right to ask you to explain part or all of your code for any assignment, and failure to adequately explain this will result in a loss in points. Finally, we will investigate any suspected academic misconduct and will report it to the department as required by GSAS policies. We reserve the right to use tools like MOSS to ensure that any code that is submitted is yours. If we find evidence of cheating, we will have to report it. If you're in doubt as to what constitutes cheating, come talk to us.
Week | Monday | Wednesday | Assignment |
---|---|---|---|
Week 1 | Jan 22 Class overview |
Jan 24 Internet overview (1.1, 1.7) Packet switching (1.3.1, 1.3.2) Lecture notes Lecture outline |
|
Week 2 | Jan 29 DNS (2.4/2.5 in the sixth edition) Sockets (2.7) Lecture notes Lecture outline Lecture bullets |
Jan 31 Sockets continued Lecture notes Lecture outline Lecture bullets |
Feb 2: Assignment 1 Google Cloud Setup |
Week 3 | Feb 5 Reliability: Stop and Wait (3.4, 3.5) Lecture notes Lecture outline Lecture bullets |
Feb 7 Reliability: Sliding Window (3.4, 3.5) Lecture notes Lecture outline Lecture bullets Sliding window throughput |
|
Week 4 | Feb 12 Congestion collapse: What if everyone uses a large window? (3.6) Lecture notes Lecture outline Lecture bullets |
Feb 14 Congestion control: Additive Increase Multiplicative Decrease (3.7) Lecture notes Lecture bullets |
Feb 16: Assignment 2 |
Week 5 | Feb 19 No class |
Feb 21 Intra-domain routing (5.1-5.3/4.5-4.6.2 in the sixth edition) Lecture notes Lecture outline Lecture bullets |
|
Week 6 | Feb 26 Inter-domain routing (5.4/4.6.3 in the sixth edition) Lecture notes Lecture bullets |
Feb 28 Packet forwarding, longest-prefix matching (4.2.1/4.3.1 in the sixth edition) Lecture notes Lecture bullets |
|
Week 7 | Mar 4 Midterm review Review questions Answers Glossary |
Mar 6: Midterm Solutions Midterm 2017 Midterm 2017 solutions |
Mar 8: Assignment 3 |
Week 8 | Mar 11 Input and output queued routers (4.2.3-4.2.5/4.3.3-4.3.4 in the sixth edition) Lecture notes Lecture outline |
Mar 13 ALOHA (6.3.2/5.3.2 in the sixth edition) Lecture notes Lecture outline |
|
Week 9 | Mar 25 CSMA/CA, WiFi (7.3/6.3 in the sixth edition) Lecture notes Lecture outline |
Mar 27 The wired physical layer Lecture notes Lecture outline |
Mar 29: Assignment 4 Extra Credit |
Week 10 | Apr 1 The wireless physical layer Lecture notes Lecture outline |
Apr 3 Network security (TLS) Lecture notes Lecture outline |
|
Week 11 | Apr 8 Network surveillance and censorship Lecture notes |
Apr 10 DoS attacks Lecture outline |
Apr 12: Assignment 5 |
Week 12 | Apr 15 Video streaming (9.2/7.2 in the sixth edition): Lecture notes Lecture outline |
Apr 17 Guest lecture by Te-Yuan (TY) Huang from Netflix on video streaming Venue is C15, 60 5th Avenue, just for this lecture |
|
Week 13 | Apr 22 Peer-to-peer applications: BitTorrent (2.5/2.6 in the sixth edition) Lecture notes Lecture outline |
Apr 24 Datacenters Lecture notes Lecture outline |
|
Week 14 | Apr 29 Programmable networks: Software-defined networking (4.4, 5.5/Not available in the sixth edition), programmable routers Lecture notes |
May 1 TBA |
|
Week 15 | May 6 Final review Brief answers Final 2021 Final 2021 answers |
||
Week 16 | May 13: Final 12:00PM - 1:50PM |