Network Packet Broker TCP konexioen funtsezko misterioak: Handshake hirukoitzaren beharra desmitifikatu du

TCP konexioaren konfigurazioa
Sarean arakatzen dugunean, mezu elektroniko bat bidaltzen dugunean edo lineako joko batean jolasten dugunean, askotan ez dugu pentsatzen horren atzean dagoen sare-konexio konplexuan. Hala ere, pauso txiki itxuraz hauek dira gure eta zerbitzariaren arteko komunikazio egonkorra bermatzen dutenak. Urrats garrantzitsuenetako bat TCP konexioaren konfigurazioa da, eta honen muina hiru norabideko esku-ematea da.

Artikulu honek hiru norabideko esku-ematearen printzipioa, prozesua eta garrantzia aztertuko ditu xehetasunez. Pausoz pauso azalduko dugu zergatik behar den hiru noranzko bostekoa, nola bermatzen duen konexioaren egonkortasuna eta fidagarritasuna eta zein garrantzitsua den datuen transferentziarako. Hiru norabideko esku-ematea sakonago ulertuta, sareko komunikazioaren azpiko mekanismoak hobeto ulertuko ditugu eta TCP konexioen fidagarritasunari buruzko ikuspegi argiagoa izango dugu.

TCP Hiru norabideko esku-emate prozesua eta egoera-trantsizioak
TCP konexiora bideratutako garraio-protokolo bat da, eta datuen transmisioaren aurretik konexioa ezartzea eskatzen du. Konexioa ezartzeko prozesu hau hiru noranzko esku-emate baten bidez egiten da.

 TCP hiru norabideko esku-ematea

Ikus ditzagun konexio bakoitzean bidaltzen diren TCP paketeei.

Hasieran, bezeroa eta zerbitzaria ITXITA daude. Lehenik eta behin, zerbitzariak aktiboki entzuten du ataka batean eta LISTEN egoeran dago, hau da, zerbitzaria abiarazi behar da. Ondoren, bezeroa prest dago web-orrian sartzen hasteko. Zerbitzariarekin konexio bat ezarri behar du. Lehenengo konexio-paketearen formatua hau da:

 SYN paketea

Bezero batek konexio bat hasten duenean, ausazko hasierako sekuentzia-zenbaki bat sortzen du (client_isn) eta TCP goiburuko "Sekuentzia zenbakia" eremuan jartzen du. Aldi berean, bezeroak SYN banderaren posizioa 1ean ezartzen du, irteerako paketea SYN pakete bat dela adierazteko. Bezeroak zerbitzariarekin konexioa ezarri nahi duela adierazten du zerbitzariari lehen SYN paketea bidaliz. Pakete honek ez du aplikazio-geruzen daturik (hau da, bidalitako datuak). Une honetan, bezeroaren egoera SYN-SENT gisa markatzen da.

SYN+ACK paketea

Zerbitzari batek bezero baten SYN pakete bat jasotzen duenean, ausaz hasieratzen du bere serie-zenbakia (server_isn) eta gero zenbaki hori jartzen du TCP goiburuko "Serial number" eremuan. Jarraian, zerbitzariak client_isn + 1 sartzen du "Aitorpen zenbakia" eremuan eta SYN eta ACK bit-ak 1ean ezartzen ditu. Azkenik, zerbitzariak paketea bidaltzen dio bezeroari, aplikazio-geruzako daturik (eta zerbitzariarentzat ez du daturik). bidaltzeko). Une honetan, zerbitzaria SYN-RCVD egoeran dago.

ACK paketea

Bezeroak zerbitzaritik paketea jasotzen duenean, optimizazio hauek egin behar ditu azken erantzun-paketeari erantzuteko: Lehenik eta behin, bezeroak erantzun-paketearen TCP goiburuko ACK bit-a 1ean ezartzen du; Bigarrenik, bezeroak zerbitzaria_isn + 1 balioa sartzen du "Berretsi erantzunaren zenbakia" eremuan; Azkenik, bezeroak paketea zerbitzariari bidaltzen dio. Pakete honek bezerotik zerbitzarira datuak eraman ditzake. Eragiketa hauek amaitutakoan, bezeroa EZORTUTAKO egoeran sartuko da.

Zerbitzariak bezeroaren erantzun paketea jasotzen duenean, EZARRITASUN egoerara ere aldatzen da.

