CIS 553: Networked Systems

Spring 2019

Instructor: Vincent Liu
Room: Towne 100
Time: Monday and Wednesday 4:30pm-6:00pm
External Sites: Piazza and Canvas
Office hours: Wednesday 3:30pm-4:30pm (Levine 574) or by appointment

Teaching assistants:

Course Description

CIS553 is a graduate course in Computer Networking that gives a top-to-bottom treatment of computer networking.

The course begins with an overview of communications systems, then progresses through a series of logical "layers", each of which carries out roles in the networked system. We start with (1) "physical layers" such as radio, optical fiber and copper wiring, and rise through a series of functional abstractions (naming, addressing, routing, ...) that comprise a "stack" of protocol layers used by applications. These include: (2) the link layer which uses the physical layer to communicate, and manages device identity and access to the medium; (3) the network layer which connects sets of participants using link layers; (4) the transport layer which provides services required by applications such as reliable byte-streams.

The course will involve six programming projects and two written exams.

Undergrads and other students who need a permit should add themselves to the waitlist. The waitlist will be processed in batches closer to the beginning of the semester and shortly after the start of the semester.

Optional Textbooks

Computer Networks: A Systems Approach (5th Edition). Larry L. Peterson and Bruce S. Davie.
Computer Networks (5th Edition). Andrew S. Tanenbaum and David J Wetherall.
Computer Networking: A Top-Down Approach (6th Edition). James F. Kurose and Keith W. Ross


CIS 380 (Operating Systems), CIS 455/555 (Internet and Web Systems), equivalent parallel programming experience, or permission of instructor. Course projects will be in C++, Python, and P4 but prior experience in these languages is not strictly necessary.


Late Policy

You start with of 72 "slip" hours, subtracted in 1-hour increments. If your balance reaches zero, you will receive half credit for any assignment that you turn in, as long as you turn it in within one week of the due date.


Schedule is in flux. Please check back regularly.

Optional readings refer to the Peterson/Davie book, unless otherwise specified. Equivalent material can be found in the other textbooks.
Date Topic Remarks Optional Reading
Jan. 16 Class Introduction Internet History
Jan. 21 No class (Martin Luther King, Jr. Day)
Jan. 23 Internet Architecture Design Goals, 1
Jan. 28 Layering and the Physical Layer Project 1 Parts A+B Due
(VM Setup, Getting to Know P4)
2.1, 2.2
Jan. 30 Link Layer Pt. 1 2.1-2.4
Feb. 4 Link Layer Pt. 2 Project 1 Part C Due
(Learning Switch)
2.6, 3.1
Feb. 6 IP Addressing 3.2.3, 3.2.5, 4.1.3
Feb. 11 Addressing and Discovery 3.3
Feb. 13 Intradomain Routing 4.1
Feb. 18 Interdomain Routing Project 2 Due
(IPv4 Switch)
Feb. 20 No class (Snow Day)
Feb. 25 Review 1 Problem Set 1 Due 3.2.8
Feb. 27 Exam 1 Project 3 DV Due
(Routing Algorithms)

Mar. 4 No class (Spring Break)
Mar. 6 No class (Spring Break)
Mar. 11 Exam Review and Transport Protocols 5.1, 5.2
Mar. 13 No class (Instructor Out) Project 3 LS Due
(Routing Algorithms)
Mar. 18 Transport Protocols Exam 1 corrections 6.3
Mar. 20 Congestion Control 3.2.4, 3.4, 6.2, 6.4
Mar. 25 Congestion Control and Router Design
Mar. 27 HTTP Project 4
(TCP window size and bufferbloat)
Apr. 1 HTTP Performance 9.4.3, HTTP/2
Apr. 3 Video Streaming
Apr. 8 Datacenters
Apr. 10 Cloud vs. Internet Project 5 Due
(Sockets and File Transfer)
Apr. 15 Wireless 2.7, 2.7.1
Apr. 17 Wireless/Security Project 6 Part A Due
(Music Streaming Protocol)
8.1.3, 8.1.4
Apr. 22 Censorship
Apr. 24 DDoS (Guest Lecture)
Apr. 29 Review 2 Problem Set 2 (start early!)
May. 1 Exam 2 Project 6 Part B Due
(Music Streaming Service)