Reti di calcolatori

A.A. 2020/2021
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento ha l'obiettivo di analizzare le tecnologie, i modelli, i principi di funzionamento e i principali protocolli alla base delle reti di calcolatori. Verranno inoltre analizzati i principali protocolli applicativi, e relativi servizi, della rete IP e presentate alcune tecniche di programmazione distribuita.
Risultati apprendimento attesi
Al termine dell'insegnamento lo studente dovrà conoscere le tecnologie, i modelli, i principi di funzionamento e i principali protocolli (compresi quelli applicativi) alla base delle reti di calcolatori IP. Inoltre, attraverso prove di laboratorio, lo studente dovrà aver acquisito, da un lato, la capacità di gestire e configurare una rete IP e, dall'altro, la capacità sviluppare il client e il server di una applicazione distribuita.
Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo quadrimestre
Programma
L'insegnamento, composto da due parti, presenterà le tecnologie e i protocolli alla base del funzionamento delle reti di calcolatori. Nella prima parte verranno discussi i fondamenti dei sistemi e delle reti di calcolatori, tra cui le le reti locali e la rete Internet, con particolare riferimento ai protocolli di rete mobile e cablate e ai protocolli di trasporto (TCP/IP).

1. Introduzione. Struttura e tipologie dei sistemi di elaborazione dell'informazione. Infrastrutture di calcolo e di servizi. Standard multilivello: l'esempio di ISO/OSI.
2. Introduzione alle reti locali. Motivazioni. Reti private e pubbliche; storia e filosofia di progetto. Tipi e architetture di reti private: LAN, MAN, WAN. Comunicazione: i concetti di instradamento, connessione, contesa. Il livello 1: cablaggi e proprietà fisiche della comunicazione in guida. Il livello 2: MAC e LLC. Reti cablate. Switching. Reti mobile e basate su tecnologie in fibra ottica. Standard IEEE. Convergenza e servizi per Software Defined Network.
3. Protocolli. Generalità. Il livello 3: Protocolli e caratteristiche di progetto. Organizzazione interna. Il livello 4: servizi offerti al livello trasporto. Confronto tra reti basate su circuito virtuale e reti basate su datagrammi.
4. Caso di studio: Internet Protocol. Il livello rete di IPv4. Indirizzi IP. Subnetting e Supernetting. Protocolli di controllo. ICMP. ARP, RARP. IPv6. Il preambolo IPv6 principale. Preamboli di estensione.
5. Algoritmi di Routing. Routing lungo il cammino minimo. Flooding. Routing basato sui flussi. Routing basato su vettori di distanza. Routing basato sullo stato dei canali. Broadcast routing. Multicast routing. Routing IP: OSPF. BGP. Internet multicasting.
6. Internetworking IP. Circuiti virtuali concatenati. Internetworking senza connessioni. Tunneling e gestione della frammentazione. Firewall. NAT.
7. Il servizio di trasporto. Elementi del protocollo di trasporto. Trasporto TCP/IP: Il modello di servizio TCP. Il protocollo TCP. Il protocollo UDP. Il preambolo del segmento TCP. Il preambolo UDP. Qualità del servizio. Primitive del servizio di trasporto.

Nella seconda parte dell'insegnamento verranno analizzati i livelli superiori del modello ISO/OSI, discutendo i principali protocolli applicativi e servizi per la rete Internet, e le tecniche per la programmazione distribuita.

1. Protocolli e sistemi applicativi client-server. Struttura dei servizi applicativi basati su TCP e UDP.
2. Protocolli applicativi per il funzionamento della rete IP. Protocolli BOOTP, DHCP. Modalità di assegnamento degli indirizzi IP. DNS. Naming. Concetto di dominio. Risoluzione dei nomi di dominio.
3. Applicazioni e servizi Internet. WWW, Electronic Mail, File Transfer, Remote Login. Descrizione e analisi dei protocolli HTTP, FTP, Telnet, SMTP, POP3.
4. Amministrazione di rete. Descrizione del protocollo SMNP per la gestione della rete.
5. Programmazione distribuita. Socket. Interfacce standard a livello socket e stream per Unix e Windows. Socket TCP e UDP. Socket C e Java. Socket concorrenti. Tecniche di integrazione tramite middleware. Remote Procedure Call (RPC). XML RPC.
Prerequisiti
Conoscenza dei fondamenti delle architetture degli elaboratori.
Metodi didattici
Il corso viene erogato tramite videolezioni. Esercitazioni teoriche e pratiche sono disponibili in piattaforma.
Materiale di riferimento
Videolezioni, dispense e slide disponibili in piattaforma

Testo di riferimento:
- D.E. Comer, "Internetworking with TCP/IP: Principles, protocols, and architectures", Volume I, Prentice Hall. Disponibile anche in edizione italiana (edizioni Pearson Education)

Ulteriori riferimenti consigliati:
- J. Kurose, K. Ross, "Computer Networking: A Top down Approach featuring the Internet", 3rd ed. Addison Wesley
- C. Huitema, "Ipv6: New Internet Protocol", Prentice-Hall
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in due prove scritte e nella presentazione facoltativa di un progetto svolto individualmente o in gruppo (massimo tre persone). Le prove scritte, della durata di un'ora e mezza ognuna, puntano ad accertare, tramite una serie di domande a risposta aperta, le conoscenze dello studente su tutti gli argomenti trattati nell'insegnamento. Il progetto, proposto dal docente o dallo studente, mira ad approfondire gli aspetti pratici di uno degli argomenti trattati nell'insegnamento.

Una volta superate tutte le prove e presentato l'eventuale progetto, viene formulata la valutazione complessiva, espressa in trentesimi, tenendo conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di un progetto concreto, qualità del progetto sviluppato, capacità di ragionamento critico, chiarezza espositiva e proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente: Damiani Ernesto
Siti didattici
Docente/i
Ricevimento:
Solo su appuntamento: contattare il Dott. Fulvio Frati (fulvio.frati@unimi.it)
ufficio presso il Dipartimento di Informatica - via Celoria 18, 20133 Milano