[Apprendre JAVA à partir de zéro | Article 44] Poignée de main et vague dans le protocole TCP

Avant-propos :

En tant que protocole important dans les réseaux informatiques, TCP (Transmission Control Protocol) joue un rôle dans la garantie d'une transmission fiable des données. Dans le processus de communication TCP, les problèmes de poignée de main et de vague sont des liens clés qui ne peuvent être ignorés. La poignée de main signifie que lorsqu'une connexion est établie, le client et le serveur se confirment mutuellement l'identité et synchronisent les paramètres pour s'assurer que les deux parties sont prêtes ; tandis que la vague signifie que lorsque la connexion est terminée, les deux parties s'informent mutuellement de leur souhait de assurer la fermeture sûre de la connexion. Cet article explorera en profondeur les détails et les fonctions de la poignée de main et de l'agitation de la main dans le protocole TCP, afin de mieux comprendre et appliquer le protocole TCP. 

Prise de contact en TCP :

La poignée de main à trois voies de TCP est le processus d'établissement d'une connexion TCP pour garantir que la communication entre le client et le serveur peut être effectuée de manière fiable.

  1. Première poignée de main (SYN) :
    le client envoie un paquet SYN (demande de synchronisation) au serveur, contenant un numéro de séquence initial aléatoire. Ce paquet indique au serveur que le client souhaite établir une connexion et attend la confirmation du serveur.

  2. La deuxième poignée de main (SYN-ACK) :
    après que le serveur a reçu le paquet SYN du client, il enverra un paquet SYN-ACK (synchronisation-confirmation). Ce paquet confirme non seulement la demande du client (ACK), mais envoie également un numéro de séquence initial aléatoire au client. Le serveur indique au client qu'il est disposé à accepter la demande de connexion et attend la confirmation du client.

  3. La troisième poignée de main (ACK) :
    Après avoir reçu le paquet SYN-ACK du serveur, le client envoie un paquet ACK (confirmation) au serveur. Le numéro de confirmation dans ce paquet est le numéro de séquence initial envoyé par le serveur plus 1, indiquant que le client a reçu la réponse du serveur. Le client accuse réception de la demande de connexion du serveur et indique au serveur que le transfert de données peut commencer.

Après avoir terminé la poignée de main à trois, la connexion TCP est établie avec succès et les deux parties peuvent commencer une transmission de données fiable. Ce processus de prise de contact à trois voies garantit que les deux parties peuvent confirmer l'existence de l'autre partie, synchroniser le numéro de série et établir une connexion fiable.

Vague en TCP :

  1. Première vague (FIN) :
    lorsque le client décide de fermer la connexion, il envoie un paquet FIN (demande de terminaison) au serveur. Le client n'envoie plus de données, mais peut toujours recevoir des données envoyées par le serveur.

  2. La deuxième vague (ACK) :
    Après avoir reçu le paquet FIN du client, le serveur envoie un paquet ACK (confirmation). À ce moment, le serveur entre dans un état semi-fermé, c'est-à-dire qu'il ne peut qu'envoyer des données, mais ne peut plus en recevoir.

  3. Troisième vague (FIN) :
    Une fois que le serveur a envoyé toutes les données, il enverra un paquet FIN (demande de terminaison) au client. Le serveur indique au client qu'il va fermer la connexion et ne plus envoyer de données.

  4. La quatrième vague (ACK) :
    Après avoir reçu le paquet FIN du serveur, le client envoie un paquet ACK (confirmation). Le client indique au serveur qu'il a reçu une demande de terminaison et confirme qu'il peut fermer la connexion.

Après quatre poignées de main, la connexion TCP est proprement fermée. Ce processus garantit que les deux parties ont la possibilité d'envoyer et de recevoir des données finales, et éventuellement de fermer correctement la connexion. Cela garantit l'intégrité des données et évite la perte de données ou la confusion. Quatre vagues sont le processus de terminaison en toute sécurité d'une connexion TCP.

Exceptions courantes :

  1. Délai de connexion :
    après que le client a envoyé un paquet SYN, s'il ne reçoit pas de réponse (paquet SYN-ACK) du serveur dans un certain délai, une exception de délai de connexion peut être déclenchée. Cela peut être dû à des raisons telles que la latence du réseau, une charge élevée du serveur ou une défaillance du réseau.

  2. Attaque par inondation SYN : L'
    attaque par inondation SYN est une sorte d'attaque réseau. L'attaquant envoie un grand nombre de paquets SYN falsifiés au serveur, ce qui fait que le serveur manque de ressources et ne répond pas aux demandes de connexion normales des utilisateurs. Cela peut entraîner le blocage ou le retard du processus normal d'établissement de liaison.

  3. Débordement de la file d'attente de semi-connexion :
    lorsque le serveur est sous forte charge, si la demande de connexion envoyée par le client dépasse la capacité que le serveur peut gérer, cela peut provoquer un débordement de la file d'attente de semi-connexion. Cela empêche le serveur d'accepter de nouvelles demandes de connexion, ce qui entraîne l'échec de la poignée de main.

  4. Fermeture anormale : une fermeture anormale
    se produit lorsqu'une partie ferme ou met fin à la connexion brusquement lors d'une poignée de main ou d'une vague alors que l'autre partie s'attend toujours à continuer à communiquer. Cela peut empêcher une partie de la connexion de terminer le processus d'établissement de liaison normalement, et un mécanisme de temporisation est nécessaire pour gérer l'arrêt anormal.

  5. Paquets ACK ou FIN répétés :
    pendant la poignée de main ou la vague, si des paquets ACK ou FIN répétés sont reçus, l'état des deux parties dans la connexion peut être incohérent, de sorte que la connexion ne peut pas être fermée normalement ou rétablie.

Ces conditions anormales peuvent avoir un impact sur l'établissement et la fermeture de la connexion TCP.Des mécanismes de traitement et de tolérance aux pannes appropriés sont nécessaires dans l'application pour assurer la fiabilité et la stabilité de la communication réseau.

Résumer:

Dans le protocole TCP, l'établissement de la liaison et l'agitation sont des processus importants pour assurer une connexion fiable. La poignée de main garantit que le client et le serveur sont prêts pour le transfert de données via trois interactions. Et passer par quatre interactions ferme la connexion en toute sécurité pour garantir l'intégrité des données. Cependant, le processus d'établissement de liaison et de vague peut rencontrer des exceptions telles que des délais d'attente de connexion, des attaques par inondation, etc. Ces exceptions doivent être correctement gérées par le programme d'application pour garantir la fiabilité de la communication réseau. Comprendre les principes et les exceptions courantes de la poignée de main et de la vague TCP aidera à optimiser la communication réseau et à assurer la stabilité et la sécurité de la transmission des données.

Si mon contenu vous est utile, n'hésitez pas à aimer, commenter et mettre en signet . La création n'est pas facile, le soutien de chacun est ma motivation pour persévérer !

 

Je suppose que tu aimes

Origine blog.csdn.net/fckbb/article/details/132197903
conseillé
Classement