Le modèle OSI


<< La couche réseau La couche de liaison de données >>


III°) La couche de transport

   La couche de transport est finalement le premier niveau de traitement des paquets, puisque immédiatement après la couche de routage. La couche de transport est une couche de transition où passent les paquets entre le traitement réel des données et le traitement de l'en-tête et de la gestion du flux. En fait, elle s'occupe du retour, de l'envoi, des autorisations d'envois des paquets.
Les deux protocoles majeurs vous sont sûrement familiers de nom : ce sont UDP (User Datagram Protocol) et TCP (Transmission Control Protocol). TCP est le protocole le plus utilisé à travers l'internet (pour tout ce qui est HTTP, SSH, FTP, Telnet, SMTP, POP, IMAP, etc..). TCP permet une liaison bidirectionnelle (envoi/réception), plutôt efficace (vérification de l'intégrité et de l'ordre des données reçues et envoyées) et transparente entre deux adresses IP, c'est ce qui fait qu'il est très utilisé. Une particularité de la vérification de l'intégrité pour TCP/IP est l'attente des paquets manquants, c'est-à-dire que si un paquet numéroté X arrive, tous les paquets suivants seront empilés dans l'attente de l'arrivée du paquet X+1 pour assurer la continuité du message transmis.
Tout ceci est rendu possible par l'inscription de marques (TCP flags) sur les paquets ainsi que le stockage de nombres particuliers appellés les nombres de séquence (sequence numbers). Voici une description brève des 6 marques TCP :
  • URG, pour urgent permet d'identifier les données importantes
  • ACK, pour reconnaissance (Acknowledgment). Cette marque reconnait l'activité de la connexion. Elle est à on pour la majorité de la connexion.
  • PSH, pour pousser (Push). On force le passage à la couche supérieure plutôt que de stocker le paquet en mémoire tampon.
  • RST, pour réinitialisation (Reset). Réinitialise une connexion.
  • SYN, pour synchronisation (Synchronize). Synchronise les nombres de séquence pendant le début de la connexion.
  • FIN, pour finir (Finish). Termine une connexion de façon propre.

Nous allons maintenant par un exemple simple expliquer l'établissement d'une connexion TCP avec les flags ACK et SYN, s'effectuant en 3 étapes.
Quand un client veut ouvrir une connexion avec un serveur, un paquet comportant la marque SYN (ie, SYN est à on) et la marque ACK à off est envoyé. Le serveur répond avec un paquet comportant ACK et SYN à on. Enfin, le client renvoie un paquet avec la marque SYN à off et ACK à on : la connexion est reconnue. Ensuite, chaque paquet durant la connexion comportera ces deux paquets dans le même état (ACK à on et SYN à off). Par conséquent, seuls les deux premiers paquets peuvent comporter le flag SYN on, car c'est pendant ces deux premières transmissions que chaque côté synchronise les nombres de séquence. Résumons :
  • Le client envoie un paquet SYN. Le paquet comporte un numéro de séquence égal à 123456 (par exemple) et un numéro de reconnaissance nul
  • Le serveur renvoie un paquet SYN/ACK. Le paquet comporte un numéro de séquence égal à 654321 (par exemple) et un numéro de reconnaissance de 123457 (c'est-à-dire le numéro de séquence du client + 1)
  • Enfin, le client envoie au serveur un paquet ACK avec comme numéro de séquence 123457 (le numéro de reconnaissance reçu) et comme numéro de reconnaisance 654322 (le numéro de séquence du serveur + 1)

Et la connexion est établie durablement. Les numéros de séquence sont ainsi utilisés pour assurer la fiabilité et la remise des paquets dans l'ordre, typiques de la couche de transport. De plus, ceci empechera les paquets venant d'une autre connexion d'être accidentellement mélangés car, quand une connexion est établie, chaque côté génère un nombre de séquence initial. Ce nombre est communiqué à l'autre partie au biais des deux premières étapes explicitées ci-dessus. Pendant le reste de la communication, chaque partie incrémentera son nombre de séquence du nombre de bytes de données dans le paquet envoyé. Ce numéro de séquence est inscrit dans les en-têtes du paquet. Aussi, chaque côté a, comme montré dans l'exemple précédent, un numéro de reconnaissance qui est le numéro de séquence de l'autre côté incrémenté de 1.
Par conséquent, la fiabilité des transmissions TCP semble relativement forte et c'est pourquoi il est souvent préféré dans les connexions bidirectionnelles.
UDP, lui, a beaucoup moins de fonctionnalités que TCP et finalement ressemble plus à IP brut : il n'y a pas de connexion qui reste ouverte et sa fiabilité est plus que faible. Plutôt que d'établir une connexion qui maintienne la véracité des données, UDP laisse à l'application le soin de s'occuper de ces problèmes d'identification des données. Ainsi, quand une connexion bidirectionnelle n'est pas requise, UDP paraît tout de suite plus adapté car plus efficace.


<< La couche réseau La couche de liaison de données >>




13 Commentaires
Afficher tous


ERIC45 19/06/13 19:48
Les informations reçues sont assez intéressantes mais avec plus d'images elles deviendraient plus explicites

FrizN 22/03/13 13:47
Hm ICMP est au niveau réseau puisqu'il s'occupe des messages de contrôle pour IP. La séparation est plutôt nette pour moi ^^

Cybergourou 22/03/13 01:08
J'avais une petite question, j'ai vu lors de mes cours que dans le modèle TCP/IP le protocole ICMP était aussi au niveau de la couche de transport, que la séparation n'était pas vraiment net ?

ferhane 09/03/13 11:27
excellent !!!!! (y)




Commentaires désactivés.

Apprendre la base du hacking - Liens sécurité informatique/hacking - Contact

Copyright © Bases-Hacking 2007-2014. All rights reserved.