Protocoles réseaux⚓︎
1. Quelques définitions et grands principes⚓︎
Internet
Ce que l’on appelle Internet est un réseau mondial de réseaux. Ces réseaux servent à connecter différents terminaux (ordinateurs, smartphones, consoles de jeu, serveurs, ...).
LAN : Local Area Network / WAN : Wide Area Network
Protocole
Afin de communiquer entre ces terminaux, il faut transporter les informations à envoyer sur des liens physiques qui relient les machines entre elles et s’assurer que les machines codent et décodent l’information de la même manière. On utilise pour cela les mêmes protocoles (règles de communication), organisés sous forme de couches protocolaires.
Principes fondamentaux
Internet est basé sur l'ensemble de protocoles TCP/IP : ses principes fondamentaux sont le découpage des données en paquet (multiplexage) et la numérotation des paquets (fiabilité).
Ses deux principes permettent, d'utiliser les mêmes ressources (les mêmes fils, les mêmes ondes), pour communiquer "en même temps".
Un peu d'histoire
Il existait déjà des réseaux locaux reliant directement des ordinateurs dans les années 1950.
À partir des années 1960, des chercheurs ont réfléchi à la problématique de l'interconnexion de réseaux hétérogènes.
Le principe de la transmission de paquets est introduit par Paul Baran et Davies en 1961 : il consiste à découper les données en paquets, ce qui permet de transmettre à débit variable (un courriel nécessite l'envoi ponctuel de petits paquets alors que pour transférer un fichier, il faut envoyer rapidement de gros paquets).
Arpanet, le projet de réseau interuniversitaire financé par l'Arpa (agence de recherche de la défense américaine) , voit le jour en 1969 sous la direction de Leonard Kleinrock : les données sont découpées en paquets, transmis en séquence les uns à la suite des autres.
Dans les années 70, Louis Pouzin, après un séjour au MIT, développe en France le réseau Cyclades qui est le premier véritable réseau à commutation de paquets: les paquets transitent de façon indépendante dans le réseau grâce à un protocole qui préfigure Internet Protcol puis sont remis en l'ordre à l'arrivée. Le circuit des paquets est donc variable contrairement à la commutation de circuits implémentée dans le réseau téléphonique.
Aux États-Unis, Vinton Cerf et Robert Kahn s'inspirent des idées de Pouzin et inventent les protocoles IP et TCP. L'interconnexion des réseaux Arpanet et Csnet en 1983 avec TCP/IP marque la naissance d'Internet et son expansion au niveau mondial dans les sphères universitaires et de la recherche.
2. Modèle OSI⚓︎
Il existe plusieurs définitions des couches protocolaires. La norme OSI définit 7 couches. Dans le monde Internet, on considère de manière distincte les 4 premières couches:
- la couche 1 (physique) transporte physiquement l’information,
- la couche 2 (liaison) l’organise et la transmet entre deux machines,
- la couche 3 (réseau) permet de communiquer au niveau d’un réseau,
- la couche 4 (transport) définit assure la qualité et la fiabilité de la transmission (transport).
2.1 Couche 1: physique⚓︎
Pour que la communication puisse se faire, il faut transformer les informations à échanger entre les machines en signaux qui véhiculent cette information sur les liens entre les machines sous formes de bits, en utilisant des protocoles de la couche 1.
Les bits de données sont transmis sur différents médium utilisant des technologies variées, dont voici quelques exemples:
Types de signal | Exemples |
---|---|
Électronique | Ligne série, Ethernet Filaire, USB, CPL |
Optique | Fibre optique, Li-Fi |
Électromagnétique (radio) | Wi-Fi, 3G/4G/5G |
À titre indicatif, les vitesses de transmission sur Ethernet vont de 100 Mb/s (mégabits par seconde) à 10 Gb/s, tandis que les réseaux à fibre optique vont de 1Gb/s à 10Tb/s. Les réseaux Wifi ont des vitesses maximales de 10 à 100Mb/s, de même que les réseaux 4G, tandis que les réseaux 5G pourront aller jusqu’à à 1Gb/s.
2.2 Couche 2: Liaison⚓︎
Ces bits transmis par la couche 1 sont ensuite regroupés par les protocoles de couche 2 sous formes de datagrammes (paquets) contenant une partie de l’information à transmettre, avec des informations supplémentaires contenues dans un entête. Toutes ces informations sont transmises sur le lien qui relie deux machines d’un même réseau local (LAN). Les entêtes contiennent des adresses qui permettent d’identifier les extrémités des liens qui envoient et reçoivent les paquets. Les datagrammes sont envoyés indépendamment les uns des autres. Ils suivent le chemin vers leur destination dès qu’un lien est libre. Ils sont stockés dans la machine émettrice jusqu’à ce que le lien se libère et tant que la capacité de stockage n’est pas dépassée.
Les protocoles les plus courants de cette couche sont Ethernet pour une liaison filaire et Wifi pour une liaison par ondes.
Couche liaison : Ethernet
Un datagramme au format du protocole de couche 2 Ethernet contient :
- Une entête contenant l’adresse de l’émetteur, et celle de destinataire, codées sur 6 octets chacune
- Les données à transmettre (encapsulées dans le datagramme).
Les adresses appelées adresses MAC sont représentées par une suite de 6 paires de chiffres hexadécimaux séparés par ":" (Exemple:: ac:ed:5c:1f:8f:1a). C’est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire. À moins qu’elle n’ait été modifiée par l’utilisateur, elle est unique au monde.
Découvrir les adresses MAC
Le protocole ARP permet à un hôte émetteur de découvrir l’adresse MAC de son destinataire, à travers la diffusion d’une demande en broadcast, dénotée par l’adresse FF:FF:FF:FF:FF:FF à l’ensemble des hôtes du réseau local.
2.3 Couche 3 : Réseau⚓︎
Les datagrammes sont transmis de machine en machine jusqu’à leur destination par un protocole de la couche 3. Les machines connectées à Internet utilisent le protocole IP. Elles sont identifiées par des adresses IP.
Internet utilise 2 types d’adresses IP: les adresses IPv4 qui sont codées sur 32 bits et les adresses IPv6 sur 256 bits. Les réseaux interconnectés par IP et qui forment Internet sont identifiés par des préfixes d’adresses : une adresse IP, suivie de «/x» ou «x» représente le nombre de bits significatifs du préfixe.
Exemples d'adresses IP
- 192.168.122.0/24 (IPv4)
- 2001:67c:2e8:22::/64 (IPv6)
- 138.211.127.0/17 (IPv4)
Couche réseau : IP
Les paquets IP encapsulés dans un paquet d’un protocole de couche 2 sont composés:
-
d’une entête qui contient les informations: version du protocole, longueur des données, temps de vie, protocole, adresse source, adresse destination....
-
des données à transmettre.
2.4 Couche 4: Transport⚓︎
Par principe de multiplexage, les données sont découpées en paquets qui sont transmis séparément sur le réseau et qui peuvent suivre des chemins différents et donc se perdre ou arriver dans le désordre d’après le principe de commutation de paquets. Cette souplesse du modèle TCP/IP est la clef du succès d’Internet mais elle nécessite des mécanismes pour garantir la fiabilité des transmissions : ordonner les paquets, demander la réémission de paquets perdus...
C'est le rôle de la couche transport assuré par les protocoles TCP ou UDP dans le modèle TCP/IP sur lequel repose internet.
Couche transport : TCP
Les paquets TCP encapsulés dans un paquet d’un protocole de couche 3 sont composés: - Des données utiles à la fiabilisation (numéro de séquence, numéro d'acquittement (prochain paquet),...) - Le paquet IP.
L’autre protocole largement utilisé pour envoyer des données est UDP qui ne fait pas de contrôle de réception. La bonne réception doit alors être contrôlée par l’application qui fait usage de ces données. il est utilisé dans des applications avec des questions/réponses simples (DNS ) ou pour lesquelles les erreurs de transmission ne sont pas critiques et qui ont besoin de rapidité (streaming video, jeu en ligne . . . ).
2.5 Conclusion⚓︎
Finalement le trajet sur le réseau peut être schématisé comme ci-dessous:
Simulation
Il existe un logiciel permettant de simuler des réseaux et le transport de l'information. C'est Filius.
Ici, un fichier simple permettatńt de visualiser les couches OSI dans Filius.
3. Complément: un protocole de récupération de paquet⚓︎
Le protocole de bit alterné était implémenté au niveau de la couche liaison du modèle OSI.
Considérons 2 machines en réseau : une machine A, l’émetteur et une machine B, le destinataire.
Lors de l’émission d’un paquet de données, A y ajoute un bit (1 ou 0) appelé bit de contrôle. À réception, B envoie un accusé de réception (acknowledge en anglais souvent noté ACK) en lui ajoutant également un bit de contrôle (1 ou 0).
Pour le choix des bits drapeaux, la règle est la suivante :
- le premier paquet envoyé par A aura pour bit de contrôle 0
- B répond avec un accusé de réception en fixant un bit alterné pour son bit de contrôle : donc 1 s’il a reçu 0
- A reçoit un accusé de réception avec le bit de contrôle 1 donc il sait que son paquet précédent a été reçu et qu’il peut envoyer le paquet suivant avec le bit de contrôle 1
- B reçoit un paquet avec le bit de contrôle qui correspond à celui demandé, il renvoie un accusé de réception avec le bit alterné donc 0
- ainsi de suite . . . le bit de la trame ou de l’accusé de réception alterne de chaque côté
Bibliographie:
- manuel NSI 1re Spécialité - Ed. 2021 Hachette
- https://frederic-junier.gitlab.io/parc-nsi
- https://qkzk.xyz/