PROGRAMMABLE NETWORKS

Obiettivi formativi

Obiettivi Generali. Il corso si propone di fornire agli studenti una panoramica sulla programmabilità di rete, introducendo le principali architetture e tecnologie abilitanti. Attraverso la didattica frontale ed esercitazioni pratiche, lo studente sarà in grado di configurare dispositivi di rete, progettare e realizzare applicativi di automazione della gestione di rete, sviluppare applicazioni di controllo e definire nuove logiche di processamento dei pacchetti. Obiettivi Specifici. Conoscenza e comprensione: Conoscenza delle principali architetture a supporto delle reti programmabili, comprendendo le funzioni svolte dai diversi blocchi logici. Applicare conoscenza e comprensione: Capacità di progettare e sviluppare applicazioni di controllo di rete, di network automation e pipeline di processamento dei pacchetti. Capacità critiche e di giudizio: Essere in grado di analizzare criticamente il rapporto costi/benefici relativamente all'utilizzo di architetture di controllo centralizzate, approcci reattivi o pro-attivi, funzioni di rete fisiche o virtualizzate. Capacità comunicative: Tramite attività di gruppo svolte in aula e lo svolgimento del progetto d'esame, lo studente acquisirà la capacità di illustrare la logica di funzionamento delle diverse funzioni di rete sviluppate, oltre che spiegare come queste possano integrarsi con i vari elementi architetturali. Capacità di apprendimento: Il corso fornisce allo studente una visione strutturata e sistematica sui diversi punti di programmabilità di una infrastruttura di rete, oltre che delle architetture comunemente usate. Queste conoscenze consentiranno allo studente di comprendere facilmente il ruolo della network programmability anche in scenari applicativi non trattati nel corso.

Canale 1
MARCO POLVERINI Scheda docente

Programmi - Frequenza - Esami

Programma
Il programma è diviso in lezioni teoriche ed esercitazioni pratiche. Argomenti trattati nelle lezioni teoriche: - Richiami di networking [2h] - Introduzione alle reti programmabili [2h] - Software Defined Networking [4h] - Network Function Virtualization [4h] - Data Plane programmabile [4h] - P4 [4h] - Network Slicing [2h] - Service Function Chaining [2h] - Segment Routing [4h] Argomenti trattati nelle lezioni pratiche: - Network virtualization: Linux namespaces e virtual switches [4h] - Introduzione ai containers: Docker e Kubernetes [4h] - sviluppo di applicazioni SDN [12h] - data plane programming con switch BMv2 [12h]
Prerequisiti
Conoscenze base di networking e dello stack TCP/IP, fondamenti della programmazione a oggetti
Testi di riferimento
Il testo di riferimento è il seguente: CNIT Technical Report-06: Network Programmability: a (r)evolutionary approach. Editori: Giuseppe Bianchi, Walter Cerroni e Sergio Palazzo. Disponibile su: https://www.texmat.it/collana-cnit.html Il materiale didattico è reperibile nella pagina Moodle del corso
Frequenza
La frequenza è facoltativa
Modalità di esame
L'esame prevede un colloquio orale con domande relative agli argomenti di teoria trattati nel corso e lo svolgimento di un progetto
Modalità di erogazione
Didattica frontale in presenza
  • Codice insegnamento10606936
  • Anno accademico2025/2026
  • CorsoEngineering in Computer Science and Artificial Intelligence - Ingegneria Informatica e Intelligenza Artificiale
  • CurriculumCurriculum unico
  • Anno1º anno
  • Semestre2º semestre
  • SSDING-INF/03
  • CFU6