CSCI-UA.0480-062: Computer Networks, Spring 2024

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.


WeekMondayWednesdayAssignment
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