html Fragmentation et réassemblage IPv4 : explications - FCTELE
                                   +8618758069661 [email protected]
Recherche de produits Guide : espace = ET, | = OU, ! = NON

Comment les fragments IPv4 sont-ils réassemblés ? Identifiants, décalages et réassemblage

Des questions ? Appelez-nous dès aujourd’hui !

+8618758069661

Ou laissez-nous un message

Message en ligne

Comment les fragments IPv4 sont-ils réassemblés ? Identifiants, décalages et réassemblage

Vues : 5 +5Texte original de FCTELEAuteur : équipe technique de FCTELE

NOTIONS FONDAMENTALES D’IPV4

Comment les fragments redeviennent-ils un datagramme ?

Lorsque cela est autorisé, un routeur peut fragmenter un datagramme IPv4 pour l’adapter à la liaison suivante. L’hôte récepteur regroupe les fragments associés, positionne chaque charge utile selon son décalage et attend toutes les parties. Une partie manquante peut entraîner l’expiration du délai de réassemblage du datagramme incomplet. Les schémas ci-dessous expliquent le mécanisme et ne constituent pas une mesure de produit.

01

Chemin

Émetteur → routeur → destination

Un routeur peut effectuer une fragmentation lorsque cela est autorisé et que la MTU du prochain saut est inférieure.

02

Champs

ID · décalage · MF

Le récepteur utilise les adresses, le protocole et l’ID pour regrouper les parties ; les décalages permettent de les positionner.

03

Partie manquante

Attente → expiration du délai → abandon

Le fragment final ne suffit pas à établir que la charge utile est complète.

Liste de vérification pour l’investigation — développer
Vérification Points à confirmer Méthode de vérification
Chemin Interfaces et MTU Consigner le chemin réel
Fragments Adresses, protocole, ID, décalage et MF Comparer les captures autorisées
Pertes Couverture complète Comparer les captures du chemin et du récepteur

Les informations envoyées par un contrôleur n’arrivent pas toujours sous la forme d’un seul datagramme IP complet. Elles sont parfois divisées en fragments. Comment le récepteur reconnaît-il les parties qui vont ensemble et la position de chacune ? Que se passe-t-il si l’une d’elles n’arrive jamais ? Pour comprendre la fragmentation IPv4, il faut distinguer la commutation Ethernet, le routage IP et le réassemblage par le récepteur.

Un datagramme IPv4 fragmenté par un routeur et réassemblé par la destination
Figure 1 : un routeur peut effectuer une fragmentation lorsque cela est autorisé ; la destination réassemble la charge utile IP.

Distinguer d’abord un datagramme IP d’une trame Ethernet

Les contrôleurs, les passerelles et les serveurs échangent des données sur des liaisons. Un datagramme IP est transporté dans une encapsulation externe adaptée à la liaison utilisée ; sur Ethernet, il circule à l’intérieur d’une trame Ethernet. Les trames passent entre des équipements voisins, tandis que les adresses IP contribuent à identifier la destination au niveau de la couche réseau. Ces couches ont des en-têtes et des limites de longueur différents.

L’unité maximale de transmission IP d’une interface, ou MTU, limite la taille d’un paquet IP envoyé par cette interface. Un chemin entre sous-réseaux peut traverser plusieurs interfaces IP dont les limites diffèrent. Un paquet adapté en amont ne l’est pas nécessairement au saut suivant. Ce guide porte sur les champs de fragmentation et le réassemblage ; il ne suggère pas que tout échec concernant de gros paquets est causé par la fragmentation.

Quand la fragmentation peut-elle se produire ?

Un émetteur IPv4 peut effectuer une fragmentation avant la transmission. Un routeur qui achemine du trafic IPv4 peut également diviser un paquet en fragments plus petits si celui-ci dépasse la MTU du prochain saut et si la fragmentation est autorisée. Chaque fragment possède son propre en-tête IP et transporte une partie de la charge utile IP d’origine.

Si le datagramme d’origine a son indicateur DF, ou Don’t Fragment (« ne pas fragmenter »), activé et doit passer par un prochain saut dont la MTU est inférieure, le routeur ne peut pas simplement le diviser. Il abandonne normalement le paquet et renvoie une erreur ICMP appropriée ; le retour effectif dépend des équipements et du filtrage. L’adaptation de la taille des paquets par l’émetteur dépend du protocole et de l’implémentation.

