IP ou le petit village du sud-ouest?

6

Dans ce chapitre on va décortiquer l’entête IP version 4 qui appartient à la couche 3 du modèle OSI ou aussi appelé couche réseau.

A quoi sert l’adresse IP?

Ah la bonne question !

J’en vois certains me demander pourquoi on a besoin d’une adresse IP alors que les cartes réseaux des PC et des serveurs ont des identifiants qu’on appelle adresse MAC?

Il est vrai que ces équipements ont déjà des identifiants uniques qui dans la technologie Ethernet sont les adresses MAC. Le hic est qu’Ethernet est une technologie qui permet de faire de la commutation de trame Ethernet uniquement localement. C’est à dire qu’une trame Ethernet (avec son adresse MAC source et adresse MAC destination) ne traverse pas les équipements niveau 3, soit le routeur.

Il nous faut donc trouver un autre type d’adresse (et donc un nouveau protocole) pour pouvoir joindre le PC qui se trouve à l’autre bout de la planète et qui est séparé par des routeurs.

Faisons le point sur ce qu’on souhaite:

  • Il nous faut un identifiant unique au niveau mondial pour pouvoir envoyer du trafic n’importe où mais aussi être joint par n’importe qui
  • Il faut que cet identifiant soit compris par les équipements intermédiaires, les routeurs. Sinon ça ne sert pas à grand chose…
  • Vu le nombre d’équipements réseau (PC, serveurs, imprimante, téléphone portable…), il nous faut un grand nombre d’identifiants !
  • Comme il existe plusieurs technologies niveau 2 comme Ethernet, Frame-Relay, ATM, MPLS… il faut que l’identifiant puisse être compatible qu’importe ce qu’il y a en dessous. Pour rappel, imaginez la couche 2 comme un wagon de train dont la taille est variable en fonction des technologies
Suite à ce constat, plusieurs protocoles de couche 3 ont été créés dont IPX, AppleTalk et bien sûr IP. Chacun a son propre adressage et permet de communiquer entre des PC, des serveurs, quelque soit la couche 2 du dessous (le fameux wagon).
Même si c’est IP qui est dominant aujourd’hui, pour le CCNA retenez tout de même l’existence de ces autres protocoles, ça peut être une question. 

 

Définition de l’entête IP

Comme chaque entête, celui d’IP comporte des champs que nous allons détailler ici. Tout d’abord, l’entête est codé par bloc de 32 bits, c’est pour cela qu’on représente l’entête en une succession de lignes de 32 bits (c’est aussi simple que ça:) )

 

Voici l’explication de chaque champ:

  • Version: précise si c’est un entête IP version 4 ou version 6
  • Long: définit la longueur de l’entête. Attention cette valeur peut évoluer si on rajoute des options dans le champ du même nom
  • TOS/Type of Service: champ dédié à la différentiation du trafic, très utile pour mettre en place de la qualité de service dans un réseau. Par exemple prioritiser la voix à la données. On en reparlera dans un chapitre dédié
  • Longueur datagramme: longueur de l’entête ET des Données
  • Identification: identifiant qui permet de numéroter les fragments d’un même paquet
  • Drapeau/flag: permet de préciser si le paquet est fragmenté ou si au contraire on interdit la fragmentation
  • Place du fragment: position du fragment par rapport au premier fragment du paquet 
  • Durée de vie/TTL: ce champ est décrémenté à chaque fois que le paquet IP traverse un routeur. Quand le TTL arrive à 0, le paquet est supprimé. Ça permet d’éviter qu’un paquet se ballade indéfiniment dans un réseau (on appelle ça une boucle de routage, on verra cette notion dans un chapitre dédié)
  • Protocole: identifie le protocole de la couche supérieure (couche transport). Donc ce sera très souvent TCP ou UDP
  • Checksum: permet de vérifier que les données de l’entête n’ont pas été corrompues. Si c’est le cas, le paquet est supprimé
  • Adresse source: adresse IP de celui qui envoi le paquet
  • Adresse destination: adresse IP du destinataire du paquet
  • (Options): optionnel
  • Données/payload: tout ce qui a au dessus de l’entête IP, c’est à dire les entêtes des couches 4, 5, 6 et 7 et les données de l’utilisateur

