当前位置:网站首页>Six photos vous montrent pourquoi TCP serre la main trois fois?
Six photos vous montrent pourquoi TCP serre la main trois fois?
2022-06-30 17:22:00 【Xinyi 2002】
Trois poignées de main


Deux poignées de main.(La situation1)

Deux poignées de main.(La situation2)

OK,Voici une réponse sérieuse à cette question.,Pour comprendre ce problème,Il faut d'abord comprendreTCP Comment assurer une transmission fiable .

PS:TCPDans l'Accord,Une extrémité de la demande active est appelée『Client』,Une extrémité d'une connexion passive est appelée『Serveur』.Qu'il s'agisse d'un client ou d'un serveur,TCPEnvoyer et recevoir des données une fois la connexion établie.
Au début,Le serveur et le client sontCLOSEDStatut.Avant le début de la communication, Les deux parties doivent créer leurs propres blocs de contrôle de transmission (TCB).Création du serveur terminéeTCBAprès l'entréeLISTENStatut,Prêt à recevoir les demandes de connexion des clients.
Première poignée de main
Le client envoie un segment de message de demande de connexion au serveur.Dans l'en - tête du segmentSYN=1,ACK=0,seq=x.Après l'envoi de la demande,Le client entre dansSYN-SENTStatut.
PS1:SYN=1,ACK=0Indique que le segment de message est un message de demande de connexion.
PS2:xPour cette foisTCPNuméro de séquence initial du flux d'octets pour la communication.TCPLe règlement:SYN=1Le segment de message ne peut pas avoir de données,Mais il faut un numéro de série..
Deuxième poignée de main
Lorsque le serveur reçoit le segment de message de demande de connexion,Si la connexion est acceptée,Une réponse est envoyée:SYN=1,ACK=1,seq=y,ack=x+1.Une fois la réponse envoyée, entrezSYN-RCVDStatut.
PS1:SYN=1,ACK=1Indique que le segment de message est un message de réponse avec consentement de connexion.
PS2:seq=yIndique que lorsque le serveur est l'expéditeur,Envoyer le numéro de séquence initial du flux d'octets.
PS3:ack=x+1Indique que le serveur souhaite que le prochain datagramme envoie un numéro de séquence dex+1Octets de départ.
Troisième poignée de main
Lorsque le client reçoit une réponse de consentement à la connexion,Envoyer également un segment de message de confirmation au serveur,Représentation:La réponse de consentement à la connexion envoyée par le serveur a été reçue avec succès.L'en - tête de ce segment de message est:ACK=1,seq=x+1,ack=y+1.Après avoir envoyé ce segment de message, le client entre dansESTABLISHEDStatut,Le serveur entre également après avoir reçu cette réponseESTABLISHEDStatut,La connexion est maintenant terminée!
Pourquoi faut - il trois poignées de main pour établir une connexion,Au lieu de serrer la main deux fois?
Empêcher le segment de message de demande de connexion invalide d'être reçu par le serveur,Ce qui donne lieu à une erreur.
PS:Demande de connexion invalide:Si la demande de connexion envoyée par le client au serveur est perdue,Le client envoie à nouveau la demande de connexion après le délai d'attente de la réponse,En ce moment,La dernière demande de connexion était『Échec』.
Si vous n'avez besoin que de deux poignées de main pour établir une connexion,Le client n'a pas beaucoup changé,Vous devez toujours obtenir une réponse du serveur avant d'entrerESTABLISHEDStatut,Le serveur entre après avoir reçu la demande de connexionESTABLISHEDStatut.
Si le réseau est congestionné,La demande de connexion envoyée par le client a été retardée jusqu'au serveur,Le client a expiré pour renvoyer la demande,Si le serveur reçoit et confirme correctement la réponse,Double commodité pour commencer la communication,Relâchez la connexion lorsque la communication est terminée.En ce moment,Si la demande de connexion invalide arrive au serveur,Comme il n'y a que deux poignées de main,Le serveur entre sur demandeESTABLISHEDStatut,En attente d'envoi de données ou d'envoi actif de données.Mais le client est déjà entréCLOSEDStatut,Le serveur attendra toujours,Cela gaspille les ressources de connexion côté serveur.
TCPQuatre fois.

