This course covers advanced topics in computer networks, with a blend of theoretical and practical topics. On the theoretical side, the syllabus will cover mathematical foundations of networking, including discussions of queuing theory, information theory, network design, and traffic engineering and optimization. On the practical side, the syllabus will cover concepts and designs related to modern network architectures and technologies (e.g., data-center networks, congestion control, data-plane programming), protocols (e.g., SPDY, HTTP/2, IPSec), and services.
This course has two main objectives. First, we want to acquire an in-depth understanding of basic notions in networking, such as queuing, routing, and congestion control. Second, we want to present advanced concepts and protocols.
The course builds on traditional lectures. Students will gain hands-on experience with the topics discussed in class through a series of exercises using simulation, emulation (Mininet), as well as tools for network design.
Homework assignments and/or projects, all consisting of concrete problems, including network-design and optimization, simulation, and protocol implementations. Seminar presentations of important and relatively recent papers in Computer Networking.