TCP konexioaren konfigurazioa
Webean nabigatzen dugunean, mezu elektroniko bat bidaltzen dugunean edo online joko batean jolasten dugunean, askotan ez dugu pentsatzen atzean dagoen sare-konexio konplexuaz. Hala ere, itxuraz urrats txiki hauek dira gure eta zerbitzariaren arteko komunikazio egonkorra bermatzen dutenak. Urrats garrantzitsuenetako bat TCP konexioaren konfigurazioa da, eta horren muina hiru norabideko esku-ematea da.
Artikulu honek hiru norabideko esku-ematearen printzipioa, prozesua eta garrantzia xehetasunez aztertuko ditu. Pausoz pauso, azalduko dugu zergatik den beharrezkoa hiru norabideko esku-ematea, nola bermatzen duen konexioaren egonkortasuna eta fidagarritasuna, eta zein garrantzitsua den datuen transferentziarako. Hiru norabideko esku-ematea sakonago ulertuta, sareko komunikazioaren oinarrizko mekanismoak hobeto ulertuko ditugu eta TCP konexioen fidagarritasunaren ikuspegi argiagoa izango dugu.
TCP Hiru Bideko Esku-emate Prozesua eta Egoera Trantsizioak
TCP konexio-orientatutako garraio-protokolo bat da, eta datuak transmititu aurretik konexioa ezartzea eskatzen du. Konexio-ezartze prozesu hau hiru norabideko esku-emate baten bidez egiten da.
Ikus ditzagun gertuagotik konexio bakoitzean bidaltzen diren TCP paketeak.
Hasieran, bezeroa eta zerbitzaria ITXITA daude. Lehenik, zerbitzariak portu batean entzuten du aktiboki eta LISTEN egoeran dago, hau da, zerbitzaria abiarazi behar da. Ondoren, bezeroa prest dago web orrira sartzen hasteko. Zerbitzariarekin konexioa ezarri behar du. Lehenengo konexio paketearen formatua honako hau da:
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 lehen SYN paketea zerbitzarira bidaliz. Pakete honek ez du aplikazio-geruzako daturik (hau da, bidalitako daturik). Une honetan, bezeroaren egoera SYN-SENT gisa markatzen da.
Zerbitzari batek bezero batetik SYN pakete bat jasotzen duenean, ausaz bere serie-zenbakia (server_isn) hasieratzen du eta zenbaki hori TCP goiburuko "Serie-zenbakia" eremuan jartzen du. Ondoren, zerbitzariak client_isn + 1 sartzen du "Onarpen-zenbakia" eremuan eta SYN eta ACK bitak 1era ezartzen ditu. Azkenik, zerbitzariak paketea bidaltzen dio bezeroari, eta paketeak ez du aplikazio-geruzako daturik (eta zerbitzariak bidaltzeko daturik ere ez). Une honetan, zerbitzaria SYN-RCVD egoeran dago.
Bezeroak paketea zerbitzaritik jasotzen duenean, optimizazio hauek egin behar ditu azken erantzun paketeari erantzuteko: Lehenik, bezeroak erantzun paketearen TCP goiburuko ACK bita 1ean ezartzen du; Bigarrenik, bezeroak server_isn + 1 balioa sartzen du "Berretsi erantzun zenbakia" eremuan; Azkenik, bezeroak paketea zerbitzarira bidaltzen du. Pakete honek datuak bezerotik zerbitzarira eraman ditzake. Eragiketa hauek amaitutakoan, bezeroa ESTABLISHED egoeran sartuko da.
Zerbitzariak bezeroarengandik erantzun-paketea jasotzen duenean, ESTABLISHED egoerara ere aldatzen da.
Goiko prozesuan ikus dezakezuenez, hiru norabideko esku-emate bat egiterakoan, hirugarren esku-emateari datuak eramateko baimena ematen zaio, baina lehenengo bi esku-emateei ez. Elkarrizketetan askotan egiten den galdera da hau. Hiru norabideko esku-ematea amaitutakoan, bi aldeak EZARRITA egoeran sartzen dira, konexioa behar bezala ezarri dela adieraziz, eta une horretan bezeroak eta zerbitzariak datuak elkarri bidaltzen has daitezke.
Zergatik hiru esku-emate? Ez bi aldiz, lau aldiz?
Ohiko erantzuna hau da: "Hiru norabideko esku-ematea jasotzeko eta bidaltzeko gaitasuna bermatzen duelako". Erantzun hau zuzena da, baina azaleko arrazoia baino ez da, ez du arrazoi nagusia aurkezten. Jarraian, hirukoitzeko esku-ematearen arrazoiak hiru alderditatik aztertuko ditut, gai honen ulermena sakontzeko.
Hiru norabideko esku-ematea eraginkortasunez saihestu dezake historikoki errepikatutako konexioen hasieraketa (arrazoi nagusia)
Hiru norabideko esku-ematea bermatzen du bi aldeek hasierako sekuentzia-zenbaki fidagarria jaso dutela.
Hiru norabideko esku-ematea baliabideak xahutzea saihesten du.
1. arrazoia: Saihestu lotura bikoitz historikoak
Laburbilduz, hiru norabideko esku-ematearen arrazoi nagusia konexio bikoiztu zaharraren hasieratzeak eragindako nahasmena saihestea da. Sare-ingurune konplexu batean, datu-paketeen transmisioa ez da beti helmugako ostalarira bidaltzen zehaztutako denboraren arabera, eta datu-pakete zaharrak lehenago irits daitezke helmugako ostalarira sareko pilaketak eta beste arrazoi batzuk direla eta. Hori saihesteko, TCP-k hiru norabideko esku-ematea erabiltzen du konexioa ezartzeko.
Bezero batek SYN konexio-ezarpen pakete ugari bata bestearen atzetik bidaltzen dituenean, sareko pilaketak bezalako egoeretan, honako hauek gerta daitezke:
1- SYN pakete zaharrak azken SYN paketeak baino lehen iristen dira zerbitzarira.
2- Zerbitzariak SYN + ACK pakete bat erantzungo dio bezeroari SYN pakete zaharra jaso ondoren.
3- Bezeroak SYN + ACK paketea jasotzen duenean, konexioa konexio historikoa dela zehazten du (sekuentzia zenbakia iraungita edo denbora-muga gaindituta) bere testuinguruaren arabera, eta ondoren RST paketea bidaltzen dio zerbitzariari konexioa eteteko.
Bi esku-emate bidezko konexio batekin, ez dago modurik uneko konexioa konexio historikoa den zehazteko. Hiru norabideko esku-emateari esker, bezeroak uneko konexioa konexio historikoa den zehazten du testuinguruaren arabera, hirugarren paketea bidaltzeko prest dagoenean:
1- Konexio historikoa bada (sekuentzia-zenbakia iraungi edo denbora-muga gainditu da), hirugarren esku-ematearen bidez bidalitako paketea konexio historikoa eteteko RST pakete bat da.
2- Konexio historikoa ez bada, hirugarren aldiz bidalitako paketea ACK pakete bat da, eta bi komunikatzaileek konexioa arrakastaz ezartzen dute.
Beraz, TCP-k hiru norabideko esku-ematea erabiltzearen arrazoi nagusia da konexio historikoak saihesteko konexioa hasieratzen duela.
2. arrazoia: Bi alderdien hasierako sekuentzia-zenbakiak sinkronizatzea
TCP protokoloaren bi aldeek sekuentzia-zenbaki bat mantendu behar dute, eta hori funtsezko faktorea da transmisio fidagarria bermatzeko. Sekuentzia-zenbakiek zeregin garrantzitsua dute TCP konexioetan. Honako hau egiten dute:
Hartzaileak datu bikoiztuak ezabatu eta datuen zehaztasuna bermatu dezake.
Hartzaileak paketeak sekuentzia-zenbakiaren ordenan jaso ditzake datuen osotasuna bermatzeko.
● Sekuentzia-zenbakiak beste alderdiak jaso duen datu-paketea identifikatu dezake, datuen transmisio fidagarria ahalbidetuz.
Beraz, TCP konexio bat ezartzean, bezeroak hasierako sekuentzia-zenbakia duten SYN paketeak bidaltzen ditu eta zerbitzariari ACK pakete batekin erantzutea eskatzen dio, bezeroaren SYN paketea behar bezala jaso dela adieraziz. Ondoren, zerbitzariak hasierako sekuentzia-zenbakia duen SYN paketea bidaltzen dio bezeroari eta bezeroak behin betiko erantzun arte itxaroten du, hasierako sekuentzia-zenbakiak modu fidagarrian sinkronizatuta daudela ziurtatzeko.
Lau norabideko esku-ematea ere posible bada ere bi alderdien hasierako sekuentzia-zenbakiak modu fidagarrian sinkronizatzeko, bigarren eta hirugarren urratsak urrats bakarrean konbina daitezke, eta ondorioz, hiru norabideko esku-ematea lortu. Hala ere, bi esku-emateek alderdi baten hasierako sekuentzia-zenbakia beste alderdiak behar bezala jasotzen duela berma dezakete soilik, baina ez dago bi alderdien hasierako sekuentzia-zenbakia berretsi daitekeenik bermatzerik. Beraz, hiru norabideko esku-ematea da aukerarik onena TCP konexioen egonkortasuna eta fidagarritasuna bermatzeko.
3. arrazoia: Saihestu baliabideak xahutzea
"Bi esku-emate" bat bakarrik badago, bezeroaren SYN eskaera sarean blokeatuta dagoenean, bezeroak ezin izango du zerbitzariak bidalitako ACK paketea jaso, beraz, SYN berriro bidaliko da. Hala ere, hirugarren esku-ematerik ez dagoenez, zerbitzariak ezin izango du zehaztu bezeroak ACK baieztapena jaso duen konexioa ezartzeko. Beraz, zerbitzariak proaktiboki soilik ezarri dezake konexioa SYN eskaera bakoitza jaso ondoren. Horrek honako hau dakar:
Baliabideen xahuketa: Bezeroaren SYN eskaera blokeatzen bada, eta ondorioz hainbat SYN pakete errepikatu transmititzen badira, zerbitzariak hainbat konexio baliogabe erredundante ezarriko ditu eskaera jaso ondoren. Horrek zerbitzariaren baliabideen xahuketa beharrezkoa dakar.
Mezuen atxikipena: Hirugarren esku-emate baten faltagatik, zerbitzariak ez du modurik jakiteko bezeroak ACK baieztapena behar bezala jaso duen konexioa ezartzeko. Ondorioz, mezuak sarean trabatuta geratzen badira, bezeroak SYN eskaerak behin eta berriz bidaltzen jarraituko du, zerbitzariak etengabe konexio berriak ezartzera behartuz. Horrek sareko pilaketak eta atzerapenak handituko ditu eta sarearen errendimendu orokorrari eragingo dio negatiboki.
Beraz, sare-konexioaren egonkortasuna eta fidagarritasuna bermatzeko, TCP-k hiru norabideko esku-ematea erabiltzen du konexioa ezartzeko eta arazo hauek gerta ez daitezen.
Laburpena
TheSareko Paketeen BrokerraTCP konexioaren ezarpena hiru norabideko esku-emate batekin egiten da. Hiru norabideko esku-ematean, bezeroak lehenik SYN bandera duen pakete bat bidaltzen dio zerbitzariari, konexioa ezarri nahi duela adieraziz. Bezeroaren eskaera jaso ondoren, zerbitzariak SYN eta ACK banderak dituen pakete bat erantzuten dio bezeroari, konexio eskaera onartu dela adieraziz, eta bere hasierako sekuentzia zenbakia bidaltzen du. Azkenik, bezeroak ACK bandera batekin erantzuten dio zerbitzariari konexioa behar bezala ezarri dela adierazteko. Horrela, bi aldeak EZARRI egoeran daude eta datuak elkarri bidaltzen has daitezke.
Oro har, TCP konexioa ezartzeko hiru norabideko esku-emate prozesua konexioaren egonkortasuna eta fidagarritasuna bermatzeko, konexio historikoetan nahasmena eta baliabideen xahuketa saihesteko eta bi aldeek datuak jaso eta bidali ahal izatea ziurtatzeko diseinatuta dago.
Argitaratze data: 2025eko urtarrilaren 8a