Reti di calcolatori

A.A. 2017/2018
12
Crediti massimi
120
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento ha come obiettivo principale l'analisi delle tecnologie, dei modelli, dei principi di funzionamento e dei 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. Per la realizzazione degli obiettivi sopra enunciati, sono previste lezioni frontali (72 ore - 9 cfu) e lezioni in laboratorio con esercitazioni pratiche (48 ore - 3 cfu).
Risultati apprendimento attesi
Gli studenti apprenderanno le tecnologie, i modelli, i principi di funzionamento e i principali protocolli alla base delle reti di calcolatori, con particolare riferimento alla rete IP. Gli studenti apprenderanno inoltre i principali protocolli applicativi, e relativi servizi, della rete IP e le tecniche di programmazione distribuita basate su socket e RPC.
Programma e organizzazione didattica

Edizione unica

Periodo
Secondo semestre
Programma
L'insegnamento presenterà le tecnologie e i protocolli alla base del funzionamento delle reti di calcolatori. Nella prima parte dell'insegnamento verranno discussi i fondamenti dei sistemi di rete, le reti locali, la rete Internet, con particolare riferimento ai protocolli di rete e di trasporto (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. Topologie: reti parzialmente o completamente connesse, gerarchiche, ad anello, a stella, a bus. Comunicazione: i concetti di instradamento, connessione, contesa. Il livello 1: cablaggi e proprietà fisiche della comunicazione in guida. Il livello 2: MAC e LLC. Gli standard IEEE.
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.
6. Fondamenti del cloud computing.

Nella terza parte dell'insegnamento si svolgeranno prove in laboratorio che verteranno principalmente (i) sull'analisi sperimentale e configurazione dei principali protocolli e servizi per la rete Internet, (ii) sui concetti di programmazione distribuita appresi.
Informazioni sul programma
Gli studenti apprenderanno le tecnologie, i modelli, i principi di funzionamento e i principali protocolli alla base delle reti di calcolatori, con particolare riferimento alla rete IP. Gli studenti apprenderanno inoltre i principali protocolli applicativi, e relativi servizi, della rete IP e le tecniche di programmazione distribuita basate su socket e RPC. Gli studenti apprenderanno infine i principali fondamenti del cloud computing.
Propedeuticità
Nessuna
Prerequisiti
Conoscenza dei concetti base delle architetture dei calcolatori.

L'esame consiste di una prova scritta obbligatoria, composta di due compitini. La prova scritta punta ad accertare le conoscenze dello studente su tutti gli argomenti trattati nel corso. Dopo la prova scritta è facoltà degli studenti con un voto medio complessivo maggiore o uguale a 18 richiedere lo svolgimento di un progetto che verrà discusso nel dettaglio durante una prova orale. Il progetto dà diritto a un incremento sul voto dello scritto fino a un massimo di 3 punti nel caso di progetto ottimo.

Ulteriori informazioni possono essere reperite sui siti personali dei docenti
- http://www.di.unimi.it/ardagna/
- http://sesar.di.unimi.it/
e sulla pagina del corso presso il portale https://ariel.unimi.it/
Metodi didattici
Lezioni frontali e lezioni in laboratorio
Materiale 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)
- Testo alternativo: Jim Kurose, Keith Ross, "Computer Networking: A Top down Approach featuring the Internet", 3rd ed. Addison Wesley
- Dispense e slide disponibili alla pagina web dell'insegnamento (https://ariel.unimi.it)
INF/01 - INFORMATICA - CFU: 12
Laboratori: 48 ore
Lezioni: 72 ore
Docente/i
Ricevimento:
Su appuntamento
Ufficio docente (7004) presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)
Ricevimento:
Solo su appuntamento: contattare il Dott. Fulvio Frati ([email protected])
ufficio presso il Dipartimento di Informatica - via Celoria 18, 20133 Milano