Insegnamento facoltativo per la Laurea Magistrale in Ingegneria Informatica, collocato al I PD del II anno.
Il corso si focalizza sulle tematiche software relativamente al mondo del networking, che rappresenta attualmente un campo in forte evoluzione. Il corso si concentrerà inizialmente sul piano di controllo delle reti, presentando gli algoritmi e i protocolli relativi (es. protocolli di routing), quindi si affronteranno gli aspetti software relativamente al piano dati (forwarding, filtering, dataplane programmabili). Verranno inoltre introdotti i concetti di Software-Defined Networks, Network Functions Virtualization, e verrà approfondita l’architettura del networking del sistema operativo Linux (es., netfilter, iptables, eBPF), diventato ormai lo stato di fatto dei server in un datacenter. Infine verranno presentati alcuni esempi di utilizzo dei concetti precedenti in orchestratori di datacenter, quali OpenStack e Kubernetes.
Verranno infine effettuate alcune esercitazioni di laboratorio a supporto dell’apprendimento in aula.
This course focuses on the rapidly growing software-based network technologies and it addresses multiple problems.
First, it presents the characteristics of the technologies that can be used to implement efficient software-based dataplanes (e.g., DPDK, eBPF, etc), compared to programmable hardware-based counterparts (e.g., P4).
Second, it highlights the architecture and main characteristics of the Linux network stack, and the tools available on that platform that can deliver network services (e.g., netfilter, linuxbridge), with a focus on virtual networking services running on most of the existing datacenters. It presents also the idea and the technologies underpinning Network Functions Virtualization.
Third, it shows how some of the previous technologies are used to deliver sophisticated network services in existing datacenters, such as the ones running OpenStack or Kubernetes orchestrators.
Finally, it presents the most interesting evolutions of the software when used to provide a flexible control plane to future networks, which are often grouped under the umbrella of Software-Defined Networks.
- Conoscenza degli algoritmi di forwarding e di routing unicast.
- Conoscenza dei protocolli di routing intra- ed inter-dominio.
- Conoscenza delle principali tecnologie di data-plane in un moderno apparato di rete (ASIC custom, OpenFlow, P4).
- Conoscenza dell'architettura del networking di Linux e dei principali strumenti di configurazione dei corrispondenti componenti kernel.
- Conoscenza dei concetti di Software-Defined Networks e Network Functions Virtualization.
- Knowledge about the architecture a network device/appliance, and the main technologies that can be used in each component.
- Capability to design a high-performance software-based network service (e.g., firewall).
- Knowledge about the most important dataplane technologies (DPDK, eBPF, ASIC, OpenFlow, P4).
- Knowledge about the Linux kernel networking subsystem and the most important network tools available.
- Knowledge about Software-Defined Networks and Network Functions Virtualization.
Conoscenze generali di reti di calcolatori.
Conoscenza approfondita del protocollo IP e dei principali protocolli della suite TCP/IP.
Capacità di progettazione di reti IP e di gestione di routing statico.
Capacità di analisi del traffico in riferimento ai principali protocolli della suite TCP/IP.
Conoscenze di switching di livello data-link, VLAN, architetture di datacenter.
General knowledge about computer networks.
Knowledge about the most important protocols of the TCP/IP suite.
Capability to design and troubleshoot an IP network.
Good knowledge about IP stating routing and basic knowledge about IP dynamic routing.
Capability to understand the traffic patterns of the most common TCP/IP protocols (e.g., through packet sniffing)
Knowledge about switching technologies and protocols.
Basic understanding of datacenter technologies.
Useful, but not strictly required, knowledge about cloud computing topics and orchestrators (Kubernetes, OpenStack).
- Data plane vs Control Plane e architettura degli apparati di rete commerciali (0.4 cfu)
- Algoritmi di routing unicast (Distance Vector, Path Vector, Link State); routing gerarchico (0.6 cfu)
- Principali protocolli di routing intra-dominio (cenni di RIP, IGRP, EIGRP; OSPF) (0.6 cfu)
- Protocolli di routing inter-dominio (BGP) (0.4 cfu)
- Tecnologie hardware programmabili per dataplane: OpenFlow, P4 (0.6 cfu)
- Tecnologie software per dataplane: software di accelerazione quali OpenDataPlane, DPDK, eBPF/Iovisor, eXpress Data Path; packet filtering (1.2 cfu)
- Linux networking architecture, NetFilter (0.4 cfu)
- Software Defined Networks (0.2 cfu)
- Network Functions Virtualization (0.2 cfu)
- Network automation: strumenti software principali (es., Ansible, Chef, Puppet) e protocolli (Yang, OpenConfig, Netconf, Restconf) (0.2 cfu)
- Orchestratori per ambienti telco e per datacenter; OpenStack, Kubernetes (0.2 cfu)
- Esercitazioni di laboratorio (1.2 cfu)
- Data plane vs Control Plane and architecture of commercial devices (0.4 cr)
- Hardware programmable technologies for dataplanes: OpenFlow, P4 (0.6 cr)
- Software dataplanes: DPDK, eBPF/XDP; packet filtering (1 cr)
- Linux kernel and networking architecture; NetFilter (0.6 cr)
- Software Defined Networks; Network Functions Virtualization (0.9 cr)
- Network automation: software (e.g., Ansible) and protocols (Yang, OpenConfig, Netconf, Restconf) (0.3 cr)
- Virtual networking basics: software switches, tunnels, direct routing (0.4 cr)
- Network services for telco and datacenter: OpenStack, Kubernetes (0.6 cr)
- Lab (1.2 cr)
Sono previsti homework, da svolgere individualmente, per la maggior parte degli argomenti teorici, che consistono nello svolgimento di esercizi relativi a quanto trattato nelle lezioni immediatamente precedenti.
In aggiunta agli homework, vi sono anche esercitazioni di laboratorio che consistono nella configurazione, nella verifica del funzionamento e nella ricerca guasti di alcune tecnologie introdotte a lezione, mediante l'utilizzo di apparati commerciali o del sistema operativo Linux.
Sono previste 4 esercitazioni in laboratorio, con la possibilità di fruizione del laboratorio anche da remoto in orari non allocati alle lezioni del corso. Le esercitazioni sperimentali dovranno essere svolte preferibilmente da team di 2 studenti.
The course includes 48 hours of traditional teaching, complemented by homeworks focusing on the most important topics of the course, which have to be completed individually.
12 hours are dedicated to lab exercises that require to practice with the most important technologies presented in the course, and require students to practice (either use, or write) networking software.
Lab exercises are delivered through a cloud-based system and therefore can be completed also from a remote location.
Lab exercises are expected to be completed by groups of two students.
Non esiste un testo di riferimento che copra interamente gli argomenti trattati. I testi consigliati sono i seguenti:
- J. Doyle, J. Carroll, Routing TCP/IP, Volume 1 (2nd Edition), Cisco Press, 2005, ISBN 978-1587052026
- J. Doyle, J. Carroll, Routing TCP/IP, Volume 2, Cisco Press, 2001, ISBN 978-1578700899
- G. Vargese, Network Algorithmics, Morgan Kaufmann Publishers, 2005, ISBN 978-0120884773
Sono disponibili copie dei lucidi utilizzati nelle lezioni, esempi di scritti di esame ed esercizi, e i manuali per le esercitazioni di laboratorio. Tutto il materiale didattico è scaricabile da un sito web o attraverso il portale.
A fully-covering textbook is not available for this course.
Students are provided with slides used in class, pointers to scientific papers to deepen the knowledge on some selected topics, exercises, and lab assignments.
All the material is freely available from the web.
Slides; Esercitazioni di laboratorio; Video lezioni dell’anno corrente;
Lecture slides; Lab exercises; Video lectures (current year);
Modalità di esame: Prova orale facoltativa; Prova scritta in aula tramite PC con l'utilizzo della piattaforma di ateneo;
Exam: Optional oral exam; Computer-based written test in class using POLITO platform;
...
Risultati di apprendimento attesi
Comprensione degli argomenti trattati a lezione e abilità nella soluzione di esercizi focalizzati sui singoli argomenti.
Capacità di affrontare esercizi di progettazione più complessi che richiedono l’utilizzo combinato di più tecnologie tra quelle presentate a lezione.
Criteri, regole e procedure per l'esame
L'esame finale è scritto, comprendente quattro esercizi e/o domande con risposta aperta, ognuna avente punteggio pari a 5 punti, più 10 domande con risposta a scelta multipla. I primi concorrono al voto finale per 5/30 ciascuno, le seconde con 1/30 ciascuna. Gli studenti che totalizzano nella prova scritta un punteggio pari ad almeno 26 punti avranno diritto ad un orale comprendente una domanda che concorrerà al voto finale per 3/30. L'orale potrà essere richiesto per libera decisione del docente nel caso in cui sia opportuno un approfondimento, oppure nel caso in vi sia un numero ridotto di studenti prenotati all'esame. Il tempo assegnato per l'esame è al massimo di 2 ore. La prova scritta non prevede l’utilizzo di alcun materiale di supporto (libri, appunti, etc.).
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Optional oral exam; Computer-based written test in class using POLITO platform;
Expected learning outcome
Knowledge of the topics presented in class and of the lab assignments.
Capability to solve exercises that involve the technologies presented in class.
Capability to solve exercises that involve a more complex scenario including multiple technologies presented in class.
Exam: rules, procedures
Final exam is delivered in written form and it includes a set of exercises and/or open-answer questions, each one reaching a max of 5 points. Exercises may be required to be solved on a cloud-based system, which enables the student to play with a real environment even during the exam.
In addition, a set of closed-answer questions may be delivered, each one accounting for max 1 points. The total score of the written exam is max 30 points. The written exam lasts no more than 2 hours; student cannot use any additional material (e.g., slides, notes, etc).
Students who reach a grade >=26 in the written exam can ask for an optional oral exam, consisting in one question, which contributes to the final grade with max 3 points.
The oral may also be requested by the professor, e.g., in case it could be useful to decide the final grade, or in case the number of students enrolled in the exam is very limited.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.