Articles

Qu’est-ce que le three way handshake de tcp ? Qu’est-ce que les paquets SYN , ACK ?

Nous savons que TCP est l’un des exemples de mise en œuvre du protocole de la couche transport selon le modèle OSI. Le protocole est orienté connexion, ce qui signifie qu’avant d’envoyer des données à l’homologue distant, le client tcp établit une connexion virtuelle sur le réseau IP sous-jacent basé sur les paquets. Une poignée de main à trois voies est la procédure du protocole pour établir la connexion. Ici, nous allons couvrir la procédure d’établissement de la connexion tcp en détail. La première question qui vient à l’esprit est la suivante : qui est responsable du démarrage de la connexion TCP ? La couche de protocole elle-même, au démarrage, ou une autre entité externe qui demande à la couche de se connecter ? La réponse est que l’utilisateur TCP est responsable du démarrage d’une poignée de main TCP à trois voies. Par exemple, HTTP (le navigateur web utilise HTTP), est l’un des utilisateurs de TCP. Lorsque l’utilisateur HTTP doit envoyer une requête web au serveur distant. Avant d’envoyer toute donnée utilisateur, HTTP demande à TCP d’établir une connexion avec le serveur distant. Une fois que la couche TCP a reçu la demande de connexion, elle commence la poignée de main à trois voies de TCP. Comme tout autre protocole, la procédure de prise de contact à trois voies nécessite l’échange de paquets ou de messages entre le client et le serveur. Voici ceux utilisés dans l’établissement de la connexion.

Voici le flux de messages pour le three way handshake.

L’utilisateur de HTTP émet une demande de connexion à la couche TCP. La couche TCP fonctionne comme un client tcp et envoie le synchro tcp avec un numéro de séquence initial. Le numéro de séquence sert à maintenir la séquence des messages. A la réception du SYN, le serveur envoie un nouveau syn et un ack du syn reçu au client, puis le client envoie l’ACK au serveur pour le syn reçu du serveur. Ceci termine l’établissement de la connexion. Ce qui suit mentionne chaque message en détail pour le three way handshake.

C’est le premier paquet du client au serveur. Le message TCP met le drapeau SYN à 1 dans le message , donc faire le message tcp comme paquet SYN. Il a le numéro de séquence initial du client ainsi que d’autres quelques autres paramètres.

Paquet TCP SYN ACK:

Après avoir reçu le paquet SYN, le serveur envoie le paquet syn ack au client. Sans oublier que c’est un seul paquet tcp avec les bits syn et ack mis à 1. Le numéro de séquence syn est le numéro de séquence initial du serveur qui accepte la connexion. La partie ack a le numéro de séquence du client plus un. De cette façon, le serveur dit qu’il est prêt à accepter le paquet avec le prochain numéro de séquence du client.

Paquet tcp ack:

Le dernier paquet pour l’établissement de la connexion est tcp ack. Le client envoie le paquet tcp ack après avoir reçu tcp syn ack du serveur. Le paquet comprend le numéro de séquence du serveur plus un.

Indication de l’utilisateur tcp après le three way handshake :

Au début, nous avons mentionné que , c’est l’utilisateur qui initie la demande de connexion. Mais comment l’utilisateur obtient, que la connexion est faite ? Et que l’utilisateur peut utiliser la connexion pour envoyer des données au serveur distant ? L’utilisateur reçoit une indication sur le résultat de l’établissement de la connexion par la couche TCP. Si la poignée de main est réussie, il obtient l’identifiant de la connexion. Sinon, il reçoit une erreur. L’identificateur de connexion fonctionne comme un gestionnaire pour envoyer/recevoir des données vers/depuis le serveur. Nous allons montrer dans un autre post sur la mise en œuvre exacte de TCP client/serveur , alors vous pouvez obtenir une image plus claire de gestionnaire de connexion.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *