CSCI1675

Designing High-Performance Network Systems

Spring 2025

How can we understand the performance of network systems and make them run faster? To explore this question, we will break it down into pieces, including (i) how to define and measure a system’s performance, (ii) how to determine what factors in the system’s design affect its performance, and (iii) how to use this information to make the system faster. Through lectures, labs, readings, and hands-on programming projects, we will explore topics including tradeoffs between threads and coroutines, blocking and non-blocking execution models, cooperative and preemptive multitasking, open and closed request generation, and throughput-latency curves. Hands-on projects will involve modern Linux technologies such as perf and derivative tools, io_uring, eBPF, and XDP as well as modern microservice architecture tools such as nginx, kubernetes, and distributed tracing frameworks. The class will consist of lectures, short homework assignments that reinforce lecture content,

Instructor(s):
Meets:
Exam Group:TBA
Max Seats:40 Full
CRN:28040