TCP konexioaren konfigurazioa
Webean arakatzen dugunean, bidali mezu elektroniko bat edo jolastu lineako joko bat, askotan ez dugu uste atzean geratzen den sare konplexua. Hala ere, itxuraz urrats txikiak dira gure eta zerbitzariaren arteko komunikazio egonkorra bermatzen dutenak. Urrats garrantzitsuenetako bat TCP konexioaren konfigurazioa da, eta honen muina hiru norabideko eskuko eskukoa da.
Artikulu honetan hiru norabideko eskuaren printzipioa, prozesua eta garrantzia zehatz-mehatz aztertuko da. Urratsez urrats, azalduko dugu zergatik behar den hiru eskuko eskuko eskuko eskuaren egonkortasuna eta fidagarritasuna nola bermatzen duen, eta zein garrantzitsua den datuen transferentziarako. Hiru noranzkoko eskuaren ulermen sakonago batekin, sareko komunikazioaren azpiko mekanismoak hobeto ulertuko ditugu eta TCP konexioen fidagarritasunaren ikuspegi argiagoa lortuko dugu.
TCP hiru norabideko esku-prozesua eta estatuko trantsizioak
TCP konexio bideratutako garraio protokoloa da, eta horrek konexio establezimendua behar du datuen transmisioaren aurretik. Konexio-establezimendu prozesu hau hiru noranzkoko eskuko eskuarekin egiten da.
Ikus dezagun lotura bakoitzean bidalitako TCP paketeei.
Hasieran, bezeroak eta zerbitzaria itxita daude. Lehenik eta behin, zerbitzariak aktiboki entzuten du portu batean eta entzuten den egoeran dago eta horrek esan nahi du zerbitzaria abiarazi behar dela. Ondoren, bezeroa web orria sartzen hasteko prest dago. Zerbitzariarekin konexio bat ezarri behar da. Lehenengo konexio paketearen formatua honako hau da:
Bezero batek konexio bat hasten duenean, ausazko hasierako sekuentzia zenbakia (bezero_isn) sortzen du eta TCP goiburuko "sekuentzia zenbakia" da. Aldi berean, bezeroak sin Ferronaren posizioa 1-ra ezartzen du irteerako paketea syn pakete bat dela adierazteko. Bezeroak adierazten du zerbitzariarekin lotura bat ezarri nahi duela lehen Sink paketea zerbitzariari bidalita. Pakete honek ez du aplikazio geruzaren datuak (hau da, bidalitako datuak). Puntu honetan, bezeroaren egoera sinkronizazio gisa markatuta dago.
Zerbitzari batek bezero baten syn pakete bat jasotzen duenean, ausaz hasiko da serieko zenbakia (Server_isn) eta, ondoren, zenbaki hori TCP goiburuaren "serie zenbakia" jartzen du. Ondoren, zerbitzaria bezeroaren_isn + 1-tan sartzen da "Aitortzeko zenbakia" eremuan eta bai single eta akk bi bitak ezartzen ditu. Azkenean, zerbitzariak paketeak bezeroari bidaltzen dizkio, ez dauka aplikazio-geruzarik gabeko datuak (eta zerbitzariak ez ditu zerbitzaririk bidali). Une honetan, zerbitzaria Syn-RCVD estatuan dago.
Bezeroak zerbitzariaren paketea jaso ondoren, azken erantzun paketeari erantzuteko optimizazio hauek egin behar ditu: Lehenik eta behin, bezeroak erantzun paketearen TCP goiburuko ACK apur bat ezartzen du 1; Bigarrena, bezeroak balioa zerbitzari_sn_isn + 1 sartzen du "Berretsi Erantzun zenbakia" eremuan; Azkenean, bezeroak paketea zerbitzarira bidaltzen du. Pakete honek bezeroaren datuak zerbitzarira eraman ditzake. Eragiketa horiek amaitu ondoren, bezeroak ezarritako egoeran sartuko da.
Zerbitzariak bezeroaren erantzun paketea jasotzen duenean, ezarritako egoerara ere aldatzen da.
Goiko prozesutik ikus daitekeenez, hiru norabideko eskuko eskuan egitean, hirugarren eskuko eskuko datuak eramateko baimena da, baina lehen bi eskuak ez dira. Elkarrizketetan maiz egiten den galdera da. Hiru norabideko eskua osatuta dagoenean, bi alderdiek ezarritako egoeran sartzen dira, konexioa behar bezala ezarri dela adieraziz, zein puntuan bezeroak eta zerbitzariak datuak bidaltzen has daitezkeenean.
Zergatik hiru eskuko eskuak? Ez bi aldiz, lau aldiz?
Erantzun arrunta da ", hiru norabideko eskuak jasotzeko eta bidaltzeko gaitasuna bermatzen duelako". Erantzun hau zuzena da, baina gainazaleko arrazoia baino ez da, ez du arrazoi nagusia aurkezten. Hurrengo honetan, hiru alderdietatik hiru alderdietatik hiru alderdiren arrazoiak aztertuko ditut gai hau ulertzeko.
Hiru eskuko eskuko eskukoak modu eraginkorrean saihestu ditzake historikoki errepikatutako konexioen hasieratzea (arrazoi nagusia)
Hiru norabideko eskuko eskuak bermatzen ditu bi alderdiek hasierako sekuentzia fidagarria jaso dutela.
Hiru eskuko eskuko eskuak baliabideak alferrik galtzen ditu.
1. arrazoia: saihestu bikoiztasun historikoak
Hitz batean, hiru norabideko eskuaren arrazoia da konexioaren hasierako hasieratzeak eragindako nahasmena ekiditea. Sarearen ingurune konplexuan, datu-paketeen transmisioa ez da beti helmugako ostalariari bidaltzen zehaztutako denboraren arabera, eta datu pakete zaharrak helmugako ostalarian iritsi daitezke lehenik eta behin sarearen pilaketa eta bestelako arrazoiak direla eta. Hori ekiditeko, TCPk hiru norabideko eskuko esku bat erabiltzen du konexioa ezartzeko.
Bezero batek syn konexio-establezimendu pakete ugari bidaltzen dituenean, sareko pilaketa bezalako egoeretan, honako hauek gerta daitezke:
1- Sink pakete zaharrak zerbitzarira iristen dira azken syn paketeak baino lehen.
2- Zerbitzariak bezeroari + ACK pakete bat erantzungo dio bezeroari Sink pakete zaharra jaso ondoren.
3- Bezeroak Syn + ACK paketea jasotzen duenean, konexioa konexio historikoa da (sekuentzia zenbakia iraungita edo iraupena) bere testuinguru propioaren arabera, eta ondoren RST paketea zerbitzarira bidaltzen du konexioa bertan behera uzteko.
Bi eskuko konexioarekin, ez dago uneko konexioa konexio historikoa den jakiteko modurik. Hiru noranzkoko eskuko eskuari esker, bezeroari egungo konexioa testuinguruan oinarritutako konexio historikoa den ala ez zehazteko aukera ematen du: hirugarren paketea bidaltzeko prest dagoenean:
1- Konexio historikoa bada (sekuentzia kopurua iraungita edo iraupena) bada, hirugarren esku-estutzeak bidalitako paketea konexio historikoa bertan behera uzteko.
2- Konexio historikoa ez bada, hirugarren aldiz bidalitako paketea ACK pakete bat da, eta bi alderdi komunikatuek konexioa behar bezala finkatzen dute.
Hori dela eta, TCPk hiru norabideko eskua erabiltzen duen arrazoi nagusia da konexioa konexio historikoak ekiditeko.
2. arrazoia: bi aldeen hasierako sekuentzia zenbakiak sinkronizatzea
TCP protokoloaren bi aldeek sekuentzia zenbaki bat mantendu behar dute, hau da, funtsezko faktorea da transmisio fidagarria bermatzeko. Sekuentzia-zenbakiek rol garrantzitsua dute TCP konexioetan. Egin hau:
Hartzaileak datu bikoiztuak ezabatu ditzake eta datuen zehaztasuna ziurtatu dezake.
Hartzaileak paketeak jaso ditzake sekuentzia zenbakiaren ordenan, datuen osotasuna bermatzeko.
● Sekuentzia zenbakiak beste alderdiak jaso dituen datu paketeak identifikatu ditzake, datuen transmisio fidagarria ahalbidetuz.
Hori dela eta, TCP konexio bat ezartzerakoan, bezeroak hasierako sekuentzia zenbakiarekin bidaltzen ditu Syn paketeak eta zerbitzariak Bezeroaren Syn Packet-en harrera arrakastatsua adierazten duen ACK pakete batekin erantzutea eskatzen du. Ondoren, zerbitzariak hasierako sekuentzia zenbakiarekin bidaltzen du bezeroari eta bezeroari itxaroten dio bezeroari behin eta berriz, hasierako sekuentzia zenbakiak modu fidagarrian sinkronizatu direla ziurtatzeko.
Lau norabideko eskuko eskuko bi alderdien hasierako sekuentzia zenbakiak modu fidagarrian sinkronizatzeko aukera izan arren, bigarren eta hirugarren urratsak urrats bakarrean konbinatu daitezke, eta hiru norabideko eskuko eskuko eskua izan daiteke. Hala ere, bi eskalek bakarrik bermatu dezakete festa bateko hasierako sekuentzia kopurua beste alderdiak arrakastaz jasotzen duela, baina ez dago bermerik bi alderdien hasierako sekuentzia kopurua baieztatu daitekeenik. Hori dela eta, hiru noranzkoko eskuko eskuko aukerarik onena da TCP konexioen egonkortasuna eta fidagarritasuna bermatzeko.
3. arrazoia: saihestu baliabideak alferrik galtzea
"Bi eskuko eskuko" bada bakarrik, bezeroaren Syn eskaera sarean blokeatuta badago, bezeroak ezin du zerbitzariak bidalitako ACK paketea jaso, beraz sinkroniak berriro bidaliko du. Hala ere, hirugarren eskukorik ez dagoenez, zerbitzariak ezin du zehaztu bezeroak ACK aitorpena jaso duen konexioa ezartzeko. Hori dela eta, zerbitzariak konexio bat modu aktiboan ezarri dezake Syn eskaera bakoitza jaso ondoren. Honek honako hau da:
Baliabideak galtzea: Bezeroaren Syn eskaera blokeatuta badago, syn pakete anitzen transmisio errepikatua bada, zerbitzariak eskaera jaso ondoren konexio baliogabeak ezarriko ditu. Horrek zerbitzari baliabideak alferrikako alferrik galtzen ditu.
Mezuen atxikipena: hirugarren eskuko eskua ez izateagatik, zerbitzariak ez du inolako jakinarazpenik bezeroak behar bezala jaso duen ACK aitorpena konexioa ezartzeko. Ondorioz, mezuak sarean itsatsita badaude, bezeroak berriro ere onartzen ditu Syn Syn-ek behin eta berriz bidaltzeko, zerbitzariak konexio berriak etengabe ezartzeko eraginez. Horrek sareko pilaketa eta atzerapena areagotuko du eta sareko errendimendu orokorrean eragin negatiboa da.
Hori dela eta, sareko konexioaren egonkortasuna eta fidagarritasuna ziurtatzeko, TCP-k hiru noranzkoko eskuko eskuari erabiltzen dio arazo horien agerraldia ekiditeko konexioa ezartzeko.
Laburpen
-ASareko Pakete BrokerTCP konexioaren establezimendua hiru noranzkoko eskuarekin egiten da. Hiru norabideko eskuan zehar, bezeroak pakete bat bidaltzen du Syn banderarekin zerbitzarira, konexio bat ezarri nahi duela adieraziz. Bezeroaren eskaera jaso ondoren, zerbitzariak pakete bat erantzun du bezeroari sindikazioekin eta ACK banderak bezeroari, konexio eskaera onartzen dela eta hasierako sekuentzia zenbakia bidaltzen duela adieraziz. Azkenean, bezeroak ACK bandera batekin erantzun du zerbitzariari, konexioa behar bezala ezarri dela adierazteko. Horrela, bi alderdiak ezarritako egoeran daude eta datuak bidaltzen has daitezke.
Oro har, TCP konexioaren establezimenduaren hiru norabideko esku-prozesua konexioaren egonkortasuna eta fidagarritasuna bermatzeko diseinatuta dago, baliabideak nahastea eta hondakinak saihesteko konexio historikoen gainean, eta bi alderdiek datuak jaso eta bidaltzeko gai direla ziurtatzeko.
Posta: 20120ko urtarrilak-08