Outils pour utilisateurs

Outils du site


nsi:premiere:reseau:tcpip

TCP-IP

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.

  1. Couche physique : Utilise-t-on un câble électrique ou une fibre ? Les bits sont-ils représentés par des niveaux de tension électrique ou par une intensité lumineuse ?
  2. Couche réseau : Les bits sont regroupés en paquets. Chaque paquet est convenablement étiquetés avec expéditeur et destinataire. On utilise des systèmes d'adresses : IP, MAC.
  3. Couche interface, entre applications et réseau. Les applications (Navigateur…) ont besoin d’accéder au réseau. TCP ou UDP sont des protocoles se chargeant des connexions au réseau. Un port TCP est une porte d'accès au réseau pour une application.
  4. Couche des applications : Les applications ont des besoins spécifiques et donc des protocoles qui vont avec. HTTP(S) pour les pages web, FTP our les échanges de fichiers, SMTP pour les mails…

Adresse MAC - Media Access Control

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

Adresse IP - Internet Protocol

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.

Sous réseau et masque

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.

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 :

  • M2 avec l'adresse 192.168.0.12 est sur le même sous réseau ?
  • M4 avec l'adresse 192.168.1.14 n'est pas sur le même sous-réseau ?

Premier cas, cible M2

  • M1 a pour adresse 192.168.0.11 soit en binaire 11000000 10101000 00000000 00001011
  • M1 a pour masque 255.255.255.0 soit en binaire 11111111 11111111 11111111 00000000
  • M1 réalise un ET logique entre les deux : 11000000 10101000 00000000 00000000 c'est à dire 192.168.0.0. C'est l'adresse de sous réseau de M1.
  • M1, en utilisant son propre masque (il ne connaît pas le masque de M2) calcule l'adresse de sous-réseau de M2. Il obtient aussi 192.168.0.0.
  • M1 déduit donc que sa cible doit se trouver sur son sous-réseau.
    M1 peut envoyer sa demande directement vers le switch qui transmettra sur le sous-réseau.

Deuxième cas, cible M4

  • Même principe, M1 calcule l'adresse de son propre sous réseau, toujours 192.168.0.0
  • M1 calcule l'adresse du sous réseau cible et obtient 192.168.1.0
  • Les deux adresses sont différentes.
    M1 déduit que M4 n'est pas sur son sous-réseau.
    M4 ne pourra pas être atteinte directement. Il faudra un intermédiaire : une passerelle.

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

Trames et paquets

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 :

  • Source Address et Destination Address sont les adresses IP source et destination, sur 4 octets chacune.
  • TTL = Time To Live. À mesure que le paquet se déplace dans le réseau, il est relayé par des aiguilleurs (appelés routeurs) mais pour qu'il n'erre pas indéfiniment dans le réseau, on lui donne une durée de vie. À chaque passage par un routeur, TTL baisse de 1. à 0, le paquet est mort.

Faire les exercices :

Articulation IP - MAC

Cette animation illustre l'exemple d'un échange entre deux machines sur un même sous réseau.

Passerelle - gateway

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.

  • Si on a donné à M1 l'adresse IP d'une passerelle, M1 transmet sa demande à la passerelle qui relaiera.
  • Sinon, M1 déclare ne pas pouvoir atteindre la cible.

Voyez cette animation pour voir un échange impliquant un routeur/passerelle.

Faire l'exercice 6

DNS - Directory Name Service

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

nsi/premiere/reseau/tcpip.txt · Dernière modification : de goupillwiki