Misteris clau del broker de paquets de xarxa Connexions TCP: desmitifiqueu la necessitat de triple cop de mà

Configuració de la connexió TCP
Quan naveguem per la web, enviem un correu electrònic o juguem un joc en línia, sovint no pensem en la complexa connexió de xarxa que hi ha al darrere. Tanmateix, són aquests passos aparentment petits els que asseguren una comunicació estable entre nosaltres i el servidor. Un dels passos més importants és la configuració de la connexió TCP i el nucli d’això és el cop de mà a tres bandes.

Aquest article tractarà en detall el principi, el procés i la importància de la mà de mà a tres bandes. Pas a pas, explicarem per què es necessita el cop de mà a tres bandes, com garanteix l’estabilitat i la fiabilitat de la connexió i la importància que té per a la transferència de dades. Amb una comprensió més profunda del cop de mà a tres bandes, obtindrem una millor comprensió dels mecanismes subjacents de la comunicació de xarxa i una visió més clara de la fiabilitat de les connexions TCP.

TCP Procés a tres vies i transicions estatals
TCP és un protocol de transport orientat a la connexió, que requereix establiment de connexió abans de la transmissió de dades. Aquest procés d’establiment de connexió es fa mitjançant un cop de mà a tres bandes.

 TCP a tres vies de mà

Mirem de prop els paquets TCP que s’envien a cada connexió.

Inicialment, tant el client com el servidor estan tancats. Primer, el servidor escolta activament en un port i es troba en estat d’escolta, cosa que significa que s’ha de començar el servidor. A continuació, el client està preparat per començar a accedir a la pàgina web. Necessita establir una connexió amb el servidor. El format del primer paquet de connexió és el següent:

 Paquet SYN

Quan un client inicia una connexió, genera un número de seqüència inicial aleatori (Client_ISN) i la col·loca al camp "Número de seqüència" de la capçalera TCP. Al mateix temps, el client estableix la posició de la bandera SYN a 1 per indicar que el paquet sortint és un paquet SYN. El client indica que vol establir una connexió amb el servidor enviant el primer paquet SYN al servidor. Aquest paquet no conté dades de la capa d’aplicació (és a dir, les dades enviades). Arribats a aquest punt, l'estat del client es marca com a Syn-Sent.

Paquet SYN+ACK

Quan un servidor rep un paquet SYN d’un client, inicialitza aleatòriament el seu propi número de sèrie (Server_ISN) i després posa aquest número al camp "Número de sèrie" de la capçalera TCP. A continuació, el servidor entra a client_isn + 1 al camp "Número de reconeixement" i estableix bits SYN i ACK a 1. Finalment, el servidor envia el paquet al client, que no conté dades d'aplicació (i no hi ha dades per al servidor que envia). En aquest moment, el servidor es troba en estat SYN-RCVD.

Paquet ack

Una vegada que el client rep el paquet del servidor, ha de realitzar les optimitzacions següents per respondre al paquet de resposta final: primer, el client estableix el bit ACK de la capçalera TCP del paquet de resposta a 1; En segon lloc, el client entra al Value Server_ISN + 1 al camp "Confirma el número de resposta"; Finalment, el client envia el paquet al servidor. Aquest paquet pot portar dades del client al servidor. Un cop finalitzada aquestes operacions, el client entrarà a l’estat establert.

Una vegada que el servidor rep el paquet de resposta del client, també canvia a l'estat establert.

Com es pot veure en el procés anterior, quan realitzeu un cop de mà a tres bandes, el tercer cop de mà es permet portar dades, però els dos primers cops de mà no ho són. Aquesta és una pregunta que sovint es fa a les entrevistes. Un cop finalitzada el cop de mà a tres vies, ambdues parts entren a l’estat establert, indicant que la connexió s’ha establert amb èxit, moment en què el client i el servidor poden començar a enviar dades entre elles.

Per què tres cops de mà? No dues vegades, quatre vegades?
La resposta comuna és: "Perquè el cop de mà a tres bandes garanteix la capacitat de rebre i enviar". Aquesta resposta és correcta, però només és el motiu superficial, no planteja el motiu principal. A continuació, analitzaré els motius del triple cop de mà de tres aspectes per aprofundir en la comprensió d’aquest tema.

El cop de mà a tres vies pot evitar eficaçment la inicialització de connexions històricament repetides (el motiu principal)
El cop de mà a tres bandes garanteix que ambdues parts han rebut un número de seqüència inicial fiable.
El cop de mà a tres bandes evita malbaratar recursos.

Motiu 1: Eviteu les unires històriques
En poques paraules, el principal motiu del cop de mà a tres bandes és evitar la confusió causada per l’antiga inicialització de la connexió duplicada. En un entorn de xarxa complex, la transmissió de paquets de dades no sempre s’envia a l’amfitrió de destinació d’acord amb el temps especificat, i els paquets de dades antics poden arribar a l’amfitrió de destinació primer a causa de la congestió de la xarxa i altres motius. Per evitar-ho, TCP utilitza un cop de mà a tres bandes per establir la connexió.

L’escapa de mà de tres vies evita les connexions duplicades històriques

Quan un client envia diversos paquets d’establiments de connexió SYN successivament, en situacions com la congestió de xarxa, es pot produir el següent:

