Reti di Calcolatori - canale A-I (9 CFU)

Università degli Studi di Napoli Federico II

Corso di Laurea in Ingegneria Informatica

Prof. Roberto Canonico

A.A. 2023-24

AVVISO: E' opportuno che gli studenti che seguono il corso di Reti di Calcolatori del prof. Canonico si iscrivano al corso sul sito http://www.docenti.unina.it/roberto.canonico mediante la apposita procedura, selezionando l opzione "Iscrizione alla mailing list" per ricevere eventuali comunicazioni dal docente.
E' anche opportuna l'iscrizione sulla piattaforma Microsoft Teams al Team:
2023/2024: Reti di Calcolatori (A-I) - Prof. CANONICO
usando il codice pubblicato mediante avviso in bacheca sul sito docenti.
Si invitano gli studenti a consultare quotidianamente gli avvisi pubblicati nella bacheca del sito docenti.

Programma dettagliato delle lezioni

La sequenza degli argomenti e le slide del corso potranno subire variazioni durante il corso.

Lezione Data Slide / Riferimenti Argomenti
1 12/09/2023 Introduzione al Corso. Introduzione alle reti di calcolatori.
Commutazione di circuito e di pacchetto.
Reti a datagrammi e reti a circuiti virtuali.
2 14/09/2023 Introduzione ai modelli a strati delle reti di calcolatori.
Concetto di protocollo. Imbustamento dei messaggi.
Esempio dei due filosofi.
Il modello di riferimento ISO-OSI. Presentazione dei sette livelli del modello OSI.
3 15/09/2023 Commutazione di pacchetto e qualità del servizio.
Introduzione allo stack TCP/IP. IETF ed RFC.
Ruolo degli standard nelle reti. Standard chiusi e standard aperti.
Presentazione generale dello stack di protocolli TCP/IP: funzionalità del livello rete.
Formato di un datagram IPv4. Indirizzi IPv4. Funzioni di un router IP.
Presentazione generale dello stack di protocolli TCP/IP: funzionalità del livello trasporto.
Differenza tra protocolli TCP ed UDP.
Ruolo dei port number nei protocolli di trasporto.
4 21/09/2023 Introduzione ai protocolli applicativi.
Protocolli applicativi e loro relazione con i protocolli di trasporto.
Il protocollo HTTP. Formato dei messaggi.
Il protocollo HTTP: metodi GET, HEAD, POST, PUT.
Trasmissione di dati da form HTML mediante il protocollo HTTP: differenza tra uso di GET e POST.
HTTP e connessioni persistenti.
5 22/09/2023 Analisi di un RFC: RFC 2616. Cenni alla notazione ABNF (Augmented Backus Naur Form).
Analisi di una traccia di traffico HTTP con Wireshark.
Cooky e loro utilizzo nelle applicazioni web.
Web caching e protocollo HTTP. Proxy cache. Gestione della coerenza con HTTP.
Browser web e web engine.
Introduzione al sistema DNS.
6 22/09/2023 Introduzione al linguaggio Python.
7 26/09/2023 Il servizio DNS. Il protocollo DNS.
Tipologie di Resource Record gestite dal DNS.
Esempi di uso pratico di nslookup per l'interrogazione di server DNS.
8 28/09/2023 Il protocollo FTP.
Posta elettronica. I protocolli SMTP e POP3. Formato di messaggi di posta elettronica con allegati.
Content Delivery Networks.
9 29/09/2023 Applicazioni peer-to-peer. Caratteristiche generali.
Meccanismi di discovery di tipo query flooding.
Cenni su Napster, Gnutella e BitTorrent.
Programmazione di applicazioni TCP/IP con le socket: concetti generali.
Programmazione di applicazioni client/server in Python.
10 05/10/2023 Il livello rete in Internet. Il protocollo IPv4. Servizio best-effort.
Formato del pacchetto IPv4.
Frammentazione e riassemblaggio dei pacchetti in IPv4.
11 06/10/2023 Indirizzi IPv4. Assegnazione degli indirizzi IP. Gestione degli indirizzi IPv4 per classi.
CIDR e subnetting in IPv4. La netmask. Subnetting FLSM.
Esempi di piani di indirizzamento con subnetting.
Funzionamento di un router IP: control plane e data plane.
Forwarding e tabella di routing. Longest prefix match.
12 10/10/2023 Trasmissione di datagram IP su rete Ethernet.
Il protocollo ARP. Gratuitous ARP. ARP Probe ed ARP announcement. Proxy ARP. RARP.
Il protocollo DHCP.
Il protocollo ICMP. Il tool ping.
13 12/10/2023 Il tool traceroute. Analisi dell'output di traceroute.
Il tool Wireshark per la cattura di pacchetti.
Configurazione delle rotte statiche in una rete di piccole dimensioni.
14 13/10/2023 Network Address Translation (NAT).
Funzionamento di un router NAT. Port forwarding. UPnP.
Tecniche di NAT traversal (cenni).
Routing in reti a datagrammi. Routing statico e dinamico.
Routing Link State. Broadcast dei Link State Packets.
Algoritmo di Dijkstra. Esempio di esecuzione dell'algoritmo di Dijkstra.
Problemi di oscillazione del routing link-state.
15 17/10/2023 Routing Distance Vector. Formula di Bellmann-Ford.
Problemi di convergenza del routing Distance Vector.
Problema del conteggio all'infinito. Split horizon e reverse poisoning.
Protocolli di routing: RIP ed OSPF.
16 19/10/2023 Esercitazione con GNS3.
Presentazione dell'ambiente.
Emulazione di una rete con routing statico.
17 20/10/2023 Il protocollo IPv6. Formato dell'header IPv6. Indirizzamento in IPv6.
Modalità di transizione da IPv4 a IPv6 (cenni).
Il routing in Internet. Autonomous Systems. Routing interno e routing esterno.
Relazioni tra AS. AS stub e multihomed. Routing inter-dominio. IXP.
18 24/10/2023 Tecniche di trasmissione broadcast: flooding e flooding controllato.
RPF. Spanning tree.
IP multicast. IGMP. Trasmissione di datagram multicast in frame Ethernet.
19 26/10/2023 Introduzione ai protocolli di trasporto: servizio connectionless vs. connection-oriented. Multiplexing e demultiplexing.
Protocollo UDP. Formato dell'header UDP.
Internet Cheksum.
Trasmissione di flussi multimediali in reti a commutazione di pacchetto. Streaming e playout buffer.
Protocolli per applicazioni multimediali: RTP ed RTCP.
Dynamic Adaptive Streaming over HTTP (DASH).
20 27/10/2023 Cenni al problema della rivelazione e correzione di errori nella comunicazione.
Trasmissione affidabile a livello trasporto: protocollo stop-and-wait.
Analisi di efficienza di S-and-W.
Pipelining: protocolli go-back-N e selective-repeat.
21 27/10/2023 Esercizio sul subnetting IP.
Esercitazione: emulazione di routing OSPF in GNS3.
22 31/10/2023 Il protocollo TCP. I campi dell'header TCP. Numero di sequenza ed ack.
Il retransmission timer di TCP e l' algoritmo di scelta del timeout.
Apertura e chiusura di una connessione TCP. Diagrammi di stato TCP.
Apertura di una connessione TCP: three-way handshake.
Chiusura di una connessione TCP: four-way handshake.
Procedura di chiusura delle connessioni TCP e stato TIME_WAIT.
Il protocollo TCP: un modello del sender. Gestione degli ack.
Ulteriori dettagli sul protocollo TCP: opzioni, MSS, Windows scale.
23 02/11/2023 Controllo di flusso in TCP. Problema della silly window sindrome. Algoritmo di Nagle. Soluzione di Clark.
Problema del controllo di congestione: tecniche end-to-end e tecniche a livello rete.
Controllo di congestione in TCP. Slow-start ed AIMD.
Congestion avoidance.
Differenza di comportamento tra TCP Tahoe e TCP Reno. Semplici modelli del throughput di una connessione TCP.
Fairness di TCP.
24 03/11/2023 Il livello di collegamento: introduzione e servizi.
Tecniche di rilevazione e correzione degli errori: controllo di parità, checksum, CRC.
Tecniche di accesso multiplo ad un canale condiviso: partizionamento del canale, tecniche ad accesso casuale, tecniche a rotazione.
Tecniche di partizionamento del canale: TDMA ed FDMA.
25 14/11/2023 Tecniche ad accesso casuale: slotted ALOHA e ALOHA puro.
Analisi dell'efficienza massima di slotted ALOHA ed ALOHA puro.
Tecniche ad accesso casuale: CSMA e CSMA/CD.
Cenni alle tecniche di accesso multiplo basate su rotazione.
La tecnologia Ethernet. Struttura dei pacchetti.
Indirizzi di livello datalink: indirizzi MAC.
Algoritmo di backoff esponenziale nel CSMA/CD di Ethernet.
Cenni alla evoluzione del cablaggio delle reti Ethernet: 10base5, 10base2, 10baseT.
26 16/11/2023 Cablaggio UTP: schemi TIA/EIA T-568A e T-568B.
Interconnessione di LAN: hub vs. bridge.
Bridge ed autoapprendimento.
Switch Ethernet. Differenze tra hub e switch Ethernet.
Evoluzione della tecnologia Ethernet. Ethernet full-duplex.
Cablaggio strutturato. Cenni alle caratteristiche dei vari mezzi trasmissivi utilizzati in ambito LAN.
27 17/11/2023 Virtual LAN (VLAN): introduzione.
Seminario: Bringing AI to Production: Tackling Challenges and Riding Viral Waves. Lorenzo Migliorino (Bending Spoons).
28 21/11/2023 Virtual LAN (VLAN). Trunking. VLAN tagging in IEEE 802.1q.
Esercitazione su GNS3: VLAN.
29 23/11/2023 Esercitazione su GNS3: OSPF. Differenza tra hub e switch vista con GNS3.
Esercizi su indirizzamento e subnetting in reti IP.
30 24/11/2023 Reti wireless. Differenza tra modo infrastruttura e modo ad-hoc. Bande ISM.
Caratteristiche del canale wireless: fading e multipath. Il problema del terminale nascosto.
Partizionamento del canale: CDMA.
Cenni alla architettura delle reti cellulari 4G: RAN ed EPC.
Seminario ALTEN group.
31 30/11/2023 Reti locali wireless secondo lo standard 802.11.
Procedure di associazione. CSMA/CA. Frame RTS e CTS. Struttura della trama 802.11. Sistema di distribuzione.
Cenni alla evoluzione delle reti: Software Defined Networking (SDN).
Primi cenni sulla sicurezza delle comunicazioni in rete.
32 01/12/2023 Sicurezza nelle comunicazioni in rete: cenni alle tecniche di cifratura.
Crittografia a chiave simmetrica. Cifrari a blocchi. Cenni a DES, 3DES ed AES.
Crittografia a chiave pubblica. Algoritmo RSA: scelta delle chiavi, cifratura e decifratura.
33 05/12/2023 Funzioni hash crittografiche: MD5, SHA1, SHA2, SHA3.
Integrità dei messaggi. Message Authentication Code.
Identificazione sicura del mittente.
Firma digitale. Certificazione della chiave pubblica e Certification Authority.
Protocolli di autenticazione. Posta elettronica sicura.
Esempi di codice in Python per il calcolo dell'hash di un file.
34 07/12/2023
Seminario "Ottimizzazione del trasporto del video su IP, opzioni e implementazione nello scenario italiano" (Alessandro Breccia, Cisco)
35 12/12/2023 Programmazione di applicazioni TCP/IP con le socket di Berkeley in C in ambiente Linux.

Libro di testo

  • Reti di calcolatori e Internet. Un approccio top-down. (7a ed.)
    J. Kurose, K. Ross
    Pearson, 2017
    ISBN: 978-8891902542

Ulteriori testi consultabili per approfondimenti

  • Reti di calcolatori terza edizione
    Larry Peterson, Bruce Davie
    Apogeo Education - Maggioli Editore, 2012
    ISBN: 978-8838786396

Standard

Documenti di approfondimento teorico

Approfondimenti pratici, tutorial e simulazioni

Video didattici


Edizioni precedenti del corso


The world is a jungle in general, and the networking game contributes many animals.
-- David C. Plummer, RFC 826

roberto.canonico at unina.it

Ultimo aggiornamento: 12 dicembre 2023