Cos'è una MTU (unità di trasmissione massima)?

L'unità di trasmissione massima (MTU) è una misura in byte dei pacchetti di dati più grandi che un dispositivo connesso a Internet può accettare.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definisci 'MTU'
  • Scopri come funziona la frammentazione IP
  • Scopri di più sul rilevamento del percorso MTU in IPv4 e IPv6

Copia link dell'articolo

Cos'è MTU?

In rete, l'unità di trasmissione massima (MTU) è una misura che rappresenta il più grande pacchetto di dati che un dispositivo connesso alla rete accetterà. Si immagini come un limite di altezza per sottopassaggi o tunnel autostradali: auto e camion che superano il limite di altezza non possono passare, proprio come i pacchetti che superano l'MTU di una rete non possono passare attraverso quella rete.

Tuttavia, a differenza di automobili e camion, i pacchetti di dati che superano l'MTU vengono suddivisi in pezzi più piccoli in modo che possano passare. Questo processo è detto frammentazione. I pacchetti frammentati vengono quindi riassemblati una volta giunti a destinazione.

L'MTU è misurato in byte: un "byte" è uguale a 8 bit di informazioni, ovvero 8 uno e zero. La dimensione massima è 1.500 byte.

Cos'è un pacchetto?

Tutti i dati inviati su Internet vengono suddivisi in blocchi più piccoli chiamati pacchetti. Ad esempio, quando una pagina Web viene inviata da un server Web al laptop di un utente, i dati costitutivi della pagina Web viaggiano su Internet come una serie di pacchetti. I pacchetti vengono quindi riassemblati nell'intera pagina Web originale dal laptop.

I pacchetti di dati sono costituiti da due parti principali: l'intestazione e il payload. L'intestazione contiene informazioni sugli indirizzi di origine e destinazione del pacchetto, mentre il carico utile è il contenuto effettivo del pacchetto. Si pensi all'intestazione come a un'etichetta di spedizione attaccata a un pacco e al carico utile come al contenuto del pacco. A differenza dei pacchetti, i pacchetti su Internet hanno più intestazioni collegate da diversi protocolli di rete.

MTU si sempre utilizzato in riferimento a pacchetti di livello 3* o pacchetti che utilizzano l'Internet Protocol (IP). MTU misura il pacchetto nel suo insieme, comprese tutte le intestazioni e il payload. Ciò include l'intestazione IP e l'intestazione TCP (Transport Control Protocol), che di solito aggiungono fino a 40 byte di lunghezza.

*Il modello OSI divide le funzioni che rendono possibile Internet in 7 livelli; il livello 3 è il livello di rete, dove si verifica l'instradamento.

Quando vengono frammentati i pacchetti?

Quando due computer aprono una connessione e iniziano a scambiare pacchetti, questi vengono instradati su più reti. Occorre tenere in considerazione non solo la MTU dei due dispositivi ai capi di ogni comunicazione, ma anche tutti i router, gli switch e i server nel mezzo. I pacchetti che superano l'MTU in qualsiasi punto del percorso di rete vengono frammentati.

Supponiamo che il server A e il computer A siano connessi, ma i pacchetti di dati che si scambiano devono passare attraverso il router B e il router C lungo il percorso. Server A, computer A e router B hanno tutti una MTU di 1.500 byte. Tuttavia, il router C ha una MTU di 1.400 byte. Se il server A e il computer A non sono a conoscenza dell'MTU del router C e inviano pacchetti da 1.500 byte, tutti i loro pacchetti di dati verranno frammentati dal router B in transito.

Unità di trasmissione massima - Pacchetto frammentato per adattarsi a una MTU da 1.400 byte

La frammentazione aggiunge un piccolo grado di latenza e inefficienza alle comunicazioni di rete, quindi dovrebbe essere evitata se possibile. Le apparecchiature di rete obsolete possono essere vulnerabili agli attacchi denial-of-service che sfruttano la frammentazione, come l'attacco "ping of death".

Come funziona la frammentazione?

Tutti i router di rete controllano la dimensione di ogni pacchetto IP che ricevono rispetto all'MTU del router successivo che riceverà il pacchetto. Se il pacchetto supera l'MTU del router successivo, il primo router suddivide il carico utile in due o più pacchetti, ciascuno con le proprie intestazioni.

Ogni nuovo pacchetto ha un'intestazione copiata dal pacchetto originale (in modo che tutti i pacchetti abbiano gli indirizzi IP di origine e di destinazione, ecc.) con alcune modifiche importanti. Il router modifica alcuni campi nell'intestazione IP per indicare che i pacchetti sono frammentati e richiedono il riassemblaggio, quanti pacchetti ci sono e in quale ordine vengono inviati.