1- Els paquets SYN antics arriben al servidor abans dels darrers paquets SYN.
2- El servidor respondrà un paquet SYN + ACK al client després de rebre l'antic paquet SYN.
3- Quan el client rep el paquet SYN + ACK, determina que la connexió és una connexió històrica (número de seqüència caducat o temps d'espera) segons el seu propi context, i després envia el primer paquet al servidor per avortar la connexió.

Amb una connexió de dues mans, no hi ha manera de determinar si la connexió actual és una connexió històrica. El cop de mà a tres vies permet al client determinar si la connexió actual és una connexió històrica basada en el context quan està a punt per enviar el tercer paquet:

1- Si es tracta d’una connexió històrica (el número de seqüència caducat o el temps d’espera), el paquet enviat pel tercer cop de mà és un primer paquet per avortar la connexió històrica.
2- Si no es tracta d’una connexió històrica, el paquet enviat per tercera vegada és un paquet ACK, i les dues parts comunicants estableixen amb èxit la connexió.

Per tant, el principal motiu pel qual TCP utilitza el cop de mà a tres bandes és que inicialitza la connexió per evitar connexions històriques.

Motiu 2: per sincronitzar els números de seqüència inicial de les dues parts
Les dues cares del protocol TCP han de mantenir un número de seqüència, que és un factor clau per assegurar una transmissió fiable. Els números de seqüències tenen un paper important en les connexions TCP. Feu el següent:

El receptor pot eliminar les dades duplicades i assegurar la precisió de les dades.

El receptor pot rebre paquets en l'ordre del número de seqüència per assegurar la integritat de les dades.

● El número de seqüència pot identificar el paquet de dades que ha rebut l'altra part, permetent la transmissió de dades fiable.

Per tant, en establir una connexió TCP, el client envia paquets SYN amb el número de seqüència inicial i requereix que el servidor respongui amb un paquet ACK que indiqui una recepció amb èxit del paquet SYN del client. Aleshores, el servidor envia el paquet SYN amb el número de seqüència inicial al client i espera que el client respongui, d’una vegada per totes, per assegurar -se que els números de seqüència inicials es sincronitzen de manera fiable.

Sincronitzar els números de sèrie inicials d’ambdues parts

Tot i que també és possible un cop de mà a quatre vies per sincronitzar de forma fiable els números de seqüència inicial d’ambdues parts, el segon i el tercer passos es poden combinar en un sol pas, donant lloc a un cop de mà a tres bandes. Tot i això, els dos cops de mà només poden garantir que l’altra part rebi el nombre de seqüència inicial d’una part, però no hi ha cap garantia que es pugui confirmar el nombre de seqüència inicial d’ambdues parts. Per tant, el cop de mà a tres bandes és la millor opció a prendre per assegurar l’estabilitat i la fiabilitat de les connexions TCP.

Motiu 3: Eviteu malgastar recursos
Si només hi ha un "cop de mà", quan la sol·licitud SYN del client està bloquejada a la xarxa, el client no pot rebre el paquet ACK enviat pel servidor, de manera que el SYN es ressentirà. No obstant això, com que no hi ha cap tercer cop de mà, el servidor no pot determinar si el client va rebre un reconeixement ACK per establir la connexió. Per tant, el servidor només pot establir una connexió de manera proactiva després de rebre cada sol·licitud SYN. Això porta a les següents:

Residus de recursos: si la sol·licitud SYN del client està bloquejada, donant lloc a una transmissió repetida de diversos paquets SYN, el servidor establirà diverses connexions no vàlides redundants després de rebre la sol·licitud. Això comporta un malbaratament innecessari de recursos del servidor.

Retenció de missatges: a causa de la manca d'un tercer cop de mà, el servidor no té forma de saber si el client va rebre correctament el reconeixement de l'ACK per establir la connexió. Com a resultat, si els missatges s’enganxen a la xarxa, el client continuarà enviant les sol·licituds SYN una i altra vegada, fent que el servidor estableixi constantment noves connexions. Això augmentarà la congestió de la xarxa i el retard i afectarà negativament el rendiment global de la xarxa.

Eviteu malgastar recursos

Per tant, per tal d’assegurar l’estabilitat i la fiabilitat de la connexió de xarxa, TCP utilitza el cop de mà a tres bandes per establir la connexió per evitar l’aparició d’aquests problemes.

Sumari
ElBroker de paquets de xarxaL’establiment de connexió TCP es fa amb un cop de mà a tres bandes. Durant el cop de mà a tres vies, el client envia primer un paquet amb el indicador SYN al servidor, cosa que indica que vol establir una connexió. Després de rebre la sol·licitud del client, el servidor respon un paquet amb indicadors SYN i ACK al client, indicant que s’accepta la sol·licitud de connexió i envia el seu propi número de seqüència inicial. Finalment, el client respon amb un indicador ACK al servidor per indicar que la connexió s'ha establert amb èxit. Així, les dues parts es troben en estat establert i poden començar a enviar dades les unes a les altres.

En general, el procés de tres bandes per a l'establiment de connexió TCP està dissenyat per assegurar l'estabilitat i la fiabilitat de la connexió, evitar la confusió i el malbaratament de recursos sobre les connexions històriques i assegurar-se que ambdues parts puguin rebre i enviar dades.


Post Horari: gener-08-2025
  • alice
  • alice2025-04-21 21:25:03
    Hello, I am intelligent customer service. My name is Alice. If you have any questions, you can ask me. I will answer your questions online 24 hours a day!

Ctrl+Enter Wrap,Enter Send

  • FAQ
Please leave your contact information and chat
Hello, I am intelligent customer service. My name is Alice. If you have any questions, you can ask me. I will answer your questions online 24 hours a day!
chat now
chat now