Modules | Area | Type | Hours | Teacher(s) | |
NETWORK PROGRAMMING LABORATORY | ING-INF/03 | LEZIONI | 60 |
|
Lo studente che completerà con successo il corso sarà in grado di acquisire una solida conoscenza dei meccanismi di programmazione di applicazione di rete in grado di trasmettere e ricevere pacchetti su una rete reale.
In particolare, lo studente acquisirà competenze relativamente alla comunicazione tra processi e alla programmazione di socket. Tali competenze saranno utilizzate nella realizzazione di semplici applicazioni di tipo client-server basate sui protocolli TCP e UDP.
Nel corso verranno inoltre presentati socket raw e la libreria pcap per la cattura di traffico e la realizzazione di semplici applicazioni di misura e monitoraggio. In tale contesto verranno introdotte strutture dati di tipo probabilistico per l'elaborazione in tempo reale di pacchetti.
Infine, lo studente che completerà con successo il corso, acquisirà le conoscenze di base sul linguaggio P4 per la programmazione di switch hardware e software e sarà in grado di fornire la propria soluzione sperimentale a specifici problemi di commutazione e manipolazione di dati su switch software in esecuzione su macchine virtuali.
The student who successfully completes the course will be able to achieve a solid knowledge on programming network applications for transmitting and receiving packet data on real networks.
In particular, she or he will acquire skills on process communication and socket programming. This will be the basis for developing simple client-server applications based on the TCP and UDP protocols.
In addition, raw sockets and the pcap library will be presented and used to realize simple measurement/monitoring applications. In this context, stochastic data structures will be introduced and adopted for real-time data processing.
Finally, the student who successfully completes the course, will acquire the basic knowledge on the P4 language for programming hardware and software switches. At the end, she/he will be able to provide her/his own experimental solution to specific switching and processing problems on top of soft switches running on virtual machines.
Durante l'esame, lo studente sarà valutato per sua capacità di discutere i contenuti principali del corso con competenza, consapevolezza critica e proprietà di espressione.
Metodi:
Ulteriori informazioni:
L'esame consiste in un colloquio orale sugli argomenti principali del corso. Inoltre, il colloquio include la discussione di un progetto che verrà assegnato durante lo svolgimento del corso.
During the exam, the student will be assessed on her/his ability in discussing the main course content with competence, critical awareness and property of expression.
Methods:
Further information:
The exam consists of an oral colloquium on the main topics of the course. In addition, the colloquium includes the discussion of a simple project that will be assigned during class time.
Alla fine del corso, gli studenti saranno in grado di progettare e implementare applicazioni per la soluzione di problemi pratici di comunicazioni, ricezione, cattura, commutazione ed elaborazione dei pacchetti. In particolare, questo include:
By the end of the course, Students will be able to design and implement their own applications to address practical problems of packet communication, capture, switching and processing. This will include:
La verifica degli skill è ottenuta mediante questionari proposti durante lo svolgimento del corso, e mediante la realizzazione di un progetto.
The assessment of the skills is obtained through questionnaires proposed during the course, and through the realization of a project.
l corso intende avvicinare lo studente verso il tema della gestione della complessità. In particilare, il corso vuole avvicinare lo studente alla comprensione di funzioni che nascono "per invenzione" e si integrano con complessità sempre crescente con altre funzionalità presenti nella rete.
The course aims to bring the student closer to the topic of complexity. Indeed, the course aims to the comprehension of functions that were born "by invention" and are integrated with ever-increasing complexity with other functionalities present in the network.
La verifica della "modifica" degli atteggiamenti dello studente nei confronti della complessità è ottenuta dall'osservazione qualitativa (interviste, colloqui).
The verification of the "modification" of the student's attitudes towards complexity is obtained by qualitative observation (questions, interviews).
Networking e architettura TCP/IP
Programmazione di base C / C ++
Networking and the TCP/IP architecture
Basic C/C++ programming
Modalità di svolgimento delle lezioni: faccia a faccia
Attività didattiche:
Frequenza: consigliata
Metodi di insegnamento:
Delivery: face to face
Learning activities:
Attendance: Advised
Teaching methods:
Il corso ha natura prevalentemente sperimentale e si pone come obiettivo la realizzazione di esperimenti di trasmissione, ricezione, cattura ed elaborazione di dati di traffico su rete reali e virtuali. Verranno inoltre presentate le nozioni essenziali di programmazione di switch mediante linguaggio P4.
Le lezioni si svolgeranno generalmente in laboratorio dopo una breve introduzione teorica. Più in dettaglio, il corso copre:
The course has a nature mainly experimental and aims at experimenting with transmission, reception, capture and elaboration of traffic packets over real and virtual networks. In addition, basic switch programming will be provided through the P4 language.
Lectures will be carried out in the laboratory after a brief theoretical introduction of topics. More in detail, the course covers:
Gli appunti delle lezioni sul contenuto della lezione saranno disponibili per gli studenti iscritti al corso. Tuttavia, lettura raccomandate sono:
Lecture notes on the class content will be available to the students enrolled in the course. However, recommended reading includes:
Gli appunti delle lezioni sono disponibili per tutti gli studenti. Il programma d'esame non cambia.
Lecture notes are freely available for all students. The exam program does not change.
L'esame consiste in una prova orale e nella realizzazione di un piccolo progetto.
La prova orale consiste in un colloquio tra lo studente e l'insegnante e affronta gli argomenti del corso. In genere al candidato verrà chiesto di ricavare alcuni dei principali risultati presentati nel corso. Inoltre, l'intervista può includere lo svolgimento di scritto di esercizi.
Il progetto richiede in genere l'implementazione di un a semplice applicazione di rete.
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 simple network application.