Skip to content

Lezione (2025-11-21)

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;

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;
sezionelunghezza (bit)
versione (4 o 6)4
lunghezza header (in bytes)4
tipo di servizio8
lunghezza datagramma (in bytes)16
id datagramma16
flags3
offset frammento13
ttl8
protocollo superiore (ad esempio TCP o UDP)8
checksum header16
indirizzo IP sorgente32
indirizzo IP destinazione32
opzioni (campo non obbligatorio)0-?
paddingbit 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);

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;
  • 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.

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.

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.