Une communication réseau est complexe et nécessite un ensemble de règles et de technologies. TCP-IP est un tel ensemble. On parle de protocole TCP-IP.
TCP-IP est une suite de protocoles. Pour les organiser on utilise une classification appelée modèle de couches. On ne va pas détailler, seulement donner les grandes idées.
Chaque interface réseau a une adresse MAC (rien à voir avec Apple…)
En principe, cette adresse est unique et est figée à la fabrication bien que dans de nombreux cas, elle puisse être changée. Une partie de l'adresse dépend du fabriquant.
Exemple : 1c:6f:65:d5:4a:0c sur ce site on trouve que les trois premiers octets 1c:6f:65 identifient le fabriquant du matériel, il s'agit ici de GIGABYTE.
Les : sont là pour la lisibilité. 1c6f65d54a0c est la même adresse. Évidemment, dans la machine il y a 48 bits sans rien d'autre mais c'est peu lisible pour l'humain.
Faire l'exercice 1
Nous allons parler d'adresse IP version 4 (IPv4). La version 6 (IPv6) est déjà bien installée maintenant, elle répond à la demande croissante d'adresses (objets connectés). Mais les principes de IPv6 et de IPv4 sont les mêmes. L'adresse IPv6 est seulement plus longue (128 bits au lieu de 32). Je parlerai donc ici de IPv4.
L'adresse IP est dite logique, au sens de logicielle, c'est à dire que c'est le programme exécuté sur une machine qui décide de l'adresse IP. L'adresse MAC est au contraire matérielle, imposée à la fabrication, comme un numéro de moteur.
L'adresse IP est constituée de 32 bits que l'on représente habituellement sous forme de 4 octets écrits en décimal, par exemple 172.16.0.1 ce qui donne en binaire :
1010 1100 0001 0000 0000 0000 0000 0001
Dans 172.16.0.1 les . facilitent la lecture. 1721601 serait inutilisable et 172 16 0 1 serait moins lisible. Concrètement, dans la machine, on a une suite de 32 bits sans rien d'autre, mais pour l'humain, c'est peu lisible.
Dans les exemples, on se réfère au réseau ci-dessous.
Au niveau des du câbles réseaux, des cartes réseaux, des switchs, on ne voit que l'adresse MAC. Mais comment savoir où se trouve une machine quand on ne connaît que son adresse MAC ?
Je rappelle que l'adresse MAC est fixée à la fabrication et que deux machines d'adresses voisines, par exemple 35:84:8B:39:57:3E et 35:84:8B:39:57:3F, peuvent être chacune à un bout du monde… (machines M3 et M4 sur la figure)
L'adresse IP est choisie pour permettre de trouver le chemin menant à une machine.
On utilise pour cela un masque de sous réseau.
Sur la figure, M1 possède l'adresse IP 192.168.0.11 et le masque 255.255.255.0. Comment M1 sait-elle que :
192.168.0.11 soit en binaire 11000000 10101000 00000000 00001011255.255.255.0 soit en binaire 11111111 11111111 11111111 0000000011000000 10101000 00000000 00000000 c'est à dire 192.168.0.0. C'est l'adresse de sous réseau de M1.192.168.0.0.192.168.0.0192.168.1.0
Comme vous pouvez le voir, le masque 255.255.255.0 s'écrit en binaire 111111111111 11111111 11111111 00000000 c'est à dire qu'il commence par 24 bits à 1. Pour cette raison on pourra abréger en notant /24 ce masque.
Faire l'exercice 2
Comme nous l'avons déjà dit, les données sont échangées par paquets. Pour un petit échange comme un ping, un seul paquet suffit. Le transfert d'une image ou d'une page web peut nécessiter de découper en plusieurs paquets.
Un paquet IP est contenu dans une trame MAC. Une trame MAC a le format suivant :
| MAC destinataire | MAC source | Type de protocole | Paquet IP | codes d'erreurs |
|---|---|---|---|---|
| 6 octets | 6 octets | 2 octets | de 46 à 1500 octets | 4 octets |
Il arrive qu'on envoie une requête sans connaître l'adresse MAC de la cible (penser au ping de l'exercice 2) Dans ce cas, on utilise l'adresse MAC de broadcast : FF:FF:FF:FF:FF:FF. broadcast = à tout le monde. Répondra celui qui se sent concerné.
Il existe plusieurs versions de ces trames dont le principe est le même. Je donne ici la version telle que l'a inventé Xerox et qui est majoritairement utilisée.
Dans notre cas IPv4, l'Ethertype = type de protocole sera 08 00.
Le paquet IP (contenu dans la trame) a son propre format résumé par le tableau ci-dessous.
Un mot sur les champs en vert :
Faire les exercices :
Cette animation illustre l'exemple d'un échange entre deux machines sur un même sous réseau.
Dans l'exemple précédent, M1 comprend que M4 n'est pas sur son sous-réseau. Que fera M1 ?
M1 a besoin d'une passerelle. Une passerelle est une machine, reliée à plusieurs sous-réseaux, qui sert d'intermédiaire.
Chez un particulier, la box internet est une passerelle entre le sous-réseau de l'appartement et internet.
Voyez cette animation pour voir un échange impliquant un routeur/passerelle.
Faire l'exercice 6
Dans l'exemple, on parlait de machine M1, M2… Sur internet, les sites ont des noms comme wiki.goupill.fr. Mais tous ces noms correspondent à une adresse IP. Peut-on alors écrire ping M1 ?
C'est possible ! Voyant qu'il ne s'agissant pas d'une adresse IP, la commande ping va essayer d'associer une adresse à ce nom. Pour cela, elle a besoin d'un serveur DNS. Celui-ci fonctionne comme un annuaire qui donnera l'adresse liée au nom.
Faire l'exercice 7