RETI DI CALCOLATORI A - L
Anno accademico 2025/2026 - Docente: FEDERICO FAUSTO SANTORORisultati di apprendimento attesi
Vengono presentate le problematiche relative all'interconnessione fisica, mettendo in evidenza le limitazioni del mondo reale e le tecniche per superare tali limiti.
Successivamente viene descritta la suite dei protocolli TCP/IP, nelle tre componenti base: livello IP, livello di trasporto e livello applicativo.
Per ultimo vengono dati alcuni cenni sulle problematiche relative alla sicurezza.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
- Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo del corso è quello di far acquisire conoscenze che consentano allo studente di comprendere i meccanismi teorici e fisici che stanno alla base di un sistema di comunicazione; in particolare lo studente acquisirà le conoscenze dei principali protocolli che sono alla base di una rete di calcolatori
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per configurare interamente una rete aziendale di medie dimensioni, scegliendo gli apparati più opportuni, realizzando i cablaggi e ottimizzando le risorse disponibili. A tale riguardo una parte del corso consisterà di lezioni in laboratorio, con esempi pratici di configurazione e collegamento di host.
- Autonomia di giudizio (making judgements): Attraverso esempi concreti di errori derivanti da configurazioni non corrette, lo studente sarà in grado di elaborare autonomamente soluzioni in grado di risolvere i principali problemi che un amministratore di rete potrà trovare nel suo lavoro.
- Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dei sistemi informativi e delle reti di computer in particolare.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali.
Modalità di svolgimento dell'insegnamento
Le lezioni sono tenute in aula con l'ausilio di slide, messe a disposizione degli studenti. Le slide non sostituiscono i testi di riferimento, ma, oltre che agevolare la comprensione della lezione, forniscono un dettaglio puntuale sul programma svolto.
Le lezioni frontali teoriche sono intervallate da esercitazioni pratiche in ambiente virtuale, svolte nella stessa aula di lezione. Gli studenti sono invitati a formare piccoli gruppi di lavoro (massimo 4-5 persone) per lo svolgimento delle esercitazioni proposte.
In caso di necessità, a seguito di apposite indicazioni da parte degli organi di Ateneo, l'insegnamento potrà essere impartito in modalità mista o a distanza, con le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto qui riportato.
Prerequisiti richiesti
Per la piena comprensione dei contenuti del corso sono necessari i seguenti prerequisiti:
- Programmazione in C, C++ e Python
- Elementi di Architettura degli elaboratori
- Nozioni basilari di Sistemi Operativi
Frequenza lezioni
Contenuti del corso
Introduzione alle Reti di Calcolatori
Definizione di una Rete e come crearla
I nodi di una rete
Tipologie di ruoli
Come connettere più nodi
Hub, Bridge e Switch
Router e gerarchie di rete
Stack di Rete
Come avviene la comunicazione
Modello OSI (dal punto di vista pratico)
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data Link Layer
Incapsulamento e Decapsulamento
Protocol Data Unit
Modello TCP/IP (dal punto di vista pratico)
Application Layer
Transport Layer
Internetwork Layer
Network Access Layer
Network Routing
Indirizzamento Logico e Fisico
Topologia Logica e Fisica
Stack di Rete e Routing
Ruoli e responsabilità dei nodi nella rete
Tabelle di Routing
Network Administration
Nodi e Virtualizzazione
Tipologie di Virtualizzatori
Installazione e introduzione ad Alpine Linux
Comandi di rete
Indirizzi IP e Maschere
Come realizzare uno Switch
Bridge e Bounding
Come realizzare un Router
IP Forwarding e Routing Tables
I file di configurazione
Connessione remota alle macchine
Il problema dell'ISP
Gestione della NAT
IP TABLES
Network Programming
Il bisogno dei software di dover comunicare
Programmazione Concorrente
Programmazione Distribuita
Endianess
Socket di Rete (BSD)
Stream e Datagram Socket
Ruolo delle Socket nello Stack di Rete
Flusso delle socket
Strutture di sistema
Client e Server TCP
Programmazione parallela
Thread e Processi
Definizione di un protocollo
Strutture e Stringhe
Socket UDP
Comunicazione P2P
Comunicazione Interprocesso
Necessità di parlare tra sistemi diversi
Uso di tecnologie diverse
Socket in Python
Strutture in Python
Testi di riferimento
- J.F. Kurose - K. W. Ross: Internet e Reti di calcolatori
- D.E. Comer: Internetworking con TCP/IP - vol.1
- A. Tanenbaum: Reti di Computer
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Introduzione alle reti di calcolatori | |
| 2 | Il livello applicativo | |
| 3 | Il livello di Trasporto | |
| 4 | Connessioni UDP | |
| 5 | Principi per il trasferimento dati affidabile | |
| 6 | Il protocollo TCP | |
| 7 | Controllo della congestione in TCP | |
| 8 | Il livello di rete | |
| 9 | IPv4 | |
| 10 | IPv6 | |
| 11 | Protocolli di Routing | |
| 12 | Livello Data Link | |
| 13 | Rilevazione e correzione degli errori | |
| 14 | Ethernet | |
| 15 | VLan | |
| 16 | Creazione e configurazione di un host Linux based in ambiente virtuale | |
| 17 | Configurazione delle interfacce di rete in ambiente Unix | |
| 18 | Configurazione di un router su VM |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consiste in una prova scritta, di un colloquio orale ed una prova in Laboratorio.
E' importante sapere che, salvo diversa comunicazione:
- l'esame scritto si svolge alle ore 9:00
- la prova orale si svolge lo stesso giorno della prova scritta.
- la prova di laboratorio si svolge nei giorni subito seguenti la prova scritta.
Per problemi organizzativi, tale schedulazione potrebbe essere modificata.
Note:
- È vietato l'uso di qualsiasi strumento hardware (calcolatrici, tablet, smartphone, smartwatch, cellulari, auricolari BT etc.), di libri o documenti personali durante le prove. Eventuale documentazione sarà fornita dalla commissione durante l'esame. La prova di laboratorio si svolge su HW messo a disposizione dal CdL. E' possibile consultare esclusivamente la documentazione fornita dalla commissione.
- Per sostenere gli esami è necessario prenotarsi utilizzando l'apposito modulo del portale studenti.
- Non sono ammesse prenotazioni tardive tramite email. In mancanza di prenotazione, l'esame non può essere nè sostenuto nè verbalizzato.
Prove in Itinere: Non previste
In caso di necessità, a seguito di apposite indicazioni da parte degli organi di Ateneo, la verifica potrà essere effettuata in modalità telematica, con le necessarie variazioni rispetto a quanto dichiarato in precedenza.
Le prove sono finalizzate per ottenere una valutazione complessiva della preparazione dello studente Il voto è attribuito secondo il seguente schema:
- Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi teorici e pratici.
- 18-20: lo studente dimostra una padronanza appena sufficiente dei concetti base, e/o riesce ad impostare gli esercizi teorico/pratici con molta difficoltà e con vari errori.
- 21-24: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
- 25-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori di particolare rilievo.
Esempi di domande e/o esercizi frequenti
Header opzionali in IPv6
Protocolli di routing: DV
Protocolli di routing: LSR
Controllo della congestione in TCP
Controllo del flusso in TCP
Apertura e chiusura delle connessioni TCP
Rilevazione e correzione degli errori
Indirizzamento a livello DL
IEEE 802.3
Protocolli di livello applicativo