TCP/IP
6° Entête IP
Sommaire

du Site

Avant 
Après

De quoi s'agit-il ?

Rappelons la disposition respective des diverses zones d'une trame IEEE8023 - Ethernet -
L'entête IP y est clairement indiquée.
Cett entête est suivie des données qui constituent le paquet TCP ou UDP que nous allons voir plus tard.

Et voici la structure du paquet (ou datagramme) IP - version IPV6 -


Plan d'étude

Nous décrirons les champs un par un.
En donnant un exemple dans l'analyseur de trames.

En indiquant une référence de notre site dans laquelle vous puissiez approfondir.


Version et IHL : un octet
  • Version : 4 bits
    4 bits ont une valeur décimale de 0 à 15

    Valeur
    Signification
    0
    Réservé
    1 à 3
    Valeurs non affectées
    4
    IPV4 (IP Version 4)
    5
    Mode flot de données (stream) - RFC 1819
    6
    IPV6 (IP Version 6)
    7
    TP/IX Version Internet concurrente à IPv6 , obsolète.
    8
    Protocole Internet 'P' : adressage 64 bits, transition avec encapsulation IPv6 : RFC 1710
    9
    TUBA : concurrent à IPv6, dépassé.
    10 à 14
    Non affectés
    15
    Réservé

  • I H L : Internet Header Length (Longueur de l'entête) : 4 bits
    Cette longueur est mesurée en blocs de 32 bits
    L'entête contient en effet un champ "options" d'une longueur variable.
    Maximum : 15x32 = 480 bits = 60 octets


    Exercice :

    Voici l'extrait de l'anlyse d'une trame par le logiciel Ethereal




    Calculez la version IP et la longueur de l'entête de la trame 10.
    Il s'agit de la calculer et non de lire les résultats sur l'écran de Ethereal.

Réponse en passant le curseur de la souris sur l'icône "R" ci-dessous:


Champ "TYPE DE SERVICE" : un octet

Décrit la qualité de service demandée.
QoS - Quality Of Service -

Bits 0 - 2
1 Bit
1 Bit
1 Bit
1 Bit
1 Bit
Préséance
Délai
Débit
Fiabilité
Coût
0 obligatoirement
.
0 Normal
0 Normal
0 Normal
0 Normal
.
.
1 Faible
1 Elevé
1 Elevé
1 Faible
.
000
Routine
001
Priorité
010
Immédiat
011
Flash
100
Flash prioritaire
101
Critique
110
Contrôle inter réseau
111
Contrôle Réseau
L'octet correspondant se trouve en fin de la première ligne de l'écran de l'analyseur ci-dessus : 00
Donc : Routine - Délai normal - Débit normal - Fiabilité normale - Coût normal - 0

Longueur totale et paramètres de fragmentation

Champ "Longueur totale" 2 octets

Les deux octets qui suivent et qui terminent le premier bloc de 32 octets ( voir dessin datagramme IP en haut de la page )
donnent la longueur en octets de l'entête plus les données : maximum 65 535 octets jamais atteint.
L'analyseur de trame qui figure plus haut affiche la valeur 00 30 pour ces deux octets.
Souvenez-vous que l'affichage est héxadécimal : 0x0030 = 48 octets. ( car 3x16=48 )

Champ "Identification" 2 octets

Les deux octets qui suivent indiquent le numéro d'identification du datagramme sur 16 bits.
Ce numéro (de 0 à 65 535 ) est donné par l'émetteur.
Lors d'un échange entre deux nœuds, chaque émetteur de datagramme a un compteur indépendant de l'autre.
Ce champ sert à rassembler dans l'ordre les datagrammes fragmentés.
Ce champ vaut : 58 84 d'après
l'analyseur de trame qui figure plus haut .
Nous sommes donc en présence du datagramme n° 0x5884 = 22 660 en décimal.



Champs "O - DF - MF - Offset de fragment"

Champs : 0, DF, MF ( 1 bit chacun ) et Offset de fragment : 13 bits. (3 + 13 = 16 )
Le champ 0 est toujours nul.
Les deux autres champs :
DF ( Dont' fragment : ne fragmentez pas ce datagramme )
et
MF ( More Fragments : je ne suis pas le dernier fragment )

sont mis en œuvre dans les opérations de fragmentation-défragmentation des datagrammes IP.
Ces opérations permettent à des datagrammes de circuler à travers des réseaux dont les caractéristiques physiques
les rendent incapables faire transiter des datagrammes de trop grande longueur.
Nous abordons la fragmentation dans une autre page de ce site . Lien :

D' après
l'analyseur de trame qui figure plus haut, l'octet portant ces trois champs est 40.
40 héxadécimal = 0100 0000 bin.
Donc : DF = 1 et MF = 0

Pas de fragmentation et je suis le dernier fragment du datagramme !

Champ "Offset de fragment"

Champ de 13 bits (qui suivent les bits 0 - DF - MF)
Ce champ contient, pour chaque fragment, le décalage entre le premier octet de données du datagramme non fragmenté
et le premier octet de données fragmentées qu'il transporte.
Ce décalage est zéro pour le premier fragment puisqu'il contient le début de l'ensemble des données à transmettre.

Cependant, la longueur de ce champ est de 13 bits, il ne permet d'écrire que les nombres entiers de 0 à 8192.
Or, la longueur maximale d'un datagramme s'écrit sur 16 bits et peut donc atteindre 65 535 octets.
On est donc convenu que le nombre écrit dans le champ " décalage de fragment " indiquera non pas le nombre d'octets
mais le nombre de mots de 8 octets.
Ainsi si ce champ contient le nombre 100 décimal , le décalage indiqué est de 800 octets.
Lors de la fragmentation, le logiciel devra faire en sorte que la longueur des données du datagramme fragment
soit un multiple de 8 octets.

Voir la fragmentation des datagrammes en :

D' après l'analyseur de trame qui figure plus haut, les deux octets qui contiennent en partie cet offset,
sont 40 00 héx. = 0100 0000 0000 0000

L'offset est nul (bien sûr ! il n'est pas fragmenté et c'est le dernier fragment - et aussi le premier)


Durée de vie (TTL : Time To Live) : un octet

Pour éviter que des datagrammes sui se perdent dans le réseau continuent, tels des vaisseaux fantômes, à y errer indéfiniment
on leur donne un temps de vie qui diminue à chaque passage d'une machine du réseau à une autre.
En fait ce n'est pas un temps mais un certain nombre maximum de passages.

D' après l'analyseur de trame qui figure plus haut, le TTL est : 80 héxadécimal = 128 décimal.


Protocole : un octet

Le protocole porté (au-dessus de la couche IP) par le datagramme (exemple : TCP ou UDP)
est indiqué dans l'entête du datagramme par un octet..

Valeur du champ
Protocole désigné
1
ICMP
6
TCP
17
UDP
etc
etc


D' après
l'analyseur de trame qui figure plus haut, le champ protocole est 06 héxadécimal = 6 décimal.
Correspond au protocole TCP.


Contrôle d'entête : 2 octets

Le contrôle d'entête est une valeur qui permet de déceler une éventuelle erreur de transmission
avec une très grande probabilté.

Ce type de contrôle existe aussi au niveau trame : la carte réseau ajoute en fin de trame
des octets de contrôle appelés FCS ou CRC qui seront contrôlés par la carte réceptrice.
Pour comprendre ce mécanisme se reporter au lien :

D' après l'analyseur de trame qui figure plus haut, le champ de contrôle d'entête est "a5 35"


Adresses IP

Sur 32 bits chacune suivent l'adresses IP source puis l'adresse IP destination.

Je vous laisse évaluer vous même ces adresses d'après la copie écran de l'analyseur ci-dessus.
Evaluer ces adresses IP d'abord en hexadécimal puis en décimal.
Réponse en cliquant :

Si vous n'êtes pas familier avec les adresses IP,
si vous ne savez pas très bien
à quoi elles servent,
comment les interpréter, les calculer,
dirigez-vous sur le lien :

 


Orientation

Avant 
Après
Sommaire

du Site
Sommaire "Signaux"
Sommaire "Transmission de signaux"
Sommaire "Réseaux"