cours/content/reseau/3-protocoles/index.md
2018-10-12 23:06:04 +02:00

5.8 KiB

title categories date
Les protocoles
Réseau
Cours
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é)

Voir les sommes de contrôles

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

Établissement d'une connexion TCP (source Wikipedia)

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

Transfert de données TCP (source Wikipedia)

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'aquittement y avec z octets
  • le client réponds avec un sergment ACK avec comme numéro de séquence x et comme numéro d'aquittenemt y + 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

Fin connexion TCP (source Wikipedia)

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.

Gestion de flux d'une connexion TCP (source Wikipedia)

  1. la connexion démarre doucement, le débit augmente au fur et à mesure que les ACK reviennent en temps et en heure.
  2. les segments ACK n'arrivent pas à temps, le débit est diminué.
  3. à partir du moment ou les segments ACK arrivent bien, le débit est aumenté à nouveau progressivement.
  4. on repasse à létape 2.

Il existre plusieurs algorithmes pour la gestion du débit : Reno, Vegas, Bil, Cubil.

Bibliographie

TCP sur Wikipedia