Décomposition de l’adresse IP

Maintenant que l’entete est clair dans votre tete, la notion importante est bien évidemment l’adresse IP (source et/ou destination).

Une adresse IP se compose en 32 bits (je vois sur le tableau précédent que le champ “adresse source” ou “adresse destination” prend toute la ligne, donc c’est bien 32 bits) et s’écrit sous forme de 4 octets en décimal (1 octet = 8 bits). Par exemple: 10.1.103.253

Chaque octet (le 10, le 1, le 103 ou le 253) peut avoir comme valeur possible: 0, 1, 2,3 … jusqu’à 255 !

En faisant un calcul rapide, on a alors environ 4 milliards de combinaisons possibles (2 exposant 32). Pour exact, le nombre est 4 294 967 296!

Cliquer sur l’image pour la sauvegarder sur votre PC

Pour simplifier, on a créé des groupes d’adresses IP qu’on appelle “classe A, B, C, D ou E” et qui englobe toutes les possibilités d’adresses IP. Chaque classe est plus ou moins grande dans le sens où elle contient plus ou moins d’adresses IP.

Définition des classes

Voici la répartition des adresses IP par classe:

Il est primordial de connaitre ces classes pour le CCNA, je sais c’est pas fun d’apprendre par coeur ces valeurs mais vous allez surement avoir une question la dessus (genre, l’adresse IP 23.64.34.95 appartient a quelle classe?).

Sachez aussi que cette notion de classe est obsolète aujourd’hui mais il important de comprendre le mécanisme, surtout pour l’examen.

Masque de réseau

Alors pourquoi a-t-on créé des classes?

Imaginons que j’ai l’adresse 192.1.1.1 –> avec le tableau ci dessus je sais que mon adresse fait partie de la classe C. Avec ça, je suis bien avancé… 🙂

En fait, ce qui est important est qu’à chaque classe est associée une valeur appelée “masque de réseau” qui definit dans quel réseau mon adresse IP appartient. Et oui, c’est bien d’avoir une adresse IP, c’est mieux de savoir dans quel réseau je suis et avec qui je peux communiquer.

Comme à l’epoque, les organismes ne savaient pas que protocole IP allait avoir autant de succès, ils ont défini des masques par défaut de la manière suivante:

  • pour une classe A, le masque est 255.0.0.0 (ou /8) et donc n’importe quel réseau de cette classe contient 16 millions d’adresses IP !
  • pour une classe B, le masque est 255.255.0.0 (ou /16) et donc n’importe quel réseau de cette classe contient 65 536 d’adresses IP !
  • pour une classe C, le masque est 255.255.255.0 (ou /24) et donc n’importe quel réseau de cette classe contient 255 adresses IP (là c’est deja plus réaliste 🙂 )
Pour les classes D et E, il n’y en a pas parce que:
  • classe D: réservée pour faire du multicast. Aller faire un tour ici pour comprendre la notion d’adresse multicast. Un autre chapitre sera dédié au protocole de routage multicast
  • classe E: réservée et non utilisable (phase de test et/ou non déterminé)
Pour le calcul du masque et le nombre d’adresses IP contenu dans un réseau, on verra ça dans un prochain chapitre.
Cliquer sur l’image pour la sauvegarder sur votre PC

L’exemple avec le petit village du sud-ouest…

Prenons un exemple concret car j’en vois déjà certains qui me regardent bizarrement 🙂

  • Assimilez la classe à un type de ville (petit village, moyenne ville, grande métropole…)
  • Assimilez un réseau de cette classe à un nom de ville (Paris, Toulouse, Lille…)
  • Assimilez l’adresse IP qui appartient à ce reseau à une adresse postale (13 rue Dupont)

