Lors de l'utilisation de TCP, les périphériques doivent d'abord établir une connexion avec un système homologue
avant
que la transmission de données ne puisse avoir lieu. Une
session orientée connexion sera donc établie entre l'hôte A et l'hôte B.
Les modules logiciels de protocoles des systèmes d'exploitation des périphériques hôtes communiquent entre eux
en envoyant des messages sur le réseau pour vérifier que le transfert est
autorisé et que les deux côtés sont
prêts pour la transmission de données.
Pour ce faire, une liaison à trois est établie entre les périphériques hôtes utilisant TCP.
Ainsi, l’hôte qui lance la session active le drapeau ou le bit SYN dans
l’en-tête TCP du segment initial envoyé à l’hôte B.
L’hôte A choisira également un numéro de séquence initial qui,
dans cet exemple, est 100.
Donc, le drapeau de contrôle SYN est activé et le numéro
de séquence est défini sur une valeur initiale de 100.
Ceci est ensuite utilisé pour démarrer le processus de prise de contact.
Ce segment de synchronisation spécifie également le numéro du port auquel l'expéditeur veut se
connecter, par exemple le port 80 ou HTTP.
L'hôte du côté droit attendra une demande de connexion du client distant,
en l'occurrence l'hôte A.
Lorsque le SYN est reçu et
accepté, l'hôte b renverra un segment TCP avec les drapeaux SYN et ACK définis.
Ainsi, les indicateurs de contrôle SYN et ACK sont activés et
utilisés pour négocier la connexion et accuser réception du segment
de synchronisation des initiales de l'expéditeur.
B a également défini un numéro de séquence initial pour indiquer
le prochain numéro de séquence du prochain octet de données qu'il
s'attend à recevoir de l'hôte A.
l'hôte B définit également l'indicateur d'accusé de réception sur, dans
ce cas 101, un indicateur ACK indique la prochaine partie de données que l'hôte s'attend à recevoir.
Ainsi, l'hôte A a initialement envoyé un numéro de séquence de 100
et l'hôte B, dans ce cas, supposons qu'une taille de fenêtre de 1 renvoie un accusé
de réception d'un 101.
La troisième étape de la négociation à trois voies est celle où l'hôte initiateur dans
ce cas, l'hôte A a reçu le SYN de l'hôte B et renvoie un segment TCP avec le champ de contrôle défini sur ACK,
en d'autres termes, un accusé de réception. 36 L'hôte A accuse donc le segment suivant qu'il s'attend à
recevoir de l'hôte B dans ce cas 301, l'hôte B ayant initialement envoyé un numéro de séquence de 300.
Donc, l'hôte A attend le prochain segment 301.
L'hôte A définit son numéro de séquence sur 101.
Le segment initial envoyé était 100 et le suivant dans ce cas est 101 car le bit SYN ou l'indicateur
SYN est désactivé, ce qui
confirme que la négociation à trois voies s'est terminée avec succès.
Juste pour réitérer, les bits de contrôle ou les indicateurs initialement A envoie un
segment avec le bit SYN ou l'indicateur SYN activé.
Donc, le drapeau de contrôle SYN est mis à 1. 46 Dans la deuxième étape de l'établissement de la liaison à
trois voies, l'hôte B définit ses indicateurs ou bits de contrôle sur SYN ACK.
En d'autres termes, le bit SYN est défini
sur 1 et le bit ACK sur 1.
Dans la dernière étape de la
négociation à trois voies, l'hôte A définit le bit ACK sur 1 ou le drapeau ACK est activé.
Le bit SYN ou le drapeau SYN est défini sur 0 pour indiquer que
la négociation à trois voies s'est terminée avec succès.
Maintenant, les numéros de séquence et les accusés de réception peuvent causer beaucoup de confusion. Je vais maintenant les
expliquer plus en détail.
Nous supposons dans cet exemple qu'une fenêtre d'une taille de 1 est utilisée.
Maintenant, si vous vous rappelez, la taille de la fenêtre est la quantité
maximale de données que le destinataire peut recevoir d’un expéditeur et traiter correctement. 59 Nous allons donc supposer qu'un seul segment
peut être transmis à un moment donné avant qu'un accusé de réception ne
soit reçu pour accuser réception de ce segment.
Supposons donc que A commence par un numéro de séquence
initial de 5 en raison d’une fenêtre de 1, un seul segment peut être envoyé de A à B.
B reçoit avec succès le segment de A
et reconnaît le prochain segment qu’il souhaite recevoir.
ainsi, plutôt que d'accuser réception du numéro de séquence
de 5, il accuse réception du
numéro de séquence 6, ce qui implique que tous les numéros de séquence précédents recevront correctement.
Donc B reconnaît dans ce cas pour le numéro de séquence 6 mais B peut
commencer par un numéro de séquence initial de 10. 71 ainsi, dans l'en-tête TCP, B indique à A que
son numéro de séquence initial est 10 et que son numéro de séquence reçu avec succès 5 de
A et attend le numéro de séquence 6 de A dans le paquet suivant.
Supposons que ce segment soit reçu avec
succès. A enverra le segment 6 à B, c’est-à-dire le
prochain numéro de séquence.
A accuse également réception du segment 10 de l'hôte B.
Donc, A a reçu avec succès le segment avec le numéro de séquence 10.
Veuillez noter une fois
de plus que l’hôte peut choisir au hasard
les numéros de séquence initiaux et que lors
de la négociation à trois voies initiale, des informations doivent être communiquées
entre les 2 hôtes afin qu’ils sachent quels sont les numéros de séquence initiaux. 84 Donc, encore une fois, A envoie le numéro de séquence 6 à B et acquitte la séquence 11.
Supposons que B reçoive ce
segment avec succès et accusera réception du segment 7.
Le segment suivant qu'il s'attend à
recevoir à nouveau 7 dans l'accusé de réception indique que le segment précédent a été reçu avec succès.
Ainsi, l'hôte B en définissant le numéro de séquence sur 7 indique à l'hôte A que le
numéro de séquence 6 a bien été reçu.
L’hôte B envoie le numéro de séquence 11 car c’est
le prochain numéro de séquence que A s’attend à recevoir.
Une fois encore, il convient de noter que les numéros de séquence initiaux
que l'hôte s'attend à recevoir et que le numéro de séquence de,
par exemple, 11, impliquent que le numéro de séquence 10 et le numéro de séquence précédent ont bien été reçus.
Maintenant, encore une fois, le contrôle de flux évite un problème où l'expéditeur envoie autant de données
99 que les tampons du récepteur sont débordés.
S'il s'agit d'une machine très puissante et d'une machine plus ancienne pas aussi puissant, il est possible que A puisse dépasser les tampons de B parce qu’il envoie beaucoup de données. 103 Donc, B a besoin d’un mécanisme pour dire à A de ralentir pour que D
puisse traiter avec succès le trafic qu’il reçoit. 105 Par exemple, supposons que la taille de la fenêtre dans cet exemple
soit 3 plutôt que 1. 107 Donc, A peut envoyer 3 segments de données avant d’obtenir un accusé de réception. 108 L’avantage d’augmenter la taille de la fenêtre est que le débit peut augmenter considérablement, car un hôte peut envoyer plus de données avec moins de remerciements et donc les temps aller-retour diminuent considérablement. 111 Donc, dans cet exemple, A envoie 3 segments à B. 112 Supposons que le
tampon reçu de B soit plein et qu’il ne puisse pas gérer cette quantité de données. 114 B enverra un indicateur non prêt à A 115 Pour ce faire, définissez la taille de la fenêtre sur 0.
Cela dit à l'expéditeur de cesser d'envoyer des données et attendez que le témoin Ready soit prêt. 118 En supposant que l'hôte B ait maintenant été en mesure de traiter les données dans son tampon de réception et peut maintenant recevoir plus de données. 120 Il peut envoyer un indicateur prêt à A pour lui dire de reprendre l’envoi de datagrammes.
donc A reprend la transmission en envoyant par exemple 3 segments à B. 122 Parce que la taille de la fenêtre est 3. 123 Veuillez donc noter en arrière-plan que l'hôte TCP impliqué dans la conversation peut négocier divers
paramètres, dont l'un est le contrôle de flux. 125 où un destinataire peut dire à un expéditeur de ralentir ou d'arrêter d'envoyer des données 126 jusqu'à ce que le récepteur dispose de la mémoire tampon pour recevoir les segments transmis.
Cela permet la communication entre un très puissant ou une machine rapide et une machine plus lente ou moins puissante où ils peuvent négocier le taux de transmission.