Reti di Calcolatori I (9 CFU)

Università degli Studi di Napoli Federico II

Corso di Laurea in Ingegneria Informatica

Prof. Roberto Canonico

A.A. 2021-22

AVVISO: E' opportuno che gli studenti che seguono il corso di Reti di Calcolatori I 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.
Si invitano gli studenti a consultare quotidianamente gli avvisi pubblicati nella bacheca del sito docenti.

AVVISO: In accordo con le normative vigenti inerenti la sicurezza sanitaria, le lezioni dell'anno accademico 2021/2022 saranno tenute in presenza. Per poter partecipare alle lezioni in aula, ogni settimana, gli studenti dovranno prenotarsi utilizzando la piattaforma GO-IN Student. Per ulteriori informazioni si rimanda all'avviso diramato dalla Scuola Politecnica e delle Science di Base.

Sarà anche possibile la partecipazione remota alle lezioni tramite la piattaforma Microsoft Teams, alla quale si dovrà accedere usando le credenziali UNINA ed unendosi al team specificamente creato per il corso, dal nome:
2021/2022: Reti di Calcolatori I (A-I) - Prof. CANONICO
usando il codice pubblicato mediante avviso in bacheca sul sito docenti.
La partecipazione alle lezioni tramite la piattaforma Teams dovrà avvenire nel rispetto delle regole indicate nel documento qui riportato: POLICY USO TEAMS.

Programma dettagliato delle lezioni svolte

Le slide delle lezioni verranno pubblicate in formato PDF dopo ciascuna lezione.

