CSCI-UA.0480-062: Computer Networks, Fall 2021

Instructor: Anirudh Sivaraman (anirudh@cs.nyu.edu)
TAs: Jessica Berg (jb7399@nyu.edu) and Fabian Ruffy (fruffy@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 Sep 8
Class overview
Week 2 Sep 13
Internet overview (1.1, 1.7)
Packet switching (1.3.1, 1.3.2)
Lecture notes
Lecture outline
Sep 15
DNS (2.4/2.5 in the sixth edition)
Sockets (2.7)
Lecture notes
Lecture outline
Lecture bullets
Sep 17: Assignment 1
Week 3 Sep 20
Sockets continued
Lecture notes
Lecture outline
Lecture bullets
Sep 22
Reliability: Stop and Wait (3.4, 3.5)
Lecture notes
Lecture outline
Lecture bullets
Week 4 Sep 27
Reliability: Sliding Window (3.4, 3.5)
Lecture notes
Lecture outline
Lecture bullets
Sliding window throughput
Sep 29
Congestion collapse:
What if everyone uses a large window? (3.6)
Lecture notes
Lecture outline
Lecture bullets
Oct 1: Assignment 2
Week 5 Oct 4
Congestion control:
Additive Increase Multiplicative Decrease (3.7)
Lecture notes
Lecture bullets
Oct 6
Intra-domain routing (5.1-5.3/4.5-4.6.2 in the sixth edition)
Lecture notes
Lecture outline
Lecture bullets
Week 6 Oct 12
Inter-domain routing (5.4/4.6.3 in the sixth edition)
Lecture notes
Lecture bullets
Oct 13
Packet forwarding, longest-prefix matching (4.2.1/4.3.1 in the sixth edition)
Lecture notes
Lecture bullets
Week 7 Oct 18
Midterm review
Review questions
Answers
Glossary
Oct 20:
Midterm
Solutions
Midterm 2017
Midterm 2017 solutions
Oct 22: Assignment 3
Week 8 Oct 25
Packet forwarding continued; 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
Oct 27
ALOHA (6.3.2/5.3.2 in the sixth edition)
Lecture notes
Lecture outline
Week 9 Nov 1
CSMA/CA, WiFi (7.3/6.3 in the sixth edition)
Lecture notes
Lecture outline
Nov 3
The wired physical layer
Lecture notes
Lecture outline
Nov 5: Assignment 4
Week 10 Nov 8
The wireless physical layer
Lecture notes
Lecture outline
Nov 10
Network security (TLS)
Lecture notes
Lecture outline
Week 11 Nov 15
Network surveillance and censorship
Lecture notes
Nov 17
DoS attacks
Lecture outline
Week 12 Nov 22
Video streaming (9.2/7.2 in the sixth edition):
Lecture notes
Lecture outline
Nov 24
No class
Instead, watch Tor video by Nick Mathewson
Nov 26: Assignment 5
Week 13 Nov 29
Peer-to-peer applications:
BitTorrent (2.5/2.6 in the sixth edition), Bitcoin
Lecture notes
Lecture outline
Dec 1
Datacenters
Lecture notes
Lecture outline
Week 14 Dec 6
Programmable networks:
Software-defined networking (4.4, 5.5/Not available in the sixth edition), programmable routers
Lecture notes
Dec 8
Final review
Brief answers
Week 15 Dec 13: Final