View syllabus
Network Programming Laboratory
GREGORIO PROCISSI
Academic year2021/22
CourseTELECOMMUNICATIONS ENGINEERING
Code1039I
Credits6
PeriodSemester 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
NETWORK PROGRAMMING LABORATORYING-INF/03LEZIONI60
GREGORIO PROCISSI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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.

Knowledge

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.

Modalità di verifica delle conoscenze

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:

  • Prova orale finale

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.

Assessment criteria of knowledge

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:

  • Final oral exam

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.

Capacità

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:

  • la capacità di sfruttare tecniche di programmazione di socket e le opportune librerie per l’accesso ai dispositivi di networking;
  • la capacità di sfruttare strutture e algoritmi per l'elaborazione rapida dei pacchetti;
  • la capacità di utilizzare il linguaggio P4 per problemi di commutazione e manipolazione di pacchetti.
Skills

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:

  • the ability of using socket programming techniques and software libraries to access network devices;
  • the ability to take advantage of structures and algorithms for fast packet processing;
  • the ability to take advantage of the P4 library to provide solutions to switching and processing problems.
Modalità di verifica delle capacità

La verifica degli skill è ottenuta mediante questionari proposti durante lo svolgimento del corso, e mediante la realizzazione di un progetto.

 

Assessment criteria of skills

The assessment of the skills is obtained through questionnaires proposed during the course, and through the realization of a project.

Comportamenti

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.

Behaviors

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.

Modalità di verifica dei comportamenti

La verifica della "modifica" degli atteggiamenti dello studente nei confronti della complessità è ottenuta dall'osservazione qualitativa (interviste, colloqui).

 

Assessment criteria of behaviors

The verification of the "modification" of the student's attitudes towards complexity is obtained by qualitative observation (questions, interviews).

Prerequisiti (conoscenze iniziali)

Networking e architettura TCP/IP

Programmazione di base C / C ++

Prerequisites

Networking and the TCP/IP architecture

Basic C/C++ programming

Indicazioni metodologiche

Modalità di svolgimento delle lezioni: faccia a faccia

Attività didattiche:

  • frequenza delle lezioni
  • partecipazione alle discussioni
  • studio individuale

Frequenza: consigliata

Metodi di insegnamento:

  • lezioni
  • svolgimento di progetto
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • participation in discussions
  • individual study

Attendance: Advised

Teaching methods:

  • Lectures
  • project work
Programma (contenuti dell'insegnamento)

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:

 

  • Configurazione di macchine su rete LAN fisica e virtuale
  • Comunicazione tra processi: socket Unix e TCP/IP
  • Realizzazione di semplici applicazioni client-server basate su protocolli UDP e TCP
  • La libreria pcap per la cattura di traffico
  • Monitoraggio di rete mediante sniffer di traffico
  • Strutture dati stocastiche per l’elaborazione veloce di dati
  • In-network programming: il linguaggio P4 per switch programmabili
Syllabus

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:

  • Host configuration on physical and virtual LANs
  • Inter-process communication: Unix and TCP/IP sockets
  • Design and development of simple client-server applications based on TCP and UDP protocols
  • The pcap library for traffic capture
  • Network measurements and monitoring by traffic sniffers
  • Stochastic data structures for fast data processing
  • In-network programming: the P4 language for programmable switches
Bibliografia e materiale didattico

Gli appunti delle lezioni sul contenuto della lezione saranno disponibili per gli studenti iscritti al corso. Tuttavia, lettura raccomandate sono:

 

  • Gary R. Wright, W. Richard Stevens, TCP/IP Illustrated Volume 2 The implementation, Addison-Wesley Professional, 1995
  • The Beej’s Guide to Network Programming Using Internet Sockets (https://beej.us/guide/bgnet/)
Bibliography

Lecture notes on the class content will be available to the students enrolled in the course. However, recommended reading includes: 

  • Gary R. Wright, W. Richard Stevens, TCP/IP Illustrated Volume 2 The implementation, Addison-Wesley Professional, 1995
  • The Beej’s Guide to Network Programming Using Internet Sockets (https://beej.us/guide/bgnet/)
Indicazioni per non frequentanti

Gli appunti delle lezioni sono disponibili per tutti gli studenti. Il programma d'esame non cambia.

Non-attending students info

Lecture notes are freely available for all students. The exam program does not change. 

Modalità d'esame

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.

Assessment methods

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.

Updated: 04/02/2022 19:04