Constituzione di cunnessione TCP
Quandu navigaremu u web, mandemu un email, o ghjucà un ghjocu in ligna, spessu ùn pensemu à a cunnessione di a rete cumplessa daretu à ellu. Eppuru, hè queste tappe apparentemente chjuche chì assenu a cumunicazione stabile trà noi è u servitore. Unu di i passi più impurtanti hè a cunfigurazione di cunnessione, è u core di questu hè u trè-Wandshake.
Questu articulu discuterà u principiu, u prucessu è l'impurtanza di e trediane di mani di in dettaglio. Passu Passu, Spiegheremu perchè a Mana di Handsale hè necessariu, Cumu assicura a stabilità è a so affidabilità è quantu hè impurtante per u trasferimentu di dati. Cù un capitu più càvu di a fine di e mani più chì averarete una megliu capiscitura di cumunicazione sottoporente è una vista chjaru di l'affidazione di a cunnessione TCP.
TCP TRe-Way Process di Tres-West è Transizioni di Statu
TCP hè un protokollu di trasportu orientatu à cunnessione, chì richiede u stabilimentu di cunnessione prima di trasmissione di dati. Stu prucessu di stabilimentu di cunnessione hè fattu da una tre-handshake.
Facemu un sguardu più vicinu à i pacchetti TCP chì sò mandati in ogni cunnessione.
Inizialmente, sia u cliente è u servitore sò chjusi. Prima, u servitore si ascolta attivamente nantu à un portu è hè in u statu di sente chì u servitore deve esse iniziatu. In seguitu, u cliente hè prontu per inizià l'accessu à a pagina web.it hà bisognu di stabilisce una cunnessione cù u servitore. U furmatu di u primu pacchettu di cunnessione hè a seguente:
Quandu un cliente inizia una cunnessione, genera un numeru di sequenza iniziale casuale (client_isn) è mette in u "numeru di sequenza" di u capu TCP. À u stessu tempu, u cliente stabilisce a pusizione di bandiera di a Syn à 1 per indicà chì u pacchettu in uscita hè un pacchettu di sinu. U cliente indica chì vole stabilisce una cunnessione cù u servitore mandendu u primu pacchettu di u servitore à u servitore. Stu pacchettu ùn cuntene micca dati di capa d'applicazione (chì hè, i dati mandati). À questu puntu, u statu di u cliente hè marcatu cum'è syn-mandatu.
Quandu un servitore riceve un pacchettu di sinu, hè in modu casuale, in modu casuale u so numeru di serie (server_isn) è dopu mette stu numeru "u numeru di u tcp". Prossimu, u servitore entra in Client_isn + 1 In u "Cunsigliu di u numeru" di ricunniscenza sia è acky bitsulari à 1. Infine, u servitore - in u servitore per mandà). In questu momentu, u servitore hè in u statu di Sin-rcvd.
Una volta chì u cliitore riceve u pacchettu da u server, hà bisognu à fà, e seguenti optimizioni per risponde i pacchati di risposta finale: Prima, u clientu Sintesi bit di u TCP di u Pacchettu di risposta à u 1; Secondu, u cliente entra in u servitore di valore_isn + 1 in u campu "Confirmà u numeru di risposta"; Infine, u cliente manda u pacchettu à u servitore. Stu pacchettu pò purtà dati da u cliente à u servitore. Dopu à a fine di queste operazioni, u cliente entrà in u statu stabilitu.
Una volta chì u servitore riceve u pacchettu di risposta da u cliente, si cambia ancu à u statu stabilitu.
Comu pudete vede da u prucessu di sopra, quandu realizendu una tre-handshake, u terzu hands hè permessu di portà dati, ma i primi dui mani sò. Questa hè una quistione chì hè spessu dumandatu in interviste. Una volta chì u tre-handshake hè cumpletu, e duie parti inserite u statu stabilitu, indicendu chì a cunnessione hè stata stabilita cù successu, à quale puntu u cliente è u servitore à mandà dati.
Perchè trè mani di mani? Micca duie volte, quattru volte?
A risposta cumuna hè "perchè a tre-handshake garantisce a capacità di riceve è mandà". Sta risposta hè curretta, ma hè solu u raghjone di a magia, ùn mette micca avanti. In seguitu, analìa e motivi di u triplu Mano di mano di trè aspetti per prufunditu di questu prublema.
U tre-handshake ùn ponu evità effettivamente l'inizializazione di e cunnessione storicamente ripetuta (a ragione principale)
I gestione di a manu di trè water chì i dui partiti anu ricivutu un numeru di sequenza iniziale affidabile.
Evita di e testiche di trè passi di a bestie.
Motivo 1: Evitate unghie duplicate storicu
In pocu à pocu, u mutivu principale per a prova di trè parenzi hè di evitari a cunfusione causata da a vechja inizializazione di cunnessione duplicata. In un ambiente di rete cumplessu, a trasmissione di i pacchetti di dati ùn sò micca sempre mandati à l'ospitu di destinazione cù u tempu specificatu, è vechji pacchetti di dati pò ghjunghje à a congestione di a rete è altri mutivi. Per evità questu, TCP usa una tre-handshake à stabilisce a cunnessione.
Quandu un cliente manda multiple pacchetti di stabilimentu di cunnessione in successione, in situazioni cum'è a congestione di a rete, i seguenti pò accade:
1- I vechji pacchetti sinchji arrivanu à u servitore prima di l'ultimi pacchetti sinceri.
2- U servitore hà da risponde à un packet di Syn + Ack à u cliente dopu avè ricevutu u vechju pacchettu.
3- Quandu u clientu riceve u packet Syn + Ack hè una cunnessione è u numeru storicu) secondu u timeout, secondu u timeout, è poi manda u propiu pacchettu in u server per abortisce a cunnessione.
Cù una cunnessione di dui mani, ùn ci hè manera di determinà se a cunnessione attuale hè una cunnessione storica. A manu di u trè piace à a so cliente per stabilisce se a cunnessione attuale hè una cunnessione storica basata nantu à u cuntestu quandu hè pronta à mandà u terzu pacchettu:
1- Se hè una cunnessione storica (u numeru di sequenza scaduta o timeout), u pacchettu mandatu da u terzu hands hè un pacchettu di retta per abortà a cunnessione storica.
2- Sì ùn hè micca una cunnessione storica, u pacchettu hè statu mandatu per a terza volta hè un Pacchettu di Ack, è i dui partiti cumunicativi ci sò coltu a cunnessione.
Dunque, a raghjone principale chì TCP usa a manu di trè piutenti hè chì l'inizialzeghja a cunnessione cù e prevenzioni di cunnessione storichi.
Motivo 2: Per sincronizà i numeri di sequenza iniziale di i dui partiti
I dui lati di u prutocchettu TCP deve mantene un numeru di sequenza, chì hè un fattore chjave per assicurà a trasmissione affidabile. I numeri di sequenza ghjucanu un rolu impurtante in cunnessione TCP.Is facenu e seguenti:
U ricevitore pò eliminà e dati duplicate è assicurà l'accuratezza di e dati.
U ricevitore pò riceve pacchetti in l'ordine di u numeru di sequenza per assicurà l'integrità di e dati.
● U numeru di sequenza pò identificà u pacchettu di dati chì hè stata ricevuta da l'altra parte, chì permette a trasmissione di dati affidabile.
Dunque, dopu à stabilisce una cunnessione TCP, U cliente manda i pacchetti di sequitari cù u numeru di sequenza iniziale è necessita u servitore à a riesce di u cliente. Dopu, u servitore Invia u pacchettu di sonu cù u numeru di sequista iniziale per u cliente per risponde, una volta e per tutte. I numeri di sequenza iniziale sò emotivamente sincronizzate.
Eppuru chì una tenda di quattru settimane hè ancu pussibule di sincronizà in modu affidabile u numeru di sequenza iniziale di e duie parti è u terzu passu pò esse cumminatu in un solu passu, risultatu in una mano di trè ore. Tuttavia, i dui mani pò solu guarantisce chì u numeru iniziale di una parte hè aduprata da l'altru partitu, ma ùn ci hè micca una garanzia chì u numeru di sequenza iniziale di i partiti Dunque, u tre-handshake hè a megliu scelta per assicurà a stabilità è affidabilità di cunnessione TCP.
Motivo 3: Evitate di perde e risorse
Se ci hè solu una "mano", quandu a dumanda di u cliente hè bluccatu in a rete, u cliente ùn pò micca riceve u pacchettu ack mandatu da u servitore, cusì u sinu serà resent. Tuttavia, postu chì ùn ci hè micca un terzu handshake, u servitore ùn pò micca determinà se u cliente hà ricevutu un ack ricunniscenza per stabilisce a cunnessione. Dunque, u servitore pò solu stabilisce proattivamente una cunnessione dopu avè ricevutu ogni dumanda syn. Questu porta à e seguenti:
Scarti di risorse: se a dumanda di syn di u cliente hè bluccatu, u risultatu di a trasmissione ripetuta di pacchetti di u Syn Syn, u servitore Questu porta à un rifiutu inutile di e risorse di u servitore.
Retenzione di u messagiu: A causa di a mancanza di una terza manu, u server ùn hà micca manera di sapè se u cliente hà ricivutu bè a ricunniscenza currettamente à a cunnessione. Per via di u risultatu, se i missaghji si svilanu in a rete, u cliente manteneranu e dumande di a sincroni è di novu, pruvucannu u servitore constantemente novi cunnessione. Questu aumenterà a congestione di a rete è u ritardu è afecta negativamente a rendimentu di a rete generale.
Dunque, per assicurà a stabilità è affidabilità di a cunnessione di a rete, tcp usa a manu di trè suluri per stabilisce a cunnessione cù evità l'occasione.
Riassuntu
UBroker di packet di reteU stabilimentu di cunnessione TCP hè fattu cù una tre-handshake. Durante u tre-watch-handshake, u cliente si mandu un pacchettu cù a bandiera di a syn à u servitore, indicendu chì vole stabilisce una cunnessione. Dopu avè ricivutu a dumanda da u cliente, u servitore risponde à un pacchettu cù u pacchettu à u cliente è a dumanda di a cunnessione hè stata accettata Infine, u cliente risponde cù una bandiera ack à u servitore per indicà chì a cunnessione hè stata stabilita bè. Cusì, i dui partiti sò in u statu stabilitu è ponu inizià à mandà dati à l'altru.
In generale, u prucessu di a nota di tre-handske per a Stabilità di Cunnessione TCP per assicurà a stabilità di a cunnessione è affusibilità, evitate di cunfusione per restazioni storiche di risorse.
Tempu di Post: Jan-08-2025