Immaginiamo che una compagnia di spedizioni stia gestendo un pacco che supera i limiti di peso di una delle loro strutture. Invece di rifiutarsi di consegnare il pacco, la compagnia di spedizioni divide il contenuto del pacco in tre pacchi più piccoli. Duplica anche l'etichetta di spedizione per ogni pacco e aggiunge una nota che indica che ogni pacco fa parte di una serie che deve arrivare insieme: il primo pacco è 1 di 3, il secondo è 2 di 3, ecc. (un simile approccio da parte di una compagnia di navigazione sarebbe una violazione della privacy, quindi non dovrebbe verificarsi nel mondo reale).

Quando la frammentazione non è possibile?

In alcuni casi, i pacchetti non possono essere frammentati, e quindi non verranno consegnati se superano l'MTU di qualsiasi router o dispositivo lungo il percorso di rete:

  1. La frammentazione non è consentita in IPv6. IPv6 è l'ultima versione del protocollo Internet, sebbene IPv4 sia ancora ampiamente utilizzato. I router che supportano IPv6 elimineranno tutti i pacchetti IPv6 che superano l'MTU, perché non possono essere frammentati.
  2. La frammentazione non è possibile nemmeno quando il flag "Don't Fragment" è attivato nell'intestazione IP di un pacchetto.

Che cos'è il flag 'Don't Fragment' in una intestazione IP?

Pensa all'intestazione IP come a un modulo che i consumatori compilano quando spediscono un pacco a qualcuno. Il modulo indica l'indirizzo di origine, l'indirizzo di destinazione, la data di consegna del pacco e altre istruzioni speciali per gli addetti alla consegna.

Il flag "Don't Fragment" è un'istruzione speciale per i router, un'opzione che può essere selezionata nella "forma" di un'intestazione IP. Quando il flag è impostato, il pacchetto allegato non può essere frammentato.

Qualsiasi router che riceve il pacchetto analizzerà l'intestazione e verificherà il flag Don't Fragment. Se il flag è attivo e il pacchetto supera l'MTU, il router elimina il pacchetto invece di frammentarlo.

Oltre a eliminare il pacchetto, il router restituisce un messaggio ICMP all'origine del pacchetto. Un messaggio ICMP è un pacchetto di dati molto piccolo che invia un aggiornamento di stato. In questo caso, essenzialmente dice: "Questo router o dispositivo non è stato in grado di consegnare questi pacchetti perché erano troppo grandi e non potevano essere frammentati".

Cos'è il rilevamento della MTU del percorso?

Il rilevamento della MTU del percorso, o PMTUD, è il processo di rilevamento dell'MTU di tutti i dispositivi, router e switch su un percorso di rete. Se il computer A e il server A dell'esempio precedente utilizzassero PMTUD, identificherebbero i requisiti MTU del router B e regolerebbero di conseguenza la dimensione del pacchetto per evitare la frammentazione.

PMTU funziona in modo leggermente diverso a seconda che i dispositivi collegati utilizzino IPv4 o IPv6:

IPv4: IPv4 consente la frammentazione e quindi include il flag Don't Fragment nell'intestazione IP. PMTUD in IPv4 funziona inviando pacchetti di prova lungo il percorso di rete con il flag Don't Fragment attivato. Se un router o un dispositivo lungo il percorso rilascia il pacchetto, invia un messaggio ICMP con il suo MTU. Il dispositivo di origine abbassa la sua MTU e invia un altro pacchetto di prova. Questo processo viene ripetuto finché i pacchetti di prova non sono sufficientemente piccoli da attraversare l'intero percorso di rete senza essere eliminati.

IPv6: per IPv6, che non consente la frammentazione, MTU funziona più o meno allo stesso modo. La differenza fondamentale è che le intestazioni IPv6 non hanno l'opzione Don't Fragment e quindi il flag non è impostato. I router che supportano IPv6 non frammentano i pacchetti IPv6, quindi se i pacchetti di prova superano l'MTU, i router scartano i pacchetti e inviano i messaggi ICMP corrispondenti senza controllare il flag Don't Fragment. IPv6 PMTUD invia pacchetti di test sempre più piccoli finché i pacchetti non possono attraversare l'intero percorso di rete, proprio come in IPv4.

Cos'è MSS?

MSS sta per dimensione massima del segmento. MSS è utilizzato da TCP al livello 4 di Internet, il livello di trasporto, anziché al livello 3. MSS si occupa solo della dimensione del carico utile all'interno di ciascun pacchetto. Viene calcolato sottraendo la lunghezza delle intestazioni TCP e IP da MTU.

Mentre i pacchetti che superano l'MTU di un router vengono frammentati o eliminati, i pacchetti che superano l'MSS vengono sempre eliminati.

Per maggiori informazioni su MTU e MSS, consulta Cos'è MSS?