Goiko prozesuan ikusten denez, hiru norabideko esku-ematea egitean, hirugarren esku-emateari baimena ematen zaio datuak eramateko, baina lehenengo bi esku-emateak ez. Elkarrizketetan askotan egiten den galdera da. Hiru norabideko esku-ematea amaitutakoan, bi aldeak EZARRITUTAKO egoeran sartzen dira, konexioa ondo ezarri dela adieraziz, eta momentu horretan bezeroa eta zerbitzaria elkarri datuak bidaltzen has daitezke.

Zergatik hiru bosteko? Ez bi aldiz, lau aldiz?
Erantzun arrunta hauxe da: "Hiru norabideko bostekoak jasotzeko eta bidaltzeko gaitasuna bermatzen duelako". Erantzun hau zuzena da, baina azaleko arrazoia baino ez da, ez du arrazoi nagusia proposatzen. Jarraian, hiru aspektuetatik esku-emate hirukoitzaren arrazoiak aztertuko ditut gai honen ulermenean sakontzeko.

Hiru norabideko esku-emateak modu eraginkorrean saihestu dezake historikoki errepikatutako konexioak hasieratzea (arrazoi nagusia)
Hiru norabideko esku-emateak bermatzen du bi aldeek hasierako sekuentzia-zenbaki fidagarria jaso dutela.
Hiru norabideko bostekoak baliabideak xahutzea saihesten du.

1. Arrazoia: Saihestu Bikoiztu Elkarte historikoak
Laburbilduz, hiru norabideko esku-ematearen arrazoi nagusia bikoiztutako konexio zaharraren hasierak eragindako nahasmena saihestea da. Sare-ingurune konplexu batean, datu-paketeen transmisioa ez da beti helmuga-ostalarira bidaltzen zehaztutako denboraren arabera, eta datu-pakete zaharrak helmuga-ostalarira irits daitezke lehenik sare-pilaketak direla eta beste arrazoi batzuengatik. Hori ekiditeko, TCP-k hiru norabideko esku-ematea erabiltzen du konexioa ezartzeko.

hiru norabideko esku-emateak bikoiztutako konexio historikoak saihesten ditu

Bezero batek SYN konexioa ezartzeko hainbat pakete segidan bidaltzen dituenean, sarearen pilaketa bezalako egoeretan, honako hau gerta daiteke:

1- SYN pakete zaharrak azken SYN paketeen aurretik iristen dira zerbitzarira.
2- Zerbitzariak SYN + ACK pakete bat erantzungo dio bezeroari SYN pakete zaharra jaso ondoren.
3- Bezeroak SYN + ACK paketea jasotzen duenean, konexio historikoa dela zehazten du (sekuentzia-zenbakia iraungi edo denbora-muga) bere testuinguruaren arabera, eta ondoren RST paketea zerbitzariari bidaltzen dio konexioa bertan behera uzteko.

Bi esku-harreman konexioarekin, ez dago uneko konexioa konexio historikoa den zehazteko modurik. Hiru norabideko esku-emateari esker, bezeroak uneko konexioa konexio historikoa den zehazteko aukera ematen du testuinguruaren arabera hirugarren paketea bidaltzeko prest dagoenean:

1- Konexio historikoa bada (sekuentzia-zenbakia iraungi edo denbora-muga), hirugarren esku-emateak bidalitako paketea RST pakete bat da, konexio historikoa bertan behera uzteko.
2- Konexio historikoa ez bada, hirugarren aldiz bidalitako paketea ACK pakete bat da, eta komunikatzen diren bi alderdiek ongi ezartzen dute konexioa.

Hori dela eta, TCP-k hiru noranzko esku-ematea erabiltzeko arrazoi nagusia konexioa hasieratzen duela da, konexio historikoak saihesteko.

2. arrazoia: bi alderdien hasierako sekuentzia-zenbakiak sinkronizatzeko
TCP protokoloaren bi aldeek sekuentzia-zenbaki bat mantendu behar dute, eta hori funtsezko faktorea da transmisio fidagarria bermatzeko. Sekuentzia-zenbakiek paper garrantzitsua dute TCP konexioetan. Honako hauek egiten dituzte:

Hartzaileak datu bikoiztuak ezaba ditzake eta datuen zehaztasuna bermatu dezake.

Hartzaileak paketeak jaso ditzake sekuentzia-zenbakiaren ordenan, datuen osotasuna ziurtatzeko.

● Sekuentzia-zenbakiak beste alderdiak jaso duen datu-paketea identifikatu dezake, datu-transmisio fidagarria ahalbidetuz.

