5.8 KiB
title | categories | date | ||
---|---|---|---|---|
Les protocoles |
|
2018-09-12 |
Les protocoles sont des conventions qui définissent des manières de communiquer. En informatiquem on dénombre deux types de protocoles : binaires ou textuels.
Théoriquement, aucun protocole ne peut être parfait. Ceci peur être illustré par ,le théorême des deux armees :
Soit des armées aui combattent, l'armée A, composée d'un seul soldat est assiégés par l'arméé B composée elle de deux soldats.
Les deux soldats B sont de part-et d'autres du soldat de A qui possède un fusil. Pour assurer leurs victoire, les deux soldats B doivent attaquer de façon coodonnée. Utilisant des pigeons voyageurs, comment s'assurer de la bnne transmission des messages : le soldat A pourrait tuer le messager à tout moment (contenant le message ou la confirmation de bonne réception).
La commutation de circuits
C'est le fonctionnement typique du réseau téléphonique jusque dans les années 60-70. les information échangées emprunte toujours le même chemin au sein du réseau pour une session donnée. Son principal inconvénient est l'occupation de la "route" même si aucune donnée ne transite (blanc).
Voir [la commutation de circuits][w_comm-cirk] sur Wikipedia
La commutation de paquet
Apparue dans les années 70, il est ici question de découper l'information en paquets contenant un entête pour l'acheminement, et de les faire transiter par des routes aui peuvent être différentes. Il n'y a pas ici de réservation de route, optimisant l'utilisation de la ressource.
En France, l'ingénieur Louis Pouzin a inventé le datagramme qui servira de base pour le réseau par commutation de paquest, puis pour le protocole UDP et inspirera Vint Cerf pour la création de TCP-IP
Voir la commutation de paquets sur Wikipedia
Les sommes de contrôles
Les checksum ou sommes de controles permettent de s'assurer de l'intégrité d'un message reçu par le réseau. Ce n'est cependant pas un code de correction d'erreur, le but ici est bien la détection (pour éventuellement demander à l'expéditeur de renvoyer le message).
Dans notre quotidien, les sommes de contrôles sont utilisée pour les numéros INSEE, les numéros de cartes bancaire etc.
Il sont là avant tout pour détecter des erreur non intentionnelle (fiabilité) mais n'ont pas vocation à prévenir les erreur intentionnelles (sécurité)
Le protocole TCP
TCP pour Transmission Control Protocol est un protocole de transport fiable de l'information sur des réseau infomatique. Il correspond à la couche transport du modèle OSI. Il fonctionne en trois phases :
- L'établissement d'une connection
- Le transfert des données
- La fin de connexion
Etablissement d'une connexion
Le serveur ouvre une socket et attends la demande de connexion du client (attente passive). Le client initie une connexion active en trois temps :
- le client envoi un segment SYN au serveur.
- le serveur lui réponds par un segment ACK + SYN
- le client confirme par un segment ACK
Durant ces échanges, les numéros de séquences du serveur et du client sont
synchronisés. Le client utilise son numéro de séquence x
pour son premier
segment SYN. Le serveur utilise son numéro de séquence y
dans le segment
ACK+SYN et le numero d'aquitement x + 1
. Le client confirme par un ACK
avec comme numéro de séquence x + 1
et comme numéro d'aquittement y + 1
.
Tranfert de données
Lors du transfert de données, les numéros de séquences sont utilisés afn de réordonner les paquets. Les aquitements servent à s'assurer de la transmission des messages et les sommes de contrôles leurs intégrités.
- Le serveur envoi un paquet avec comme numéro de séquence
x
et est numero d'aquittementy
avecz
octets - le client réponds avec un sergment ACK avec comme numéro de séquence
x
et comme numéro d'aquittenemty + z
Les numéros de soéquences sont des nombres entiers non-signés codés sur 32bits
temporisation
TCP utilise un mécanisme de temporisation et de retransmission. Après l'emvoi d'un segment, TCP attendra un certain temps la confirmation par un ACK correspondant.
Terminaison d'une connexion
La fin d'une connexion TCP se fait en quatre temps, chaque extremités de la connexion envoyant un segment FIN et répondant à l'autre par un ACK
Gestion des flux
Dans un espace réseau, comment les extremités (souvent le serveur) devinent la vitesse de transmission des segments? En général prudemment : le serveur commence à transferer les données lentement et augmente au fur et à mesure le débit. Il inspecte alors les ACK et ajuste le débit en fonction des retours.
- la connexion démarre doucement, le débit augmente au fur et à mesure que les ACK reviennent en temps et en heure.
- les segments ACK n'arrivent pas à temps, le débit est diminué.
- à partir du moment ou les segments ACK arrivent bien, le débit est aumenté à nouveau progressivement.
- on repasse à létape 2.
Il existre plusieurs algorithmes pour la gestion du débit : Reno, Vegas, Bil, Cubil.