PROTOCOLLI E SERVIZI DI RETE

Settore: INF/01Codice: 712AACrediti: 6Semestre: 1
Docenti: Guidi Barbara

Obiettivi di apprendimento

Conoscenze

L'obiettivo del corso è spiegare Internet a chi deve contribuire in modo creativo al suo utilizzo. Per questo il corso  esamina e spiega i meccanismi che ne realizzano le funzioni partendo da quelle che ci sono familiari, ma che sono solo la superficie di un manufatto molto complesso.

Il corso esamina i concetti fondamentali della struttura di Internet, secondo la sua organizzazione stratificata.

Si inizia dallo strato di network per spiegare la complessa organizzazione globale del sistema, Successivamente vengono descritte alcune tecnologie rilevanti dello strato di link focalizzandosi sulle reti locali. Quindi si ritorna allo strato network per studiarne i meccanismi di routing. Poi si introducono i protocolli di trasporto ed infine il protocollo di applicazione HTML. In questa prima parte il contenuto è organizzato per protocolli, spiegando le relazioni esistenti tra essi e limitando i dettagli a quelli necessari a comprenderne la funzione ed il ruolo, 

La parte finale del corso esamina il livello applicazione, fornendo un esame dettagliato delle architetture centralizzate e decentralizzate e fornendo, per entrambe, degli esempi. Per comprendere meglio la programmazione di rete, verrà introdotta la programmazione concorrente e verranno fornite metodologie e tecniche specifiche per lo sviluppo di applicazioni web.

Modalità di verifica delle conoscenze

La verifica consiste di una prova scritta, dove verranno esamine le conoscenze relative al programma del corso. Ed infine una prova orale, durante il quale si richiede l'inquadramento di un argomento specifico, la descrizione di un dettagliio tecnico specifico di un argomento, e lo svolgimento di una attività di laboratorio.

Capacità

Utilizzo consapevole di Internet, conoscenza della terminologia correlata, capacità di interagire con professionisti del settore, comprensione delle potenzialità e dei rischi correlati ad Internet, competenza nello operazioni di gestione fondamentali.

Modalità di verifica delle capacità

L’esame scritto verifica la conoscenza degli argomenti del corso, mentre la parte orale verifica l'efficacia e l'appropriatezza terminologica ed include lo svolgimento di attività pratiche.

Comportamenti

Proprietà d'uso e comprensione della terminologia tecnica.

Modalità di verifica dei comportamenti

Durante la prova scritta si valuta la conoscenza degli argomenti del corso. Il superamento della prova scritta è fondamentale e necessaria per poter effettuare la prova orale, durante la quale viene considerata la comprensione dei concetti e la proprietà del lessico. 

Prerequisiti

Conoscenza elementare del linguaggio Python e della commandline Unix (Linux).

Indicazioni metodologiche

Vengono affiancate lezioni teoriche, pause di riflessione (domande) e attività pratiche (suggerite o svolte in classe). Le esercitazioni pratiche che non possono essere svolte in classe per motivi di tempo possono essere svolte a casa utilizzando gli strumenti suggeriti a lezione.

Programma

  • Introduzione alle reti
  • Suite dei protocolli di Internet
  • Strato Link: il protocollo Ethernet, 803.11 (WiFi), 803.1Q (Virtual Network)
  • Livello IP e routing
  • Pacchetti e incapsulamento
  • Strato IP: lo header IP e UDP
  • Strato IP: DHCP, DNS, multicast con IGMP e routing RIP e OSPF
  • Python, algoritmi di routing in Python.
  • TCP: connessione e finestra scorrevole ;API python per TCP
  • Network Address Translation (NAT) Sicurezza in Internet
  • Crittografia simmetrica e asimmetrica
  • Il protocollo HTTP 
  • Paradigmi client-server e peer-to-peer
  • Applicazioni client-server.  Applicazioni Web (Protocollo http). File Transfer (Protocollo FTP), Posta Elettronica (Protocollo SMTP,  MIME, Protocolli di accesso POP3 e IMAP). DNS.
  • Applicazioni Peer-To-Peer (P2P).  Ricerca di contenuti. Distribuzione/condivisione di file. Blockchain e File Storage distribuiti
  • Programmazione concorrente 
  • Programmazione di applicazioni di rete. Interfaccia a socket. Client e server comunicanti tramite socket.
  • Introduzione al Web3.0
  • Esempi di Web Applications

Bibliografia

Il moodle del corso include:

  • le trasparenze presentate a lezione
  • le istruzioni per l'installazione degli strumenti necessari allo svolgimento delle attività pratiche
  • eventuali test e quiz di autovalutazione
  • Links a materiale consultabile per la preparazione dell’esame finale

 

Parte del corso si ispira al materiale contenuto nei libri: 

  • “Reti di calcolatori”. di Andrew S. Tanenbaum, David J. Wetherall, Nick Feamster. Editore: Pearson. Il libro può essere utilizzato per consultazione e per estendere eventuali conoscenze sugli argomenti trattati nel corso.
  • Reti di calcolatori e internet. Un approccio top-down. Ediz. mylab. Con eText. Con aggiornamento online. James F. Kurose (Autore), Keith W. Ross (Autore), Antonio Capone.

Non frequentanti

Nessuna indicazione particolare. Il materiale richiesto per la prova finale è fornito ed accessibile tramite moodle.

Modalità di esame

Prova scritta della durata di circa 2 ore. Esame orale della durata di 30' circa. 

Fonte: ESSETRE e Portale esami