Un commutateur industriel ordinaire de couche 2 achemine des trames Ethernet ; il ne divise pas un datagramme IPv4 trop volumineux en fragments IP. Un équipement doté de fonctions de routage peut traiter le trafic IP différemment selon ses interfaces, sa configuration et le chemin réel. La mention « commutateur » ou « passerelle » sur un boîtier ne permet pas de déterminer le comportement de chaque port.

Comment le récepteur reconnaît-il les fragments associés ?

L’en-tête d’un fragment IPv4 comprend les adresses source et destination, le protocole et l’identification. Le récepteur utilise conjointement ces champs pour associer les fragments au datagramme d’origine. Le champ d’identification sert principalement à la fragmentation et au réassemblage ; il ne doit pas être considéré comme un numéro de série mondialement unique et permanent pour chaque paquet.

Imaginez un long document divisé en pages : une étiquette de lot et les informations du destinataire permettent de regrouper les pages. Cette analogie a ses limites. Les équipements réseau utilisent les champs des paquets et les règles de réassemblage sans comprendre le document, et un ID ne constitue ni une authentification ni un mécanisme de sécurité.

Les captures effectuées au niveau de l’émetteur, du routeur et du récepteur peuvent présenter des points de vue différents. Ne regroupez pas les fragments à partir du seul ID et ne combinez pas sans contexte des captures réalisées dans des directions et à des emplacements différents. Déterminez d’abord le point de capture, l’heure, les adresses IP et le protocole ; examinez ensuite les champs de fragmentation.

Trois fragments IPv4 portant la même identification, avec leurs positions et leurs valeurs MF
Figure 2 : l’identification et la position des fragments aident le récepteur à regrouper et à positionner les parties ; MF indique si d’autres fragments suivent.

Que nous indiquent le décalage et l’indicateur MF ?

Le décalage du fragment indique la position de sa charge utile dans la charge utile IP d’origine. Il est exprimé en unités de huit octets, et non sous la forme d’un numéro d’octet dans une trame Ethernet. Le récepteur utilise les décalages pour positionner les parties plutôt que de simplement les joindre dans leur ordre d’arrivée. Un fragment situé plus loin peut arriver en premier.

MF signifie More Fragments (« d’autres fragments suivent ») : un fragment non final a normalement MF défini à 1, tandis que le fragment final a MF défini à 0. Observer MF = 0 permet de repérer la fin du datagramme ; cela ne prouve pas que toutes les parties précédentes sont arrivées. Le récepteur doit encore disposer d’une couverture complète du début à la fin avant de transmettre la charge utile réassemblée à la couche supérieure.

La fragmentation suit également une règle d’alignement : sauf pour le fragment final, les longueurs des charges utiles des fragments doivent normalement être des multiples de huit octets. Les opérateurs n’ont pas besoin de calculer chaque champ binaire à la main, mais doivent vérifier si l’outil de capture affiche le champ de décalage brut ou une position déjà convertie en octets.

Que se passe-t-il si une partie est perdue ?

Le récepteur conserve généralement un état temporaire de réassemblage et attend les fragments manquants. Si le datagramme reste incomplet à l’expiration de cet état, il est abandonné ; une application ne peut normalement pas utiliser les fragments restants comme un datagramme IP complet. Les limites des tampons, la gestion des délais d’expiration et les politiques de sécurité varient selon les systèmes ; des explications générales ne permettent donc pas d’établir les valeurs propres à un produit particulier.

Davantage de fragments signifie davantage de parties transmises indépendamment pour un même datagramme. Une partie manquante peut empêcher le réassemblage de l’ensemble du datagramme. Le chemin complet et chaque fragment sont donc pertinents, mais un échec concernant de gros paquets ne prouve pas à lui seul une perte de fragments : la congestion, le filtrage, la charge des équipements et d’autres problèmes de liaison peuvent présenter des symptômes similaires.

Le fait que TCP ou une application réessaie relève d’une couche supérieure et dépend du protocole et de l’implémentation. La fragmentation IPv4 ne fournit pas elle-même de mécanisme général de retransmission fiable fragment par fragment. Une application utilisant UDP ne doit pas supposer que IP remplacera automatiquement la charge utile manquante.

Un hôte de destination réassemble les fragments lorsque toutes les données sont présentes ou abandonne un datagramme incomplet après expiration du délai
Figure 3 : la destination a besoin de données complètes ; des fragments manquants peuvent entraîner l’expiration du délai et l’abandon du datagramme.

