RETI DI CALCOLATORI A - L

Anno accademico 2021/2022 - 2° anno - Curriculum Elaborazione Dati e Applicazioni e Curriculum Sistemi e Applicazioni
Docenti: Salvatore Antonio RICCOBENE e Luca GUARNERA
Crediti: 9
SSD: INF/01 - Informatica
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 36 di esercitazione
Semestre:

Obiettivi formativi

Il corso fornisce un'introduzione al mondo delle reti di computer e all'interconnessione tra sistemi.
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.

  1. 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
  2. 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.
  3. 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.
  4. 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.
  5. 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 sul portale Studium. 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:

  • Basi di Programmazione in C e C++
  • Elementi di Architettura degli elaboratori
  • Nozioni basilari di Sistemi Operativi

Frequenza lezioni

La frequenza delle lezioni non è obbligatoria ma è fortemente consigliata. In particolare si consiglia la frequenza alle ore di esercitazione di gruppo.


Contenuti del corso

Introduzione alle Reti di Calcolatori
Architettura di una rete.
Il sistema a livelli nell'architettura di una rete.
Servizi e funzionalità dei vari livelli
L'architettura del protocollo OSI. I livelli del TCP/IP.
Confronto architetturale tra OSI e TCP/IP.
Comunicazioni affidabili e non affidabili.
Servizi con connessione e senza connessione
Primitive di servizio
Reti broadcast, multicast, punto-punto
PAN, LAN, MAN e WAN.
Commutazione di circuito e commutazione di pacchetto.
Reti a circuito virtuale.

Application Layer
Comunicazione tra processi
Lo schema Client - Server
Affidabilità delle comunicazioni e coerenza dei dati end-to end
Requisiti temporali e di affidabilità delle applicazioni
Indirizzamento dei processi.
Well Known Ports, Registered Ports e User Ports
Il protocollo HTTP
Formato dei pacchetti HTTP
Il protocollo FTP
Confronto tra HTTP e FTP
Il protocollo SMTP
POP e IMAP
Il protocollo DNS - I record DNS
Cenni sul protocollo SNMP

Transport Layer
Il modello Client-Server
Indirizzamento a livello di trasporto (Mux -demux)
I Server multipli
Il livello di Trasporto in IP: UDP e TCP.
Formato delle frame UDP
Protocolli di trasferimento affidabile su canali inaffidabili
Velocità di trasferimento dati di un canale
Tempo di latenza
Velocità di trasferimento end-to-end - Banda disponibile ai livelli superiori
Protocolli Stop and wait, Go back N, Ripetizione selettiva
Il protocollo TCP. Formato dei pacchetti TCP
Tempi di Round Trip. Gestione dei Timer. Fast Retransmit
Finestra di ricezione e gestione ACK in TCP
Servizi orientati alla connessione.
Apertura e chiusura delle connessioni: problemi teorici e soluzioni implementative
La congestione nelle reti di comunicazione: aspetti teorici e possibili soluzioni
Controllo del Flusso e controllo della Congestione
Il controllo della congestione in TCP: varianti Tahoe e Reno.
Fairness tra connessioni TCP concorrenti: dimostrazione grafica.

Network Layer
Introduzione al livello di Rete.
Servizi Datagram e servizi con circuito virtuale. Confronto delle caratteristiche
Algoritmi di routing.
Algoritmi centralizzati e distribuiti.
Algoritmo di Dijkstra
Flooding: metodi di controllo del flooding
Distance Vectors.
Link State Routing
Confronto tra DV e LS.
Routing gerarchico.
Implementazioni RIP e OSPF.
Cenni su BGP.
Il protocollo IPv4.
Formato dei pacchetti IPv4.
Indirizzi IPv4. Le Sottoreti.
Tabelle di routing per host e router Indirizzamento IP su LAN ethernet
Indirizzamento intraLAN e interLAN
Frammentazione dei pacchetti IPv4
Protocolli su IP: ICMP, ARP, RARP, BOOTP, DHCP, NAT.
Il protocollo IPv6
Indirizzi IPv6: indirizzamento Anycast, Unicast, Broadcast e Multicast.
Indirizzi di canale
Header opzionali
Cenni sui Firewall.

