Packet Switching and Processing Architectures

2nd year
Programme main editor:
Onsite in:
ECTS range:


Gregorio Procissi


Basic probability and queueing systems.

C/C++ programming

Pedagogical objectives:

By the end of the course, Students will be able to design and implement their own solutions to practical packet switching and processing problems. This will include:

  • the ability to take advantage of structures and algorithms for fast packet processing;
  • the ability to adopt suitable switching and processing architectures.

Evaluation modalities:

The exam consists of an oral exam and the implementation of a small project.

The oral test consists of an interview between the student and the teacher and deals with the topics of the course. The candidate will be typically asked to derive some of the main results presented in the course. In addition, the interview may include the solution to written exercises.

The project typically requires the implementation of a small system for traffic processing/monitoring.


The course presents the main network switching architectures, with particular focus on packet switching architectures. After a brief introduction to the notions of circuit and packet switching, the course addresses the main schemes of packet switching together with their performance and possible issues. Then, the course deals with packet lookup and classification by presenting the main algorithms currently in use. The course also presents the P4 language for programmable switches.


  • Basics on Switching Paradigms
  • Switching fabrics (circuit switching)
  • Packet switching
  • Datacenter Networking
  • Software Defined Networking and OpenFlow (refresher)
  • Programmable Switches
  • P4 programming
  • Control Plane for P4 switches
  • Applications: In-band telemetry, etc.
  • End-host networking
  • Kernel bypass
  • kernel programming: eBPF
  • Programmable NICs
  • Efficient data structures for packet processing
  • Traffic Measurements and Monitoring

Required teaching material

[books] Lecture notes on the class content will be available to the students enrolled in the course. However, a recommended reading includes the book: • George Varghese, "Network Algorithmics", Morgan-Kaufmann, 2005 Also, students will be addressed to the book: • Michael Mitzenmacher, Eli Upfal, Probability and Computing - Randomized Algorithms and Probabilistic Analysis, Canbridge University Press, 2005 Further bibliography will be indicated during the course. [devices] Laptop/Desktop with Linux

Teaching volume:
32 hours
8 hours
Supervised lab:
8 hours


  • Laboratory-Based Course Structure
  • Open-Source Software Requirements