Hori dela eta, TCP konexioa ezartzean, bezeroak SYN paketeak bidaltzen ditu hasierako sekuentzia-zenbakiarekin eta zerbitzariak ACK pakete batekin erantzuteko eskatzen dio bezeroaren SYN paketearen harrera arrakastatsua adieraziz. Ondoren, zerbitzariak hasierako sekuentzia-zenbakiarekin SYN paketea bidaltzen dio bezeroari eta bezeroak behingoz erantzun arte itxarongo du, hasierako sekuentzia-zenbakiak modu fidagarrian sinkronizatuta daudela ziurtatzeko.

Sinkronizatu bi alderdien hasierako serie-zenbakiak

Lau norabideko esku-ematea bi alderdien hasierako sekuentzia-zenbakiak modu fidagarrian sinkronizatzeko ere posible den arren, bigarren eta hirugarren urratsak urrats bakarrean konbina daitezke, hiru noranzkoko esku-ematea lortuz. Hala ere, bi esku-aharkatzeek alderdi baten hasierako sekuentzia-zenbakia beste alderdiak behar bezala jasotzen duela bermatu dezakete, baina ez dago bermatzen bi alderdien hasierako sekuentzia-zenbakia berretsi daitekeenik. Hori dela eta, hiru norabideko esku-ematea da hartu beharreko aukerarik onena TCP konexioen egonkortasuna eta fidagarritasuna bermatzeko.

3. arrazoia: Baliabideak xahutzea saihestu
"Bi esku-eskua" besterik ez badago, bezeroaren SYN eskaera sarean blokeatuta dagoenean, bezeroak ezin du jaso zerbitzariak bidalitako ACK paketea, beraz SYN berriro bidaliko da. Hala ere, hirugarren esku-ematerik ez dagoenez, zerbitzariak ezin du zehaztu bezeroak konexioa ezartzeko ACK aitorpena jaso duen. Hori dela eta, zerbitzariak modu proaktiboan ezar dezake konexio bat SYN eskaera bakoitza jaso ondoren. Honek honako hau dakar:

Baliabideak xahutzea: bezeroaren SYN eskaera blokeatzen bada, SYN pakete anitz behin eta berriz igortzen bada, zerbitzariak hainbat konexio baliogabe ezarriko ditu eskaera jaso ondoren. Horrek zerbitzariaren baliabideak alferrikako xahutzea dakar.

Mezuen atxikipena: Hirugarren esku-ematerik ez dagoenez, zerbitzariak ez du jakiteko modurik bezeroak konexioa ezartzeko ACK aitorpena behar bezala jaso duen ala ez. Ondorioz, mezuak sarean trabatuta geratzen badira, bezeroak SYN eskaerak behin eta berriz bidaltzen jarraituko du, zerbitzariak etengabe konexio berriak ezartzea eraginez. Horrek sarearen pilaketak eta atzerapenak areagotuko ditu eta sarearen errendimendu orokorrari eragin negatiboa izango zaio.

Saihestu baliabideak xahutzea

Hori dela eta, sare-konexioaren egonkortasuna eta fidagarritasuna bermatzeko, TCP-k hiru norabideko esku-ematea erabiltzen du konexioa ezartzeko, arazo horiek ez gertatzeko.

Laburpena
TheSareko Pakete BrokerTCP konexioa ezartzea hiru norabideko esku-ematearekin egiten da. Hiru norabideko esku-ematean, bezeroak SYN bandera duen pakete bat bidaltzen dio zerbitzariari, konexio bat ezarri nahi duela adieraziz. Bezeroaren eskaera jaso ondoren, zerbitzariak SYN eta ACK banderadun pakete bat erantzuten dio bezeroari, konexio eskaera onartuta dagoela adieraziz, eta bere hasierako sekuentzia-zenbakia bidaltzen du. Azkenik, bezeroak ACK bandera batekin erantzuten dio zerbitzariari konexioa ondo ezarri dela adierazteko. Horrela, bi alderdiak EZARRITUTAKO egoeran daude eta elkarri datuak bidaltzen has daitezke.

Oro har, TCP konexioa ezartzeko hiru norabideko esku-harremanaren prozesua konexioaren egonkortasuna eta fidagarritasuna bermatzeko diseinatuta dago, konexio historikoetan nahasmena eta baliabideak xahutzea saihesteko eta bi aldeek datuak jaso eta bidaltzeko gai direla ziurtatzeko.


Argitalpenaren ordua: 2025-08-08