CSCI-UA.0480-009: Computer Networks

Instructor: Anirudh Sivaraman
Grader: Sai Anirudh Kondaveeti

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.

Week 1
Sep 6
Class overview
Week 2
What is the Internet?
Writing an Internet application.
Sep 11
Internet overview (1.1, 1.7)
Packet switching (1.3.1, 1.3.2)
Lecture notes
Lecture outline
Sep 13
DNS (2.4/2.5 in the sixth edition)
Sockets (2.7)
Lecture notes
Lecture outline
Week 3
How are sockets implemented?
Sep 18
Reliability: Stop and Wait (3.4, 3.5)
Lecture notes
Lecture outline
Sep 20
Reliability: Sliding Window (3.4, 3.5)
Lecture notes
Lecture outline
Sliding window throughput
Week 4
How quickly should a node transmit?
Sep 25
Congestion collapse:
What if everyone uses a large window? (3.6)
Lecture notes
Lecture outlines
Sep 27
Congestion control:
Additive Increase Multiplicative Decrease (3.7)
Lecture notes
Week 5
How do packets get from one computer to another?
Oct 2
Intra-domain routing (5.1-5.3/4.5-4.6.2 in the sixth edition)
Lecture notes
Lecture outline
Oct 4
Inter-domain routing (5.4/4.6.3 in the sixth edition)
Lecture notes
Week 6
Guest lecture
Oct 9
No class (fall recess)
Oct 11
Guest lecture by Jeff Mogul from Google
Under the covers: the networks of a cloud provider
Week 7
Oct 16
Midterm review
Review questions
Oct 18
Midterm Solutions
Week 8
Forwarding and routers:
What's inside a router?
Oct 23
Packet forwarding, longest-prefix matching (4.2.1/4.3.1 in the sixth edition)
Lecture notes
Oct 25
Input and output queued routers (4.2.3-4.2.5/4.3.3-4.3.4 in the sixth edition)
Lecture notes
Week 9
Medium access:
How do computers share a network?
Oct 30
ALOHA (6.3.2/5.3.2 in the sixth edition)
Lecture notes
Nov 1
CSMA/CA, WiFi (7.3/6.3 in the sixth edition)
Lecture notes
Week 10
The physical layer:
How does your cable/antenna work?
Nov 6
The wired physical layer
Lecture notes
Nov 8
The wireless physical layer
Lecture notes
Week 11
Current topics in networking
Nov 13
Video streaming (9.2/7.2 in the sixth edition):
Lecture notes
Nov 15
Peer-to-peer applications:
BitTorrent (2.5/2.6 in the sixth edition), Bitcoin
Lecture notes
Week 12
Current topics in networking
Nov 20
Lecture notes
Nov 22
Thanksgiving holiday
Week 13
Current topics in networking
Nov 27
The Internet of things
Lecture notes
Nov 29
Programmable networks:
Software-defined networking (4.4, 5.5/Not available in the sixth edition), programmable routers
Lecture notes
Week 14
Current topics in networking
Dec 4
Network security (TLS)
Lecture notes
Dec 6
Network surveillance and censorship
Lecture notes
Week 15
Demo and final review
Dec 11/12
Demo days for assignment 5
Dec 13
Final review
Week 16: Final exam Dec 20
Final exam: 12:00pm-1:50pm (C15) Solutions
Grading: 5 assignments, each worth 10% (50%), midterm (20%), final exam (30%)
Textbook: Computer Networking: A Top-Down Approach (7th Edition) by Kurose and Ross
Textbook website
Textbook chapters from the 7th and 6th editions are noted in the schedule, where available. Unless noted, the chapters from both editions are the same.
Class timing: MW 12:30-1:45 PM
Office hours: Monday 2 pm to 4 pm, or by appointment, Room 408, 60 Fifth Ave
Room: 60 Fifth Ave C15