C19.2 : Notions de protocoles
Présentation générale
Généralités
Le transfert de données entre les équipements nécessite que ces équipements suivent les mêmes règles, en informatique on parle de protocole.
Un protocole est un ensemble de règles permettant d'établir, mener et terminer une communication entre deux machines informatiques.
Afin de permettre une meilleure compréhension, ces protocoles ont été regroupés en fonction de leurs rôles. Par ailleurs, les protocoles ont été conçus pour être indépendants les uns des autres et hiérarchisés. C'est pourquoi on parle de couches.
Il existe plusieurs modèles, celui que nous évoquerons est le modèle TCP/IP.
Les couches du modèle TCP/IP
| Nom | Rôle des protocoles | Exemples de protocoles | Nom de l'élément transféré |
|---|---|---|---|
| Couche Application | Assurer la continuité de service entre deux machines pour une application ou une fonctionnalité spécifique. | HTTP, POP, IMAP, etc. | Donnée |
| Couche Transport | Assurer l'échange des données (efficacité, absence d'erreurs...) entre deux applications spécifiques de deux équipements, les applications étant identifiées par un numéro de port. | TCP, UDP, etc. | Datagramme Segment |
| Couche Réseau | Assurer le routage (acheminement de proche en proche) des paquets entre deux équipements appartenant à des réseaux différents, les équipements sont repérés par leurs adresses IP. | IPv4, IPv6, ICMP, etc. | Paquet |
| Couche Lien | Assurer l'acheminement des trames entre deux équipements d'un même réseau, les équipements étant repérés par leurs adresses MAC. | Ethernet, Wifi, etc. | Trame |
| Couche Physique | Assurer l'acheminement des 0 et des 1 d'un point de vue physique/matériel (lumière, courant, onde, etc.). |
Passage d'une couche à l'autre
Émission des données
Lorsqu'une application d'un équipement doit transmettre une donnée à l'application d'un autre équipement :
- - Elle transfert cette donnée à la couche transport.
- - La couche transport ajoute les informations nécessaires à la donnée et transfert l'ensemble à la couche réseau.
- - La couche réseau fait de même en ajoutant encore quelques informations et transfert l'ensemble à la couche lien.
- - La couche lien fait de même vers la couche physique.
- - Finalement, la couche physique du premier équipement envoie les 0 et les 1 à la couche physique de l'autre équipement.
On parle ici d'un processus d'encapsulation.
Les informations ajoutées par chaque couche sont principalement placées avant les informations reçues de la couche précédente, c'est pourquoi on parle d'entête (Head en anglais).
Réception des données
Lorsque la machine de destination reçoit les 0 et les 1, le processus inverse s'opère : chaque couche récupère les informations et l'entête qui la concerne, supprime cette entête, traite les informations et transfert le restant à la couche supérieure.
On parle ici de décapsulation.
Synthèse
Exemple du protocole HTTP de la couche application
Le protocole HTTP (HyperText Transfer Protocol), ou protocole de transfert hypertexte en français, est un protocole de la couche application qui sert à transmettre des documents hypermédias (page web avec liens, image, son...).
Il a été conçu pour la communication entre les navigateurs web et les serveurs web mais peut également être utilisé à d'autres fins.
Il suit le modèle classique client-serveur : un client ouvre une connexion, effectue une requête et attend jusqu'à recevoir une réponse.
Remarque : Nous verrons quelques aspects de ce protocole plus en détail dans le chapitre sur le web : les requêtes GET et POST.
Exemple du protocole TCP de la couche transport
Activité : Pourquoi découper les données ?
Considérons les deux modes d'acheminement des données présentés ci-dessous :
A faire : A partir de ces animations, expliquer l'intérêt de découper les données en petits morceaux.
L'une des fonctions du protocole TCP est :
- - du côté de l'émetteur : de découper une données en morceaux (appelés segments)
- - du côté du récepteur : de reconstituer la donnée à partir des morceaux.
Activité : Principes du protocole
Présentation de la situation
Une machine informatique (que l'on appellera la source et que l’on notera S) doit communiquer l’image ci-dessous à une autre machine informatique (que l'on appellera la destination et que l’on notera D).
Format : 512 × 350 pixels
Image lire de droits
Le poids de l'image étant trop grand, il faudra la découper en segments.
Travail à faire
On admet que S commence par découper l'image en segments.
1) Proposer des solutions aux questions suivantes :
- a) Comment S peut-il être sûr que D a bien reçu toute l'image ?
- b) Comment D peut-il savoir qu’il a reçu tous les segments ?
- c) Que faire si les segments n'arrivent pas dans l'ordre ?
- d) Que faire si un segment se perd ?
- e) Que faire si un segment arrive en double ?
- f) Question supplémentaire : Comment D peut-il savoir que le message reçu est correct ?
2) Rédiger, sous forme de listes d'instructions :
- - le protocole que S doit exécuter ;
- - le protocole que D doit exécuter.
Bilan
Rôle du protocole TCP
Le protocole TCP de la couche transport à plusieurs rôles :
- - il permet d'identifier le programme (le service) d'une machine avec lequel communiquer (à l'aide du port),
- - de découper les données à envoyer en segments, et de les réassembler à destination,
- - de gérer les pertes de transmission.
Mise en place de la communication
Ce mécanisme commence toujours par une mise en place de la connexion
- - Le client choisi un numéro de séquence aléatoire et envoie une demande de synchronisation avec ce numéro (SYN, numClient).
- - Le serveur qui reçoit cette demande incrémente le numéro de séquence du client et génère à sont tour un numéro aléatoire. Il répond avec un accusé de réception (ACK, numClient+1, numServeur).
- - Le client renvoie à son tour un accusé de réception après avoir incrémenté les deux numéros (ACK, numClient+2, numServeur+1).
Tout ce processus a pour but de permettre au client et au server de s'échanger deux numéros de séquences.
Échange des données
Si nécessaire, la donnée est coupée en plusieurs morceaux.
• Pour chaque morceaux, un segment (datagramme) est créé avec le numéro de séquence incrémenté de l'émetteur. L'ensemble est envoyé.
Le serveur va répondre avec un accusé de réception pour chaque segment, avec le numéro de séquence de l'émetteur.
• Si un segment envoyé est perdu, le protocole est le suivant :
• Si un accusé de réception est perdu, le protocole est le suivant :
• Si un segment met du temps à arriver au récepteur et arrive en deux exemplaires au récepteur, le protocole est le suivant :
Remarques :
- - Le découpage en segments permet de n'avoir à renvoyer qu'une partie de la donnée en cas de perte lors de la transmission.
- - Si les segments d'arrivent pas dans le bon ordre, les numéros de séquences de l'émetteur permettent des les réordonner.
Cloture de la communication
Lorsque la transmission est terminée, la communication est fermée.
Le routage : Protocole de la couche réseau
Les protocoles de la couche réseau ont pour fonction de guider les paquets de routeur en routeur, puis jusqu'à sa destination.
Pour cela, chaque machine d'un réseau dispose d'une adresse, appelée adresse IP
Dans la version 4, les adresses IP sont constitués de 4 octets séparés par des points :
Chaque routeur du réseau dispose des informations qui lui permettent d'orienter le paquet vers le routeur suivant le plus adapté.
Remarque : Des exemples de protocoles de routages seront étudiés plus en détail en terminale.