Que faut-il consigner lors d’une investigation ?

Dans un environnement de test autorisé, commencez par cartographier l’émetteur, les commutateurs de couche 2, les interfaces de routage, les tunnels et le récepteur. Consignez les MTU des interfaces, le réglage DF, le protocole, le lieu et l’heure des captures. Pour chaque groupe de fragments présumé, examinez les adresses source et destination, le protocole, l’identification, le décalage et MF au lieu de regarder uniquement la longueur des paquets.

Si la capture côté émetteur montre un datagramme complet et celle de l’interface de sortie du routeur montre plusieurs fragments, vérifiez l’acheminement IP et la MTU de l’interface. Si tous les fragments quittent cette interface mais que seuls certains atteignent le récepteur, recherchez des pertes ou un filtrage sur le chemin réel. La configuration de la mise en miroir, le déchargement matériel de l’interface réseau et la position de capture peuvent influer sur ce qui est visible ; une seule capture d’écran ne représente pas l’ensemble du réseau.

Examinez également la manière dont les équipements de sécurité traitent les fragments. Certaines règles inspectent les ports de la couche transport, alors qu’un fragment autre que le premier ne contient normalement pas l’en-tête de transport complet. La manière dont un équipement corrèle les informations d’état et autorise ou non les fragments dépend de son implémentation et de ses règles. Le passage du premier fragment ne prouve pas que tous les fragments sont passés. Sauvegardez la configuration existante et coordonnez les modifications avec les personnes responsables de la sécurité opérationnelle et de la cybersécurité.

Si le réassemblage échoue de manière répétée, examinez la MTU du chemin, les pertes de paquets et le filtrage avant de simplement prolonger les délais d’attente du récepteur. Les applications temps réel et celles sensibles à l’exhaustivité des données peuvent avoir des contraintes différentes. Décidez des modifications en vous appuyant sur la conception du protocole, la documentation des équipements et des tests contrôlés.

Pour les systèmes de contrôle de production, faites approuver le créneau et le périmètre de test par le responsable du site. Ne désactivez pas un pare-feu, n’augmentez pas la taille des trames et n’activez pas le routage sans en comprendre les effets et disposer d’un plan de retour arrière. Confirmez la prise en charge du protocole et les limites du réseau avant de tester une modification limitée.

Bien distinguer les étapes

La fragmentation IPv4 est un mécanisme de la couche réseau. Le récepteur utilise les adresses, le protocole, l’identification, les décalages et les informations MF pour réassembler un datagramme. Les parties peuvent arriver dans le désordre, mais le datagramme doit être complet et respecter les règles du récepteur avant sa remise à la couche supérieure. La MTU, le routage IP, les limites de taille des trames du commutateur et les nouvelles tentatives de l’application relèvent d’étapes différentes et nécessitent des éléments de preuve distincts.

Les commutateurs industriels et les passerelles FCTELE peuvent faire partie de réseaux Ethernet industriels. Il faut vérifier dans la documentation si un produit et un micrologiciel donnés prennent en charge le routage IP, les réglages de MTU des interfaces ou le filtrage. Ces illustrations expliquent des mécanismes généraux ; elles ne représentent ni une mesure ni le circuit interne d’un modèle FCTELE particulier.

Références

RFC 791 : protocole Internet · RFC 6864 : champ d’identification IPv4 · Informations produit sur le commutateur industriel administrable FCTELE.

Traduit de l’article technique en chinois : Lire l’article original en chinois.

Questions fréquentes

Un commutateur Ethernet fragmente-t-il un datagramme IPv4 ?

Un commutateur ordinaire de couche 2 achemine des trames ; la fragmentation IP peut se produire au niveau d’un émetteur IPv4 ou d’un routeur lorsque cela est autorisé.

MF = 0 signifie-t-il que tous les fragments sont arrivés ?

Non. Cela identifie le fragment final ; le récepteur a toujours besoin d’une couverture complète de la charge utile d’origine.

Que se passe-t-il si un fragment manque ?

Le récepteur attend selon ses règles de réassemblage ; un datagramme incomplet est abandonné si l’état de réassemblage expire.

Périmètre et lectures complémentaires

Il s’agit d’une explication générale d’IPv4, et non d’un test ou d’une mesure de produit.

Comment les commutateurs industriels acheminent les trames · RFC 791 · RFC 6864

Partager cet article