Si je prend l’adresse postale suivante: 13 rue dupont à Saint-felix-lauragais dans le Sud-Ouest. “Traduisons là” en terme purement réseau:

  • c’est un petit village (car besoin de peu d’adresses) –> classe C (255.255.255.0 ou /24 soit 256 adresses possibles)
  • saint-felix-lauragais –> nom du réseau (par exemple 192.168.1.0)
  • 13 rue Dupont –> c’est l’adresse IP (par exemple 192.168.1.23)

Au final, on n’a pas réinventé la roue, on change uniquement la nomenclature.

Une adresse IP, c’est notre adresse postale (13 rue Dupont) et pour savoir dans quelle ville on se trouve, le masque est là pour nous aider. C’est aussi simple que ça.

A retenir pour le CCNA

Alors pas mal de chose à retenir dans cette premiere partie sur le protocole IP:

  • Une adresse IP permet de traverser les différentes technologies niveau 2. Et c’est grâce à ça qu’Internet existe
  • connaitre les différents champs de l’entête IP
  • Une adresse IP version 4 est codée sur 32 bits, par bloc d’octet, soit 4 blocs de 8 bits chacun
  • connaitre le tableau des classes A, B, C, D et E
  • connaitre les masques associés a chaque classe
Il nous reste à voir les notions d’adresse publique/privée, masque de réseau/sous-réseau, calcul d’adresse de réseau/broadcast… mais ce sera dans les prochains chapitres !

 

PARTAGER SUR

6 COMMENTAIRES

  1. Un petit moyen mnémotechnique de se souvenir des différentes classes au lieu d’apprendre par cœur le tableau :

    à l’image des bits dans un octet d’adresse IP (128,64,32,16,8,4,2,1) :

    Classe A : commence par 0 (0.0.0.0) / Pour la fin on prend toujours l’octet juste avant le début de l’autre (127.255.255.255)
    Classe B : Puis on ajoute 128 (128.0.0.0) / (191.255.255.255) — Juste avant 192
    Classe C : Puis on ajoute 64 (192.0.0.0) / (223.255.255.255) — Juste avant 224
    Classe D : Puis on ajoute 32 (224.0.0.0) / (239.255.255.255) — Juste avant 240
    Classe E : Puis on ajoute 16 (240.0.0.0) / (255.255.255.255)

    Merci pour les explications simples de ton blog.

  2. Il n’y a pas de doute, ces petits schémas logiques apportent toujours une belle vue d’ensemble sur le sujet.

    Etant un peu puriste sur les bords, la seule chose qui me chatouille dans tes explications, c’est le terme “datagramme”.

    Dans la RFC1594, un datagramme est définit comme suit:

    “A self-contained, independent entity of data carrying
    sufficient information to be routed from the source
    to the destination computer without reliance on earlier
    exchanges between this source and destination computer and
    the transporting network.”

    Le terme datagramme devrait normalement n’identifier que les paquets faisant partie d’un échange de donné “non fiable” … comme de l’UDP.

    Je dirais donc … que tout datagramme est un paquet, mais tout paquet n’est pas un datagramme 😉

    Bon, je l’avoue, le coupe le cheveux en quatre 🙂

    • En effet, la différence entre paquet et datagramme est claire dans les RFC (“Request For Comment” pour ceux qui ne sauraient pas). Malheureusement aujourd’hui ces deux termes sont assez mélangés et il arrive que dans la plupart des documents officiels, on mélange les deux.
      Mais au final, rien bien de grave, tant qu’on assimile bien un paquet (ou datagramme) a la couche 3 du modèle OSI, c’est l’essentiel 🙂

      En tout cas, merci beaucoup sur tes précisions qui sont importantes pour les puristes 🙂

LAISSER UNE RÉPONSE