|
Lorsque 2 machines communiquent en utilisant le protocole IP, elles s'échangent des datagrammes IP qui ont le format ci-dessous :
|Version| IHL |Type of service| Total Length | ID |F | Fragment offset | TTL | Protocole | | Header Checsksum | IP source | IP destination | Données |
* Le champs version indique la version de IP utilisée. Début 2006, la version de IP la plus fréquemment utilisée est la version 4. La version 6 commence à apparaître : il n'y aura pas de version 5. Les 4 bits de ce champs sont donc 0100 (4 écrit en binaire). * IHL - IP Header Length=Longueur de l'entête IP (sur 4 bits) : ce champs indique la longueur de l'entête IP. L'unité est le nombre de mots de 32 bits. pour la version 4 la longueur de cette entête est de 20 octets soit 5 fois 32 bits : ce champs vaut donc 0101. * Type of service (8 bits) : ce champs permet d'indiquer que certains datagramme IP ont une priorité supérieure à d'autres. Il est peu utilisé sauf par quelques routeurs spécialisés dans la transmission de voix sur IP. * Total length (16 bits) : ce champs indique le nombre d'octets du champs données de ce datagramme IP. La longueur maximale du datagramme en octets est 216-1 = 65 535 octets = 64Ko * ID (16 bits) : ce champs est un identifiant du datagramme IP (le numéro du datagramme). * F=Flags - les drapeaux (3 bits) : -le premier bit est inutilisé -le deuxième bit DF (don't fragment) permet d'interdire ou d'autoriser la fragmentation. positionné à 1, il est interdit de fragmenter ce datagramme IP. -le troisième bit MF (more fragment) est utilisé lors de la fragmentation : il indique si le fragment est le dernier fragment du datagramme (MF=0) ou non (MF=1). * TTL - Time to live - temps restant à vivre (8 bits) : il s'agit d'une valeur initialisée à 255 et qui est décrémenté de 1 à chaque fois que le datagramme traverse un routeur. Arrivé à 0, le datagramme est détruit : ce mécanisme assure la destruction des datagrammes qui se perdent sur le réseau. Ainsi ces datagrammes perdus n'encombrent pas indéfiniment le réseau. * Protocole (8 bits) : ce champs indique la nature des données transportées par ce datagramme IP. 3 protocoles sont principalement utilisés au dessus de IP : ICMP (code 1), TCP (code 6) et UDP (code 17). * Header Checksum - Somme de contrôle (16 bits) : il s'agit d'un code détecteur d'erreurs qui ne porte que sur l'entête : la somme des octets de l'entête regroupé par paquets de 16 bits (header checksun compris) doit valoir 216-1 modulo 216. En cas d'erreur sur l'entête le datagramme est détruit. IP n'est pas un protocole fiable puisqu'on ne garantit pas que les données arrivent, ni de leur fiabilité. * IP source (32 bits) : adresse IP de l'expéditeur. * IP destination (32 bits) : adresse IP du destinataire.
La fragmentation IP
Notion de MTU : La plupart des réseaux imposent une limite physique à la taille des données qu'ils peuvent transporter. Un datagramme IP peut avoir une taille maximale de 65535 octets, ce qui est trop grand pour la plupart des réseaux. Le MTU (Maximum Transfert Unit) correspond à la taille maximale des données transportables par le réseau. Le datagramme IP (entête comprise) aura comme taille maximale le MTU du réseau. Quelques valeurs du MTU : éthernet : MTU=1500 octets FDDI : 4470 octets
Découpage par le routeur Si un routeur route des données d'un réseau A vers un réseau B et si les 2 réseaux ont des valeurs différentes de MTU (par exemple le réseau A est un réseau FDDI de MTU 4470 et le réseau B est un réseau éthernet de MTU 1500 octets), alors il peut être amené à découper un datagramme IP en plusieurs datagrammes plus petits. Si un datagramme a été découpé, il faut être capable de réunir les différents morceaux dans le bon ordre à l'arrivée : les flags (3 bits) et le champs FO (Fragment Offset sur 13 bits) vont contenir les informations nécessaires à cette reconstruction. . Si le routeur doit découper un datagramme et que le bit DF est à 1, alors le datagramme IP sera détruit.
|
|