Teaching session commences with the first course of the new academic cycle (2020-2021), Advanced Network Programming for Bachelor 3rd year students. The course is offered in the programming minor. It is a new course designed by me and Lin Wang, and offered for the first time here at VU.
The goal of the course is to teach students about
- Networking concepts like interrupt livelock, jumbo frames, stateless and stateful offloads, and the historical context in which these ideas were developed
- Understand the internals of Linux’s TCP/IP stack implementation, and data center networks
- Explain network stack design and implementation challenges associated with multi-core systems (interrupt load balancing, RSS, RPS, XPS, NUMA vs SMP effect, MegaPipe, Affinity Accept, locking and synchronization issues).
- Present packet processing frameworks (netmap, DPDK), building userspace networking stacks (mTCP)
- Introduction to RDMA networking and basic concepts, challenges associated with 100+ Gbps links
- Understand how to build a high-performance network infrastructure for large-scale cloud data centers and how to program and manage such a network with software
- Learn about ongoing and emerging research challenging in networking technologies
There is a project component in the course, where students will implement their own TCP/IP networking stack in userspace and provide code for basic socket API calls (socket, connect, send, recv, close) for a TCP stream socket. Their implementation is loaded as a preloaded shared library.
The course is offered online with zoom lectures, office hours, and canvas support pages. More about online teaching experience to follow. The course material will also be made public in coming weeks.
Update: The course slides are online now here.
Jekyll theme inspired by researcher