Introduzione
Conosciamo tutti il principio di classificazione e non classificazione del protocollo IP e la sua applicazione nelle comunicazioni di rete. La frammentazione e la ricomposizione IP sono meccanismi chiave nel processo di trasmissione dei pacchetti. Quando la dimensione di un pacchetto supera il limite massimo di unità di trasmissione (MTU) di un collegamento di rete, la frammentazione IP suddivide il pacchetto in più frammenti più piccoli per la trasmissione. Questi frammenti vengono trasmessi indipendentemente nella rete e, una volta giunti a destinazione, vengono ricomposti in pacchetti completi dal meccanismo di ricomposizione IP. Questo processo di frammentazione e ricomposizione garantisce che pacchetti di grandi dimensioni possano essere trasmessi nella rete, preservando al contempo l'integrità e l'affidabilità dei dati. In questa sezione, analizzeremo più in dettaglio il funzionamento della frammentazione e della ricomposizione IP.
Frammentazione e riassemblaggio della proprietà intellettuale
I diversi collegamenti dati hanno diverse unità di trasmissione massime (MTU); ad esempio, il collegamento dati FDDI ha un MTU di 4352 byte e l'MTU Ethernet di 1500 byte. MTU sta per Maximum Transmission Unit (Unità di Trasmissione Massima) e si riferisce alla dimensione massima del pacchetto che può essere trasmesso sulla rete.
FDDI (Fiber Distributed Data Interface) è uno standard di rete locale (LAN) ad alta velocità che utilizza la fibra ottica come mezzo di trasmissione. L'unità di trasmissione massima (MTU) rappresenta la dimensione massima del pacchetto che può essere trasmessa da un protocollo di livello di collegamento dati. Nelle reti FDDI, la dimensione dell'MTU è di 4352 byte. Ciò significa che la dimensione massima del pacchetto che può essere trasmessa dal protocollo di livello di collegamento dati in una rete FDDI è di 4352 byte. Se il pacchetto da trasmettere supera questa dimensione, è necessario frammentarlo per suddividerlo in più frammenti adatti alla dimensione dell'MTU per la trasmissione e il successivo riassemblaggio al ricevitore.
Per Ethernet, l'MTU (Maximum Transmission Unit) è in genere di 1500 byte. Ciò significa che Ethernet può trasmettere pacchetti fino a 1500 byte. Se la dimensione del pacchetto supera il limite MTU, il pacchetto viene frammentato in frammenti più piccoli per la trasmissione e riassemblato a destinazione. Il riassemblaggio del datagramma IP frammentato può essere eseguito solo dall'host di destinazione; il router non effettua questa operazione.
Abbiamo già parlato dei segmenti TCP, ma MSS sta per Maximum Segment Size (Dimensione Massima del Segmento) e svolge un ruolo importante nel protocollo TCP. MSS si riferisce alla dimensione massima del segmento di dati che è consentito inviare in una connessione TCP. Analogamente all'MTU, l'MSS viene utilizzato per limitare la dimensione dei pacchetti, ma lo fa a livello di trasporto, ovvero a livello del protocollo TCP. Il protocollo TCP trasmette i dati del livello applicazione suddividendoli in più segmenti di dati, e la dimensione di ciascun segmento è limitata dall'MSS.
L'MTU di ciascun collegamento dati è diverso perché ogni tipo di collegamento dati viene utilizzato per scopi diversi. A seconda dello scopo di utilizzo, possono essere ospitati MTU diversi.
Supponiamo che il mittente voglia inviare un datagramma di grandi dimensioni (4000 byte) su un collegamento Ethernet. Pertanto, il datagramma deve essere suddiviso in tre datagrammi più piccoli per la trasmissione. Questo perché la dimensione di ciascun datagramma non può superare il limite MTU, pari a 1500 byte. Dopo aver ricevuto i tre datagrammi, il ricevitore li ricompone nel datagramma originale di 4000 byte, basandosi sul numero di sequenza e sull'offset di ciascun datagramma.
Nella trasmissione frammentata, la perdita di un frammento invalida l'intero datagramma IP. Per evitare ciò, TCP ha introdotto MSS, in cui la frammentazione viene eseguita a livello TCP anziché a livello IP. Il vantaggio di questo approccio è che TCP ha un controllo più preciso sulla dimensione di ciascun segmento, il che evita i problemi associati alla frammentazione a livello IP.
Per il protocollo UDP, cerchiamo di non inviare pacchetti di dati di dimensioni superiori all'MTU (Maximum Transmission Unit). Questo perché UDP è un protocollo di trasporto senza connessione, che non offre meccanismi di affidabilità e ritrasmissione come TCP. Se inviamo un pacchetto di dati UDP di dimensioni superiori all'MTU, questo verrà frammentato dal livello IP per la trasmissione. Se uno dei frammenti viene perso, il protocollo UDP non può ritrasmetterlo, con conseguente perdita di dati. Pertanto, per garantire una trasmissione dati affidabile, dovremmo cercare di mantenere le dimensioni dei pacchetti di dati UDP entro i limiti dell'MTU ed evitare la trasmissione frammentata.
Mylinking™ Network Packet Brokerpuò identificare automaticamente vari tipi di protocolli tunnel VxLAN/NVGRE/IPoverIP/MPLS/GRE, ecc., e può essere determinato in base al profilo utente in base alle caratteristiche interne o esterne dell'output del flusso tunnel.
○ È in grado di riconoscere i pacchetti di etichette VLAN, QinQ e MPLS.
○ È in grado di identificare la VLAN interna ed esterna
○ È possibile identificare i pacchetti IPv4/IPv6
○ È in grado di identificare i pacchetti dei tunnel VxLAN, NVGRE, GRE, IPoverIP, GENEVE e MPLS.
○ È possibile identificare i pacchetti IP frammentati (supporta l'identificazione della frammentazione IP e la ricomposizione della frammentazione IP per implementare il filtraggio delle funzionalità L4 su tutti i pacchetti IP frammentati. Implementa la politica di output del traffico).
Perché IP e TCP sono frammentati?
Poiché durante la trasmissione in rete il livello IP frammenta automaticamente i pacchetti di dati, anche se il livello TCP non segmenta i dati, il pacchetto verrà comunque frammentato automaticamente dal livello IP e trasmesso normalmente. Quindi, perché TCP ha bisogno della frammentazione? Non è forse un'esagerazione?
Supponiamo che un pacchetto di grandi dimensioni non venga segmentato a livello TCP e vada perso durante la trasmissione; TCP lo ritrasmetterà, ma solo nella sua interezza (sebbene il livello IP suddivida i dati in pacchetti più piccoli, ognuno dei quali ha una lunghezza MTU). Questo perché il livello IP non si preoccupa della trasmissione affidabile dei dati.
In altre parole, sul collegamento di trasporto tra una macchina e la rete, se il livello di trasporto frammenta i dati, il livello IP non li frammenta. Se la frammentazione non viene eseguita al livello di trasporto, è possibile eseguirla al livello IP.
In parole semplici, TCP segmenta i dati in modo che il livello IP non sia più frammentato e, quando si verificano ritrasmissioni, vengono ritrasmesse solo piccole porzioni dei dati che sono stati frammentati. In questo modo, è possibile migliorare l'efficienza e l'affidabilità della trasmissione.
Se il protocollo TCP è frammentato, anche il livello IP non lo è?
Nella discussione precedente, abbiamo menzionato che dopo la frammentazione TCP al mittente, non si verifica alcuna frammentazione a livello IP. Tuttavia, lungo il collegamento di trasporto potrebbero essere presenti altri dispositivi a livello di rete con un'unità di trasmissione massima (MTU) inferiore all'MTU del mittente. Pertanto, anche se il pacchetto è stato frammentato al mittente, viene frammentato nuovamente quando attraversa il livello IP di questi dispositivi. Infine, tutti i frammenti verranno ricomposti al destinatario.
Se riusciamo a determinare l'MTU minimo sull'intero collegamento e a inviare i dati a quella lunghezza, non si verificherà alcuna frammentazione, indipendentemente dal nodo di destinazione. Questo MTU minimo sull'intero collegamento è chiamato MTU di percorso (PMTU). Quando un pacchetto IP arriva a un router, se l'MTU del router è inferiore alla lunghezza del pacchetto e il flag DF (Do Not Fragment) è impostato su 1, il router non sarà in grado di frammentare il pacchetto e potrà solo scartarlo. In questo caso, il router genera un messaggio di errore ICMP (Internet Control Message Protocol) denominato "Fragmentation Needed But DF Set". Questo messaggio di errore ICMP verrà inviato all'indirizzo sorgente con il valore MTU del router. Quando il mittente riceve il messaggio di errore ICMP, può regolare la dimensione del pacchetto in base al valore MTU per evitare nuovamente la situazione di frammentazione proibita.
La frammentazione IP è necessaria e dovrebbe essere evitata a livello IP, soprattutto sui dispositivi intermedi del collegamento. Pertanto, in IPv6, la frammentazione dei pacchetti IP da parte dei dispositivi intermedi è stata vietata e può essere effettuata solo all'inizio e alla fine del collegamento.
Nozioni di base su IPv6
IPv6 è la versione 6 del protocollo Internet, successore di IPv4. IPv6 utilizza indirizzi a 128 bit, che possono fornire un numero maggiore di indirizzi IP rispetto agli indirizzi a 32 bit di IPv4. Questo perché lo spazio di indirizzi IPv4 si sta gradualmente esaurendo, mentre lo spazio di indirizzi IPv6 è molto ampio e può soddisfare le esigenze di Internet del futuro.
Quando si parla di IPv6, oltre a uno spazio di indirizzamento più ampio, si ottengono anche maggiore sicurezza e scalabilità, il che significa che IPv6 può fornire un'esperienza di rete migliore rispetto a IPv4.
Sebbene IPv6 esista da tempo, la sua diffusione globale è ancora relativamente lenta. Ciò è dovuto principalmente alla necessità di compatibilità tra IPv6 e la rete IPv4 esistente, il che richiede transizione e migrazione. Tuttavia, con l'esaurimento degli indirizzi IPv4 e la crescente domanda di IPv6, sempre più provider di servizi Internet e organizzazioni stanno gradualmente adottando IPv6, realizzando progressivamente il funzionamento dual-stack di IPv6 e IPv4.
Riepilogo
In questo capitolo, abbiamo esaminato più a fondo il funzionamento della frammentazione e del riassemblaggio IP. I diversi collegamenti dati hanno diverse Unità di Trasmissione Massima (MTU). Quando la dimensione di un pacchetto supera il limite MTU, la frammentazione IP divide il pacchetto in più frammenti più piccoli per la trasmissione e li riassembla in un pacchetto completo tramite il meccanismo di riassemblaggio IP una volta giunti a destinazione. Lo scopo della frammentazione TCP è quello di evitare che il livello IP frammenti ulteriormente i pacchetti, ritrasmettendo solo i piccoli dati che sono stati frammentati, in modo da migliorare l'efficienza e l'affidabilità della trasmissione. Tuttavia, lungo il collegamento di trasporto potrebbero essere presenti altri dispositivi di rete con un MTU inferiore a quello del mittente, pertanto il pacchetto verrà comunque frammentato a livello IP di questi dispositivi. La frammentazione a livello IP dovrebbe essere evitata il più possibile, soprattutto sui dispositivi intermedi del collegamento.
Data di pubblicazione: 7 agosto 2025
