Protocoles de communication

Afin de voir le contenu de chaque trame de données échangées par deux machines connectées sur un même réseau, il est possible d'analyser le trafic qui transite sur la carte réseau d'une machine à l'aide d'un analyseur (également appelé sniffer) comme le logiciel Wireshark capable d'intercepter et d'interpréter l'ensemble des trames de données échangées:

reseaux53.png

Un tel logiciel permet de récupérer et visualiser l'ensemble des couches d'une trame dont les données proviennent d'une application réseau (tel qu'un navigateur Web utilisant le protocole HTTP).

Contenu d'une trame

De manière schématisée, une trame Ethernet (un protocole utilisé entre les cartes réseaux de la plupart des ordinateurs), traitée par la couche accès réseau de l'architecture TCP/IP, peut être découpée de la manière suivante:

reseaux54.jpg

Structure abstraite d'une trame Ethernet

Comme l'indique l'image ci-dessus, une trame est composée de différentes parties:

Bien évidemment, dans la réalité, une telle trame se présente sous la forme d'une séquence de bits:

reseaux55.png reseaux56.png reseaux57.png reseaux58.png reseaux59.png reseaux60.png

Structure concrète d'une trame Ethernet

Exercice 11

Identifiez les données constituant la trame ci-dessous en complétant les lignes vides:

reseaux61.png

|

Contenu d'un paquet

Les paquets de données traités dans la couche internet de l'architecture TCP/IP sont des segments encapsulés, c'est-à-dire augmentés d'informations sur leur transport. Le protocole IP, utilisé dans la couche internet pour créer les paquets de données, est l'un des plus importants de l'architecture TCP/IP: il permet l'élaboration et le transport des paquets à l'aide d'un système d'adressage universel, sans toutefois en assurer la livraison. Les informations contenues dans l'en-tête des paquets IP sont analysées, voire modifiées, par les routeurs lors du transport des données au travers du réseau.

De manière schématisée, un paquet IP peut être découpé de la manière suivante:

reseaux63.jpg

Structure abstraite d'un paquet IP

Comme l'indique l'image ci-dessus, un paquet IP est constitué de différentes parties dont voici la signification de certaines:

Une adresse IP est une adresse numérique composée de 4 nombres entiers (4 octets) situés entre 0 et 255 généralement notée sous la forme 192.153.205.26. Une telle adresse, qui permet de localiser non seulement un ordinateur sur un réseau mais également la position du réseau connecté à Internet, est composée de deux parties de tailles variables:

Contrairement aux adresses MAC qui sont associées de manière unique à chaque carte réseau sans hiérarchie, les adresses IP garantissent une gestion hiérarchique de la localisation d'une machine connectée, engendrant par conséquent une meilleure efficacité lors du routage des paquets à transmettre. En quelques sorte l'adresse MAC d'une machine permet de l'identifier au même titre qu'un prénom alors que l'adresse IP de la machine permet de la localiser en indiquant le numéro du réseau sur lequel elle se trouve ainsi que son propre numéro sur ce réseau. Notons que l'adresse IP d'un ordinateur connecté à Internet peut être récupérée par le biais de certains sites.

Le routage des paquets IP fait partie intégrante de la couche internet du modèle TCP/IP. Le routage consiste à assurer l'acheminement d'un paquet IP à travers un réseau en empruntant le chemin le plus court. Ce rôle est assuré par les routeurs qui analyse l'en-tête des paquets d'informations reçues afin d'en récupérer l'adresse IP de l'émetteur et du récepteur.

Contenu d'un segment

Les protocoles de la couche transport doivent s'assurer de la fiabilité des données reçues à l'aide de sommes de contrôle, de l'ordre dans lequel les données sont reçues et doivent également déterminer à quelle application chaque segment de données doit être délivré à l'aide d'un mécanisme de numéro de port. Sur Internet, de nombreuses applications peuvent être exécutées simultanément (vous pouvez par exemple naviguer sur des pages HTML tout en téléchargeant un fichier par FTP). Chacune de ces applications travaille avec un protocole. Néanmoins, l'ordinateur doit pouvoir distinguer les différentes sources de données transmises ou reçues. Pour faciliter ce processus, chaque application se voit attribuer une adresse unique sur la machine, codée sur 16 bits: un port. L'adresse IP sert donc à identifier de façon unique un ordinateur sur le réseau tandis que le numéro de port indique l'application à laquelle les données sont destinées. De cette manière, lorsque l'ordinateur reçoit des informations destinées à un port, les données sont envoyées vers l'application correspondante. Voici certains des ports reconnus les plus couramment utilisés:

La couche transport contient deux protocoles permettant à deux applications d'échanger des données indépendamment du type de réseau emprunté:

Le protocole ICMP

D'autres données peuvent être contenus dans un paquet IP comme ceux gérés par le protocole ICMP. Ce protocole, auquel recours le programme ping, permet de gérer les informations relatives aux erreurs du protocole IP (par exemple lorsqu'un service ou un hôte est inaccessible). Il ne permet pas de corriger ces erreurs mais d'en informer les différents émetteurs des paquets erronés. En effet, le protocole IP ne gère que le transport des paquets et ne permet pas l'envoi de messages d'erreurs.

De manière schématisée, un paquet IP contenant des données ICMP peut être découpé de la manière suivante:

reseaux71.png

Structure abstraite d'un segment ICMP

Comme l'indique l'image ci-dessus, un tel paquet est constitué de différentes parties dont voici la signification de certaines:

Le principe du ping, utilisant des paquets ICMP, consiste à valider la présence d'un hôte IP. A ce dessein, l'application ping utilisera une séquence de type 8-0 (type de message - code d'erreur) afin d'émettre une demande d'écho. Les données reçues dans un message d'écho doivent être réémises dans la réponse. Ainsi, si le message de retour correspond à l'émission, on en déduit que l'hôte est présent.

Exercice 12

Identifiez dans le paquet IP ci-dessous son type de contenu (TCP, UDP ou ICMP), les adresses IP source et destination ainsi que les données:

reseaux72.png

|

Remettez dans l'ordre les paquets ICMP ci-dessous provenant du programme ping et découvrez le message (en anglais !) qui y est inséré:

reseaux73.png

A ce dessein, utilisez le convertisseur ASCII situé ici et basez-vous sur la structure ci-dessous d'un paquet provenant du programme ping:

reseaux74.png

|

Finalement, résumons le fonctionnement d'Internet au travers d'une vidéo:

Fonctionnement d'Internet