Lezione Data Slide / Riferimenti Argomenti
1 28/09/2021 Introduzione al Corso. Introduzione alle reti di calcolatori.
Commutazione di circuito e di pacchetto.
Reti a datagrammi e reti a circuiti virtuali.
Introduzione ai modelli a strati delle reti di calcolatori.
Concetto di standard.
2 29/09/2021 Modelli a strati delle reti. Concetto di protocollo. Esempio dei due filosofi.
Imbustamento dei messaggi.
Il modello di riferimento ISO/OSI. Funzionalità dei livelli dello stack protocollare.
Introduzione allo stack TCP/IP. IETF ed RFC.
Commutazione di pacchetto e qualità del servizio.
3 30/09/2021 Presentazione generale dello stack di protocolli TCP/IP. Funzionalità del livello rete e del livello trasporto.
Formato di un datagram IPv4. Indirizzi IPv4. Funzioni di un router IP.
Il compito del livello trasporto. Differenza tra protocolli TCP ed UDP.
Introduzione ai protocolli applicativi. Protocolli applicativi e loro relazione con i protocolli di trasporto.
4 05/10/2021 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.
5 06/10/2021 Il protocollo HTTP. RFC 2616. Formato dei messaggi.
Il protocollo HTTP: metodi GET, HEAD, POST, PUT.
Cookies.
6 07/10/2021 HTTP e connessioni persistenti. Web caching e protocollo HTTP. Proxy cache. Gestione della coerenza con HTTP.
Trasmissione di dati da form HTML mediante il protocollo HTTP: differenza tra uso di GET e POST.
Content Delivery Networks.
7 12/10/2021 Il protocollo FTP.
Posta elettronica. I protocolli SMTP e POP3. Formato di messaggi di posta elettronica con allegati.
Applicazioni peer-to-peer. Caratteristiche generali.
Meccanismi di discovery di tipo query flooding.
Cenni su Napster, Gnutella e BitTorrent.
8 13/10/2021 Il livello rete in Internet. Il protocollo IPv4. Servizio best-effort.
Formato del pacchetto IPv4.
Frammentazione e riassemblaggio dei pacchetti in IPv4.
Indirizzi IPv4. Assegnazione degli indirizzi IP.
9 14/10/2021 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.
10 19/10/2021 Funzionamento di un router IP. Forwarding e tabella di routing. Longest prefix match. (vedi slide lezione precedente)
Trasmissione di datagram IP su segmenti di rete Ethernet.
Il protocollo ARP.
11 20/10/2021 Proxy ARP. Il protocollo RARP. (vedi slide lezione precedente)
Il protocollo DHCP.Il protocollo ICMP. I tool ping e traceroute.
Il tool Wireshark per la cattura di pacchetti.
Network Address Translation (NAT).
Funzionamento di un router NAT. Port forwarding. UPnP.
Tecniche di NAT traversal (cenni).
Configurazione delle rotte statiche in una rete di piccole dimensioni.
12 26/10/2021 Il protocollo IPv6. Formato dell'header IPv6. Indirizzamento in IPv6.
Modalità di transizione da IPv4 a IPv6 (cenni).
Routing in reti a datagrammi.
13 27/10/2021 Routing centralizzato e distribuito. 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.
14 28/10/2021 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 e RIPv2.
15 02/11/2021 Protocolli di routing: OSPF.
Tecniche di trasmissione broadcast: flooding e flooding controllato.
RPF. Spanning tree.
IP multicast. IGMP.
Trasmissione di datagram multicast in frame Ethernet.
Cenni al routing multicast.
16 03/11/2021 Cenni alla evoluzione della rete Internet.
Il routing in Internet. Autonomous Systems. Routing interno e routing esterno.
17 04/11/2021 Relazioni tra AS. AS stub e multihomed. Routing inter-dominio. IXP (cenni, vedi slide lezione precedente).
Introduzione ai protocolli di trasporto: servizio connectionless vs. connection-oriented. Multiplexing e demultiplexing.
Protocollo UDP. Formato dell'header UDP.
Cenni al problema della rivelazione e correzione di errori nella comunicazione. Calcolo della cheksum in UDP.
18 09/11/2021 Esercitazione con CISCO Packet Tracer (prima parte).
Presentazione del simulatore. Simulazione di una rete con routing statico.
Simulazione di una rete con routing dinamico tramite protocollo RIP.
19 10/11/2021 Trasmissione affidabile a livello trasporto: protocollo stop-and-wait.
Analisi di efficienza di S-and-W.
Pipelining: protocolli go-back-N e selective-repeat.
Introduzione al linguaggio Python (prima parte).
20 11/11/2021 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.
21 16/11/2021 Procedura di chiusura delle connessioni TCP e stato TIME_WAIT.
Il protocollo TCP: un modello del sender. Gestione degli ack.
Controllo di flusso in TCP. Problema della silly window sindrome. Algoritmo di Nagle. Soluzione di Clark.
Introduzione al linguaggio Python (seconda parte).
22 17/11/2021 Programmazione di applicazioni TCP/IP con le socket: concetti generali.
Programmazione di applicazioni client/server in Python.
23 18/11/2021 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.
Ulteriori dettagli sul protocollo TCP: opzioni, MSS, Windows scale.
Trasmissione di flussi multimediali in reti a commutazione di pacchetto.
Streaming e playout buffer.
24 23/11/2021 Protocolli per applicazioni multimediali: RTP ed RTCP.
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.
25 24/11/2021 Tecniche di partizionamento del canale: TDMA ed FDMA.
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.
La tecnologia Ethernet. Struttura dei pacchetti.
Indirizzi di livello datalink: indirizzi MAC.
Algoritmo di backoff esponenziale nel CSMA/CD di Ethernet.
Cenni alle tecniche di accesso multiplo basate su rotazione.
26 25/11/2021 Cenni alla evoluzione del cablaggio delle reti Ethernet: 10base5, 10base2, 10baseT. 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.
27 30/11/2021 Virtual LAN (VLAN). Trunking. VLAN tagging in IEEE 802.1q.
Cablaggio strutturato. Cenni alle caratteristiche dei vari mezzi trasmissivi utilizzati in ambito LAN.
Esercitazione con CISCO Packet Tracer: simulazione di VLAN.
28 01/12/2021 Esercitazione con Packet Tracer: configurazione di una rete LAN con VLAN e router on a stick.
Esempio di configurazione di un router CISCO mediante comandi da CLI.
Analisi dei pacchetti in modalità simulazione o in mod real-time con sniffer.
Reti wireless. Bande ISM. Cenni alle tecniche di trasmissione spread spectrum.
29 02/12/2021 Reti locali wireless secondo lo standard 802.11. Differenza tra modo infrastruttura e modo ad-hoc.
Procedure di associazione. Il problema del terminale nascosto.
CSMA/CA. Frame RTS e CTS. Struttura della trama 802.11. Sistema di distribuzione.
Cenni alla struttura delle reti cellulari.
Alcuni approfondimenti su indirizzamento IPv6.
30 07/12/2021 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.
Esercizi su indirizzamento e subnetting in reti IP.
31 09/12/2021 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.
Esercizi su indirizzamento e subnetting in reti IP.
32 15/12/2021 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

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: 16 dicembre 2021