Laboratorio di Internet
Professors: Marco Polverini, Antonio Cianfrani
Degree in: Laurea in Ingegneria dell'Informazione
Semester: II
Lectures Time
Mercoledì10:15 - 13:30 e 15:00 - 18:00 (Laboratorio di Informatica piccolo)
Venerdì 12:00 - 14:00 (Laboratorio di Informatica piccolo)
Office hours
su appuntamento (Roma, via Eudossiana 18, DIET, stanza 106)
Course Description
Il programma del corso è reperibile al seguente link.
Final Exam
L'esame consiste nello svolgimento di quattro homeworks (tre con Mininet ed uno con Netkit) ed una prova orale nella quale verranno discussi aspetti relativi agli homeworks assegnati ed agli argomenti trattati nel corso. Per il conseguimento dei 6 CFU sarà considerato solo gli homeworks relativi a Mininet.
Teaching Material
Materiale Didattico per il conseguimento dei 6 CFU
Materiale Didattico per il conseguimento dei 3 CFU
1 - Richiami IP | |
2 - Netkit | |
3 - Basic Routing configuration | |
4 - Routing protocols |
File esercitazioni (6 CFU)
Simulatore di rete | |
Flow Rules per OVS | |
Script Python per POX | |
Switch and Router in POX |
Homeworks per il conseguimento dei 6 CFU
Homework 1 | |
Homework 2 | |
Homework 3 |
Syllabus
27/2/19 - Presentazione del corso, richiami del corso di "Reti di Telecomunicazioni" (che cosa è una rete, commutazione di pacchetto, store and forward, ritardi in rete, stack TCP/IP)
1/3/19 - Richiami del corso di "Reti di Telecomunicazioni" (analisi di traffico con wireshark, introduzione al livello di rete, definizione di data plane e control plane, differenza tra control plane centralizzato e distribuito, indirizzamento, tabelle di routing, longest prefix matching)
6/3/19 - Richiami del corso di "Reti di Telecomunicazioni" (Livello di collegamento, differenza tra rete fisica e rete logica, indirizzi MAC, ARP, Ethernet, LAN commutate, learning switch)
8/3/19 - Richiamo del corso di "Reti di Telecomunicazioni" (Reti Data Center), Introduzione a Python (installazione, CLI e scripting, tipi di variabili standard, operatori, differenza tra variabili mutabili e immutabili, variabili di tipo sequenza)
13/3/19 - Introduzione a Python (operatori per variabili di tipo sequenza, dizionari, definizione di funzioni, controllo di flusso, import di moduli esterni, esercizi 1, 9, 18 su practicepython.org)
15/3/19 - Introduzione a Python (classi e oggetti, sviluppo di un simulatore di rete (SCRIPT))
20/3/19 - Software Defined Networking (il problema dell'Internet Ossification, panoramica SDN, introduzione al concetto di Controller Programming, Network OS, criticità delle reti SDN, use cases)
27/3/19 - OpenFlow (overview, datapath, OF Ports, interazioni Controller-Switch, OF packet processing, OF Actions, Flow Entry, Flow Table Pipelining)
29/3/19 - Introduzione a Mininet (Simulazione VS Emulazione, virtualizzazione delle interfacce in Linux, Tun, Tap, VETH, Virtual Machine VS Container, Network Namespace, OpenVSwitch, emulazione di uno scenario di rete)
5/4/19 - Mininet Walkthrough (creazione scenari di rete con mininet, cattura messaggi OpenFlow, Topology in mininet, test di connettività e banda, dump configurazione)
10/4/19 - Installazione Flow Rules in OVS (Flow Rules matching basato su campi "fisici", L2, L3 e L4)
12/4/19 - Flow Table Pipeline in OVS (gestione di tabelle multiple in OVS)
17/4/19 - Pox Controller (introduzione a Pox, stock components)
10/5/19 - Pox Controller (custom components, Core object, working with addressess, publish-subcriber paradigm, handling packets in Pox, Timers)
17/5/19 - Pox and OpenFlow (DPID, Connection and Nexus objects, OpenFlow events, OpenFlow messages)
24/5/19 - Create a learning switch
31/5/19 - Implementation of an IP Router in POX
Bibliography
J. Kurose, K. Ross, "Reti di calcolatori e Internet: Un approccio top-down", VII edizione, Pearson Education Italia ©2017
POX Wiki - Open Networking Lab - Confluence - http://intronetworks.cs.luc.edu/auxiliary_files/mininet/poxwiki.pdf
Mininet Walkthrough - http://mininet.org/walkthrough/
OpenFlow Tutorial - https://github.com/mininet/openflow-tutorial/wiki