Lezione (2025-11-21)
Livello di rete
Section titled “Livello di rete”Lo scopo del livello 3 è quello di spostare datagrammi da un host ad un altro, soprattutto quando essi si trovano su reti locali diverse.
Al livello 3 i router possono ispezionare le headers dei datagrammi per prendere decisioni di inoltro.
Le sue funzioni principali sono 2:
- inoltro (forwarding): consiste nello spostamento (ed eventuale modifica) del pacchetto dall’ingresso all’uscita di un router;
- instradamento (routing): consiste nel determinare il percorso che il pacchetto deve seguire;
Si possono distinguere 2 parti del livello:
- data plane: trasporta i dati dell’utente, si occupa soprattutto del forwarding;
- control plane: scambia messaggi per capire la miglior strategia di routing;
Protocollo IP
Section titled “Protocollo IP”Il protocollo IP è il protocollo che si occupa del trasporto di dati. Stabilisce:
- convenzioni sugli indirizzi da usare;
- il formato dei datagrammi;
- le politiche di gestione dei pacchetti;
Datagramma IP (IPv4)
Section titled “Datagramma IP (IPv4)”| sezione | lunghezza (bit) |
|---|---|
| versione (4 o 6) | 4 |
| lunghezza header (in bytes) | 4 |
| tipo di servizio | 8 |
| lunghezza datagramma (in bytes) | 16 |
| id datagramma | 16 |
| flags | 3 |
| offset frammento | 13 |
| ttl | 8 |
| protocollo superiore (ad esempio TCP o UDP) | 8 |
| checksum header | 16 |
| indirizzo IP sorgente | 32 |
| indirizzo IP destinazione | 32 |
| opzioni (campo non obbligatorio) | 0-? |
| padding | bit mancanti per arrivare a % 32 == 0 |
In particolare:
- tipo di servizio: usato raramente, perchè ogni router dovrebbe conoscere tutti i possibili tipi di servizio;
- id, flags, offset frammento: un datagramma può essere frammentato quando i layer inferiori non supportano dimensioni così grandi. Questi dati servono a ricomporre il datagramma intero;
- ttl: diminuisce di 1 ad ogni hop di router (per impedire loop di pacchetti);
MTU e frammentazione
Section titled “MTU e frammentazione”Ciascun tipo di hardware specifica un limite di dati che una trasmissione può trasportare (MTU). Quindi ciascun datagramma deve contenere al più un numero di bytes pari alla MTU.
Il router che esegue la frammentazione è quello che si interfaccia con la rete ad MTU ristretto. Poi la ricomposizione viene fatta soltanto a destinazione (i frammenti possono anche seguire percorsi diversi).
Significato dei flag:
- D (do not fragment): il router ricevente indica che scarterà i pacchetti frammentati;
- M (more fragments): indica se il pacchetto è stato diviso in frammenti;
Svantaggi della frammentazione
Section titled “Svantaggi della frammentazione”- Un datagramma frammentato non può essere ricomposto fino a quando non sono arrivati tutti i frammenti.
- Il ricevitore deve memorizzare i frammenti finché non arriva l’ultimo (ttl specificato dal protocollo IP).
- La frammentazione si è rivelata un target per attacchi DDoS, quindi molti router la disabilitano e IPv6 nemmeno la supporta.
Indirizzi IPv4
Section titled “Indirizzi IPv4”Un indirizzo IPv4 è una stringa di 32 bit associata ad un’interfaccia di rete. Un’interfaccia è la connessione tra l’host e il router (collegamento fisico), ognuna ha un indirizzo differente.
Ogni indirizzo IP pubblicamente raggiungibile deve essere unico. I router prendono decisioni basandosi unicamente sull’indirizzo di destinazione.
Gerarchia degli indirizzi
Section titled “Gerarchia degli indirizzi”Gli indirizzi sono generalmente divisi in 2 parti:
- prefisso: indica la rete alla quale l’host è allacciato (netID). Un netId specifica una LAN.
- suffisso: identifica un’interfaccia allacciata a quella rete (hostID).
Una volta la divisione tra prefisso e suffisso era prestabilita, le reti erano divise in classi dove rispettivamente: classe A aveva suffisso di 24 bit, classe B aveva suffisso di 16 bit e classe C aveva suffisso di 8 bit.