COMP 631 -

Networked and distributed systems

Spring 2023

Time: TTh 11:00 am - 12:15 pm

Classroom: FB 009

Instructor: Jasleen Kaur (jasleen at cs dot unc dot edu)

Office Hours: By appointment

What is this course about?

This course will focus on the design of large-scale computer networks and distributed systems. The content has been designed to focus on the common principles and approaches used in designing scalable networked and distributed services. The discussions will not focus on the fine-details of protocols or implementations.

The course discussions are divided into two parts:

  • The first half of the course will focus on the question: how do you design a global-scale network that can be used to transfer information efficiently between end-users and applications? The issues discussed in this half will include Media Access Control, Switching Approaches, Scalable Addressing and Routing, Reliability, and Congestion-control.

  • The second half of the course will focus on the question: how do you design massively multi-user and global-scale systems and services on top of such a network? The types of systems discussed will include the Domain Name System, Peer-to-peer File-sharing Systems, Data Center Networks, Content-distribution Systems, and Cloud Systems.

The emphasis of the in-class discussions will be on the design approaches --- including hierarchy, randomization, virtualization, indirection, and simplicity of service model --- that are used in designing each of these protocols/systems. There will be (roughly) 4 assignments in the course. Students will also be required to work on a course project that involves implementing and experimentally evaluating a system/service of their own choice.

Who should take this course?

This course is intended to be an introductory graduate systems course---it satisfies the "systems" breadth requirement. It is also a good option for undergraduate students who have already taken COMP 431 and want to build a stronger base in networking. If your primary research interest is in the Systems area, this course will help build the background and some experimental skills needed for more advanced courses and research. If not, this course will help expand your breadth of knowledge.

Course Syllabus is available here.

Prerequisites: COMP 431, COMP 530 (preferable, but not required).

Reference Material:

There is no single book that includes all the topics that will be covered in this course. The first half of the course will use material from the first 6 chapters of the following text, but will also add discussion from recent literature to it.

Computer Networks: A Systems Approach, Peterson and Davie (any recent edition). Morgan Kaufmann.

The second half of the course will use material from several papers from the published literature.