Networked Systems

Module aims

In this module, you will get an overview and hands-on experience on how modern networked systems are designed and implemented. The module assumes prior networking knowledge and goes into more detail on the evolution of networking, new network architectures, and new software and hardware infrastructure at the network control plane, data plane, and the endpoints. You will also explore and enumerate the systems principles, e.g. layering and the end-to-end argument, that led to certain design choices and understand how the same principles are applied across a variety of systems.   

Learning outcomes

Upon successful completion of the module you will be able to:
- enumerate and analyse the basic network mechanisms, their design and implementation, and the underlying principles across different network settings and architectures.
- design and reason about the scalability and performance requirements for different parts of the networking infrastructure: control plane, data plane, endpoints
- use network simulation, debugging, and monitoring tools, such as wireshark, tcpdump, and NS2
- implement a network middlebox in different technologies, e.g. eBPF, DPDK, P4

Module syllabus

Overview: TCP/IP stack refresh, Remote Procedure Calls, basic operating system and network stack design
Network Architecture &Topologies: WAN, datacenter networks, clos, optical networking, basic switch architecture
Control Plane I: Routing Algorithms BGP and OSPF
Control Plane II: Software-Defined Networks
Programmable Dataplanes: introduction to P4, match-action tables, PISA architecture
Basic queueing theory, packet scheduling algorithms, and QoS
EndHost: congestion control, flow control, kernel-bypassing, eBPF, virtual networking
Congestion Control: congestion signals in different networking settings, DCTCP, HPCC, BBR, Timely

Teaching methods

The material will be taught through class-based lectures. There will be a combination of formative in-class tutorial exercises and practical sessions that will help you to practise the concepts in action and learn the necessary tools. Tutorials and practical sessions will be unassessed.

Assessments

There will be three small courseworks that contribute 30% of the mark for the module. There will also be a final exam contributing the remaining 70%.
           
You will receive written feedback on your coursework and verbal feedback during the tutorial and lab sessions.