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.
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.
Per la piena comprensione dei contenuti del corso sono necessari i seguenti prerequisiti:
La frequenza delle lezioni non è obbligatoria ma è fortemente consigliata. In particolare si consiglia la frequenza alle ore di esercitazione di gruppo.
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
HTTP 1.0, 1.1, 2.0
Il protocollo FTP
Confronto tra HTTP e FTP
Concetti di protocollo stateless e statefull. I cookies
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.
Flooding: metodi di controllo del flooding
Distance Vectors.
Link State Routing
Algoritmo di Dijkstra
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 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
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.
Socket bloccanti e non bloccanti
Esempio di un sistema Client Server con UDP, con IPv4 e IPv6
Esempio di un sistema multiserver con TCP, con IPv4 e IPv6
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione alle reti di calcolatori | Kurose Ross |
2 | Il livello applicativo | Kurose Ross |
3 | Il livello di Trasporto | Kurose Ross |
4 | Connessioni UDP | Kurose Ross |
5 | Principi per il trasferimento dati affidabile | Kurose Ross |
6 | Il protocollo TCP | Kurose Ross |
7 | Controllo della congestione in TCP | Kurose Ross |
8 | Il livello di rete | Kurose Ross |
9 | IPv4 | Kurose Ross |
10 | IPv6 | Kurose Ross |
11 | Protocolli di Routing | Kurose Ross |
12 | Livello Data Link | Kurose Ross |
13 | Rilevazione e correzione degli errori | Kurose Ross |
14 | Ethernet | Kurose Ross |
15 | VLan | Kurose Ross |
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 |
L'esame finale consiste in una prova scritta, di un colloquio orale ed una prova in Laboratorio.
E' importante sapere che, salvo diversa comunicazione:
Per problemi organizzativi, tale schedulazione potrebbe essere modificata.
Note:
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:
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