Data Link Layer
Tecniche di Framing dei dati.
Codifica a due livelli, a tre livelli, a cinque livelli
Codifica 4B/5B, 8B/10B
Aspetti teorici per la rilevazione degli errori.
Uso della ridondanza nelle comunicazioni.
Il CRC. Calcolo del CRC.
Correzione degli errori: aspetti teorici
Distanza di Hamming.
I codici di Hamming.
Il sottolivello MAC
Protocolli del Data Link per il MAC
FDMA, TDMA, CDMA
Aloha puro e slotted.
CSMA
CSMA/CD
Protocolli senza collisioni
Cenni sui protocolli a turno (token)
Le LAN IEEE 802 (.1 .2).
IEEE 802.3.
Ethernet, Fast Ethernet, GigabitEthernet.
Schemi di Trellis e decodifica di Viterbi.
Schemi di interconnessione in Ethernet
Repeater, Hub, Bridge, Switch
Bridge trasparenti.
Schemi di indirizzamento flat.
Confronto tra indirizzamento piatto ed indirizzamento gerarchico: vantaggi e svantaggi
Indirizzi MAC
Le VLAN: Untagged e Tagged - IEEE 802.1Q

Il livello fisico
Analisi di Fourier di un segnale periodico
Analisi nel dominio del tempo e nel dominio delle frequenze
Distorsioni nei segnali
Larghezza di banda, rumore e quantizzazione
Teoremi di Nyquist e di Shannon.
Applicazione dell'analisi di Fourier alle trasmissioni sui canali reali
La modulazione: ampiezza, frequenza e fase
I mezzi trasmissivi: Il doppino in rame, il cavo coassiale, la fibra ottica.
Confronto tra le prestazioni dei mezzi cablati: i cavi Cat3, 5, 6, 7
Cenni sulle reti wireless.
I sistemi a commutazione di circuito.
I modem analogici - la modulazione.
Linee ADSL, xDSL, VDSL
Tecniche di Multiplexaggio: FDM, WDM, TDM.

Laboratorio di Reti

 

I sistemi virtualizzati: aspetti teorici e implementazioni
Creazione di una VM linux based
Configurazione di una VM e collegamento in una LAN privata
Configurazione di una interfaccia di rete con IPv4 e IPv6.
Configurazione delle tabelle di routing.
Configurazione di una rete con LAN differenti connesse da router.
Uso dei socket in C.
Esempio di un sistema Client server con UDP
Esempio di un sistema multiserver con TCP


Testi di riferimento

  1. J.F. Kurose - K. W. Ross: Internet e Reti di calcolatori
  2. D.E. Comer: Internetworking con TCP/IP - vol.1
  3. A. Tanenbaum: Reti di Computer


Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione alle reti di calcolatoriKurose Ross 
2Il livello applicativoKurose Ross 
3Il livello di TrasportoKurose Ross 
4Connessioni UDPKurose Ross 
5Principi per il trasferimento dati affidabileKurose Ross 
6Il protocollo TCPKurose Ross 
7Controllo della congestione in TCPKurose Ross 
8Il livello di reteKurose Ross 
9IPv4Kurose Ross 
10IPv6Kurose Ross 
11Protocolli di RoutingKurose Ross 
12Livello Data LinkKurose Ross 
13Rilevazione e correzione degli erroriKurose Ross 
14EthernetKurose Ross 
15VLanKurose Ross 
16Creazione e configurazione di un host Linux based in ambiente virtuale 
17Configurazione delle interfacce di rete in ambiente Unix 
18Configurazione 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.

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 scritte e orali. Eventuale documentazione sarà fornita dalla commissione durante l'esame.
  • 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.
  • Durante la prova in Laboratorio è possibile consultare appunti cartacei personali.

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.


Esempi di domande e/o esercizi frequenti

Indirizzamento inter lan e intra lan con IPv4
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