2.1 Perché organizzare la rete a livelli?
Una rete è un sistema enormemente complesso: segnali elettrici, indirizzamento, controllo errori, routing, cifratura, interfacce utente… Gestire tutto in un blocco unico sarebbe impossibile. La soluzione è la stessa usata in ingegneria del software: dividere il problema in strati (layer), ciascuno con un compito ben definito.
Ogni livello offre servizi al livello superiore e utilizza i servizi del livello inferiore. I livelli comunicano tra loro attraverso interfacce ben definite. Un livello non ha bisogno di sapere come funziona il livello sottostante, solo cosa gli offre.
Inviare una lettera è un processo a livelli: scrivi il messaggio (applicazione) → lo metti in una busta con l’indirizzo (indirizzamento) → lo porti all’ufficio postale (trasporto) → il postino sceglie il percorso (routing) → il camion viaggia sulla strada (fisico). Chi scrive non deve sapere quale camion trasporterà la lettera.
2.2 Il Modello ISO/OSI (7 livelli)
Il modello OSI (Open Systems Interconnection) è stato definito dall’ISO nel 1984. È un modello di riferimento teorico: non descrive un protocollo reale, ma fornisce un framework per capire e progettare qualsiasi sistema di comunicazione. Ha 7 livelli, numerati dal basso (1) verso l’alto (7).
HTTP, FTP, SMTP, DNS, SSHTCP, UDP. PDU: SegmentoIP, ICMP, ARP. PDU: PacchettoAll People Seem To Need Data Processing → Application, Presentation, Session, Transport, Network, Data Link, Physical. In italiano: Applicazione, Presentazione, Sessione, Trasporto, reTe (Network), Data Link, Fisico.
Dettaglio per ogni livello
| Livello | Compito principale | Indirizzo usato | PDU | Dispositivo tipico |
|---|---|---|---|---|
| 7 — Applicazione | Interfaccia utente, servizi di rete | URL, hostname | Dati | Proxy, Firewall L7 |
| 6 — Presentazione | Codifica, crittografia, compressione | — | Dati | — |
| 5 — Sessione | Gestione sessioni, sincronizzazione | — | Dati | — |
| 4 — Trasporto | Consegna end-to-end, controllo flusso | Porta TCP/UDP | Segmento | Firewall L4 |
| 3 — Rete | Indirizzamento logico, routing | Indirizzo IP | Pacchetto | Router |
| 2 — Data Link | Framing, indirizzamento fisico | MAC Address | Frame | Switch, Bridge, AP |
| 1 — Fisico | Trasmissione bit sul mezzo | — | Bit | Hub, Repeater, Modem |
2.3 Il Modello TCP/IP (4 livelli)
Il modello TCP/IP (detto anche “Internet Protocol Suite”) è nato prima dell’OSI ed è il modello realmente implementato in Internet. È più semplice: ha solo 4 livelli, perché accorpa i livelli 5-6-7 dell’OSI in un unico livello “Applicazione” e i livelli 1-2 in un unico livello “Accesso alla Rete”.
Accorpati
1:1
1:1
Accorpati
HTTP, DNS, FTP, SMTP, SSH
TCP, UDP
IP, ICMP, ARP
Ethernet, Wi-Fi, PPP
OSI si usa come modello di riferimento per studiare, insegnare e diagnosticare (all’esame si chiede sempre OSI). TCP/IP è il modello reale: è quello che gira su ogni computer, smartphone e server del mondo. In pratica si usano entrambi: OSI per ragionare, TCP/IP per implementare.
2.4 Confronto OSI vs TCP/IP
| Caratteristica | ISO/OSI | TCP/IP |
|---|---|---|
| Numero di livelli | 7 | 4 |
| Tipo | Modello teorico / di riferimento | Modello pratico / implementato |
| Sviluppato da | ISO (1984) | DoD / DARPA (anni ’70) |
| Approccio | Prima il modello, poi i protocolli | Prima i protocolli, poi il modello |
| Sessione/Presentazione | Livelli separati (5, 6) | Inglobati nel livello Applicazione |
| Livello Rete | Connesso e non connesso | Solo non connesso (IP è connectionless) |
| Livello Trasporto | Solo connesso | Connesso (TCP) e non connesso (UDP) |
| Uso didattico | Eccellente — chiaro e granulare | Buono — più vicino alla realtà |
| Uso pratico | Scarso — nessuno lo implementa direttamente | Universale — è Internet |
2.5 L’Incapsulamento
Quando un’applicazione invia dei dati, questi attraversano tutti i livelli dal 7 al 1. Ad ogni passaggio, il livello corrente aggiunge il proprio header (e talvolta un trailer) ai dati ricevuti dal livello superiore. Questo processo si chiama incapsulamento.
Al livello destinatario succede il contrario: ogni livello rimuove il proprio header (de-incapsulamento) e passa i dati al livello superiore, fino a restituire il messaggio originale all’applicazione.
I dati non si chiamano sempre “dati”. Ogni livello dà un nome diverso alla propria unità di trasferimento:
Livello 7-5: Dati (Data) → Livello 4: Segmento (TCP) o Datagramma (UDP) → Livello 3: Pacchetto (Packet) → Livello 2: Frame → Livello 1: Bit.
Questo nome è la PDU (Protocol Data Unit).
L’incapsulamento è come mettere una lettera in una busta (livello 7), poi quella busta in una busta più grande con l’indirizzo postale (livello 3), poi il tutto in un pacco con l’etichetta del corriere (livello 2). Ogni “busta” aggiunge informazioni necessarie a quel livello di consegna. Il destinatario apre i pacchetti nell’ordine inverso.
2.6 Comunicazione tra Peer e SAP
Un concetto chiave del modello a livelli è la comunicazione tra peer (pari). Ogni livello su un dispositivo comunica logicamente con lo stesso livello sull’altro dispositivo, anche se fisicamente i dati attraversano tutti gli strati.
Peer: i livelli corrispondenti su due host (es. il livello 4 del mittente “parla” con il livello 4 del destinatario).
SAP (Service Access Point): il punto di interfaccia tra un livello e il successivo. È come una “porta di servizio”.
Protocollo: le regole che governano la comunicazione tra peer dello stesso livello.
Servizio: ciò che un livello inferiore offre al livello superiore attraverso il SAP.
Esempio pratico: quando il browser (livello 7) fa una richiesta HTTP, sta comunicando con il server web (livello 7 dell’altro host). Ma i dati passano fisicamente giù per tutti i livelli del PC, attraversano il cavo, e risalgono tutti i livelli del server. La comunicazione tra peer è logica, non fisica.
2.7 Esempio Pratico: navigare su un sito web
Vediamo cosa succede, livello per livello, quando digiti www.google.com nel browser:
| Livello | Cosa succede | Protocollo/Tecnologia |
|---|---|---|
| 7 — Applicazione | Il browser costruisce una richiesta HTTP GET per la pagina | HTTP/HTTPS |
| 6 — Presentazione | Se HTTPS: negozia la crittografia TLS, cifra i dati | TLS 1.3 |
| 5 — Sessione | Gestisce la sessione TCP (apertura, mantenimento) | Sessione TCP |
| 4 — Trasporto | Crea un segmento TCP, porta sorgente casuale, dest. 443 | TCP, porta 443 |
| 3 — Rete | Aggiunge header IP: IP sorgente del PC, IP dest. di Google | IPv4 / IPv6 |
| 2 — Data Link | Crea il frame Ethernet: MAC del PC → MAC del gateway | Ethernet 802.3 |
| 1 — Fisico | Converte il frame in segnali elettrici/ottici sul cavo | Cat 6a / fibra / Wi-Fi |
Al livello 2, il MAC di destinazione non è quello del server Google (che è in un data center dall’altra parte del mondo). È il MAC del default gateway (il router della rete locale). Il router leggerà l’IP di destinazione (livello 3) e instraderà il pacchetto verso Internet, riscrivendo il MAC di destinazione ad ogni hop.