TCP Il faut quatre étapes pour libérer la connexion ,Donc appelé『Quatre fois.』.
Nous savons que,TCPLa connexion est bidirectionnelle,Donc dans les quatre mains,Les deux premiers coups de main sont utilisés pour déconnecter la connexion dans une direction,Les deux dernières vagues sont utilisées pour déconnecter la connexion dans l'autre direction.
Première vague
SiAPensez que la transmission des données est terminée,Alors il a besoin deBEnvoyer une demande de libération de connexion.La requête n'a qu'un en - tête,Les principaux paramètres transportés dans l'en - tête sont:FIN=1,seq=u.En ce moment,AVa entrer dansFIN-WAIT-1Statut.
PS1:FIN=1Indique que le segment de message est une demande de libération de connexion.
PS2:seq=u,u-1- Oui.AVersBNuméro de série du dernier octet envoyé.
Deuxième vague.
BAprès avoir reçu la demande de libération de connexion,La demande correspondante sera informée,Dis - lui.AVersBLa connexion dans cette direction a été libérée.En ce momentBEntréeCLOSE-WAITStatut,Et versAEnvoyer une réponse à la libération de la connexion,Son en - tête contient:ACK=1,seq=v,ack=u+1.
PS1:ACK=1:SaufTCPEn dehors du segment de demande de connexion,TCPTous les datagrammes pendant la communicationACKTous.1,Indique une réponse.
PS2:seq=v,v-1- Oui.BVersANuméro de série du dernier octet envoyé.
PS3:ack=u+1A exprimé le souhait de recevoiru+1Segment de message commençant par les octets,Et a été reçu avec succès avantuOctets.
AReçu cette réponse,EntréeFIN-WAIT-2Statut,Attendez.BEnvoyer une demande de libération de connexion.
Après la deuxième vague,AÀBLa connexion directionnelle a été libérée,BPlus de données reçues,AEt n'envoie plus de données.Mais...BÀALa connexion directionnelle existe toujours,BPeut continuer versAEnvoyer des données.
Troisième vague.
QuandBVersAAprès avoir envoyé toutes les données,VersAEnvoyer une demande de libération de connexion,En - tête de la demande:FIN=1,ACK=1,seq=w,ack=u+1.BC'est parti.LAST-ACKStatut.
Quatrième vague
ADès réception de la demande de libération,VersBEnvoyer une réponse de confirmation,En ce momentAEntréeTIME-WAITStatut.Cet état durera2MSLTemps,S'il n'y a pas deBPour renvoyer une demande,Entrez.CLOSEDStatut,AnnulerTCB.QuandBDès réception de la réponse de confirmation,Et il est entré dansCLOSEDStatut,AnnulerTCB.
Pourquoi A Pour entrer en premierTIME-WAITStatut,Attendez.2MSLIl est temps d'entrerCLOSEDStatut
Pour garantirBBien reçu.ARéponse de confirmation.SiAEntrez directement après avoir envoyé la réponse de confirmationCLOSEDStatut,Si la réponse est perdue,BUne fois le délai écoulé, la demande de libération de connexion sera envoyée à nouveau,Mais en ce moment,AC'est fermé.,Aucune réponse,Donc,BNe jamais fermer normalement.
Source::https://mp.weixin.qq.com/s/oKOjjXm6OcdVT_laAeDp6Q
Lectures recommandées
NO.1
Recommandations antérieures
Historical articles
9 C'est super. JSON Outils de traitement,Améliorer considérablement l'efficacité!
Ça sent bon.!Le plus complet Pycharm Raccourcis clavier couramment utilisés!
Pandas C'est facile pour les débutants 6 Erreurs
PythonHuit scénarios pour réaliser des tâches programmées,Plein de marchandises sèches
Partager、Collection、- Oui.、Je regarde les arrangements.?




边栏推荐
- Internet R & D efficiency practice qunar core field Devops landing practice
- idea必用插件
- k线图精解与实战应用技巧(见位进场)
- EMQ helps Qingdao Yanbo build a smart water platform
- Compile - compile for itop4412 development board makefile
- 阿里云盘分享压缩包
- 以往我们认识的产业互联网,只是以消费互联网的替代者的身份出现
- Parker variable displacement piston pump pv092r1k1t1nmmc
- nichenet实战silicosis
- 网络:服务器网卡组技术原理与实践
猜你喜欢

Hyper-v:在虚拟网络中启用 SR-IOV

Plane intersection and plane equation

redis淘汰策略

leetcode:1042. 不邻接植花【随机填入符合要求的 + 后面不会形成矛盾 + set.pop】

Compile - compile for itop4412 development board makefile

商单视频播放超2000万!农院改造为何屡被催更?
![[untitled] write a student achievement and information management system in C language to realize the operation interface, clear screen display of current operation functions, reading and inputting st](/img/5f/cda69a34e93b3697992d576dbf0fae.jpg)
[untitled] write a student achievement and information management system in C language to realize the operation interface, clear screen display of current operation functions, reading and inputting st

New power of data analysis -- the first open source integrated real-time HTAP database in China was released by stonedb

More than 20million videos have been played in the business list! Why is the reform of Agricultural Academies urged repeatedly?

基于51单片机的计件器设计
随机推荐
6 张图带你搞懂 TCP 为什么是三次握手?
Shutter music recording playing audioplayers
列表变成向量 列表变向量 list vector
k线图精解与实战应用技巧(见位进场)
Design of piece counter based on 51 single chip microcomputer
Daily question brushing record (IX)
NielsenIQ迎来零售实验室负责人Dawn E. Norvell,将加速扩张全球零售战略
阿里云盘分享压缩包
Exch:exchange server 2013 is about to end support
addmodule_allmerge_ams_im
聊聊遠程辦公那些事兒 | 社區征文
pref使用记录
Cesium-1.72 learning (China national boundary)
Network: principle and practice of server network card group technology
A scheduled task deletes data at a specified time
ROC-RK3566-PC使用10.1寸IPS触摸屏显示
canvas云朵形状动画
Nichenet actual silicosis
【C语言】详解线程 — 开启两个线程
A tough battle for Tencent cloud