Tor Paket Brokeri TCP Aragatnaşyklarynyň Esasy Syrlary: Üçlü El Berişiň Zerurlygyny Açyklady

TCP birikmesini gurnamak
Webde göz aýlanymyzda, e-poçta iberenimizde ýa-da onlaýn oýun oýnanymyzda, köplenç onuň arkasyndaky çylşyrymly tor baglanyşygy barada pikir etmeýäris. Şeýle-de bolsa, hut şu kiçi ädimler biziň we serweriň arasynda durnukly aragatnaşygy üpjün edýär. Iň möhüm ädimleriň biri TCP baglanyşygyny gurnamakdyr we munuň esasy üç taraplaýyn el gysyşmakdyr.

Bu makalada üç taraplaýyn el gysyşmagyň prinsipi, prosesi we ähmiýeti jikme-jik ara alnyp maslahatlaşylar. Üç taraplaýyn el gysyşmagyň näme üçin zerurdygyny, baglanyşygyň durnuklylygyny we ygtybarlylygyny nähili üpjün edýändigini we maglumat geçirijiligi üçin nähili möhümdigini ädimme-ädim düşündireris. Üç taraplaýyn el gysyşmagyň has çuňňur düşünilmegi bilen, biz tor aragatnaşygynyň esasy mehanizmlerini has gowy düşüneris we TCP birikmeleriniň ygtybarlylygy barada has aýdyň düşünje alarys.

TCP üç taraplaýyn el alyşma prosesi we ýagdaý geçişleri
TCP maglumat ibermezden öň baglanyşygyň döredilmegini talap edýän baglanyşyk ugurly transport protokolydyr. Bu baglanyşygyň döredilmegi üç taraplaýyn el gysyşmak arkaly amala aşyrylýar.

 TCP üç taraplaýyn el gysyşma

Geliň, her bir baglanyşykda iberilýän TCP paketlerine has ýakyndan göz aýlalyň.

Ilki bilen, klient hem, serwer hem ÝAPYK bolýar. Ilki bilen, serwer portda işjeň diňleýär we DIŇLEME ýagdaýynda bolýar, bu bolsa serweriň işe girizilmelidigini aňladýar. Soňra, klient web sahypasyna girmäge taýýar bolýar. Serwer bilen baglanyşyk gurmaly. Birinji baglanyşyk paketiniň formaty aşakdaky ýaly:

 SYN Paketi

Klient birikme başlanda, ol tötänleýin başlangyç yzygiderlik nomerini (client_isn) döredýär we ony TCP başlygynyň "Yzygiderlik nomeri" meýdanyna ýerleşdirýär. Şol bir wagtyň özünde, klient çykyş paketiniň SYN paketidigini görkezmek üçin SYN baýdagynyň ornuny 1-e goýýar. Klient serwere ilkinji SYN paketini ibermek arkaly serwer bilen baglanyşyk gurmak isleýändigini görkezýär. Bu paketde programma gatlagynyň maglumatlary (ýagny iberilýän maglumatlar) ýok. Bu nokada klientiň ýagdaýy SYN-SENT diýlip bellenýär.

SYN+ACK Paketi

Serwer klientden SYN paketini alanda, tötänleýin öz seriýa nomerini (server_isn) başlangyç edýär we soňra şol nomeri TCP başlygynyň "Serial nomer" meýdanyna goýýar. Soňra serwer "Acknowledgement number" meýdanyna client_isn + 1 girizýär we SYN we ACK bitleriniň ikisini hem 1-e sazlaýar. Ahyrsoňy, serwer paketi kliente iberýär, onda hiç hili programma gatlagy maglumatlary (we serweriň ibermeli maglumatlary) ýok. Häzirki wagtda serwer SYN-RCVD ýagdaýynda bolýar.

ACK Paketi

Klient serwerden paketi alandan soň, soňky jogap paketine jogap bermek üçin aşakdaky optimizasiýalary ýerine ýetirmelidir: Birinjiden, klient jogap paketiniň TCP başlygynyň ACK bitini 1-e sazlaýar; Ikinjiden, klient "Jogap nomerini tassykla" meýdanyna server_isn + 1 gymmatyny girizýär; Ahyrsoňy, klient paketi serwere iberýär. Bu paket klientden serwere maglumatlary alyp bilýär. Bu amallar tamamlanandan soň, klient ESTABLISHED ýagdaýyna girer.

Serwer klientden jogap paketini alandan soň, ol hem ESTABLISHED ýagdaýyna geçýär.

Ýokardaky prosesden görşüňiz ýaly, üç taraplaýyn el gysyşma amala aşyrylanda, üçünji el gysyşma maglumat daşamaga rugsat berilýär, ýöne ilkinji iki el gysyşma rugsat berilmeýär. Bu sorag interwýularda köplenç soralýar. Üç taraplaýyn el gysyşma tamamlanandan soň, iki tarap hem ESTABLISHED ýagdaýyna girýär, bu bolsa baglanyşygyň üstünlikli ýola goýlandygyny görkezýär, şonda klient we serwer biri-birine maglumat iberip başlap bilerler.

Näme üçin üç gezek el gysyşmaly? Iki gezek däl, dört gezek?
Umumy jogap: "Sebäbi üç taraplaýyn el gysyşmak kabul etmek we ibermek mümkinçiligini kepillendirýär". Bu jogap dogry, ýöne ol diňe daşky sebäp bolup, esasy sebäbi öňe sürmeýär. Aşakda bu meseläni çuňňur düşünmek üçin üç gezek el gysyşmagyň sebäplerini üç tarapdan seljererin.

Üç taraplaýyn el gysyşmak taryhy taýdan gaýtalanýan baglanyşyklaryň başlangyçlaşdyrylmagynyň öňüni alyp biler (esasy sebäp)
Üç taraplaýyn el gysyşmak iki tarapyň hem ygtybarly başlangyç tertip nomerini alandygyny kepillendirýär.
Üç taraplaýyn el gysyşmak serişdeleriň biderek sarp edilmeginiň öňüni alýar.

1-nji sebäp: Taryhy gaýtalanan birleşmelerden gaça duruň
Gysgaça aýdylanda, üç taraplaýyn el gysyşmagyň esasy sebäbi köne gaýtalanýan baglanyşygyň başlangyçlandyrylmagy sebäpli dörän düşünişmezlikleriň öňüni almakdyr. Çylşyrymly tor gurşawynda maglumat paketleriniň geçirilmegi hemişe görkezilen wagta laýyklykda maksatly hosta iberilmeýär we köne maglumat paketleri toruň dykylmagy we başga sebäpler sebäpli ilki maksatly hosta gelip biler. Munuň öňüni almak üçin TCP baglanyşygy döretmek üçin üç taraplaýyn el gysyşmagy ulanýar.

üç taraplaýyn el gysyşmak taryhy gaýtalanýan baglanyşyklaryň öňüni alýar

Klient birnäçe SYN birikmesini gurnamak paketlerini yzygiderli iberende, toruň dykylmagy ýaly ýagdaýlarda aşakdaky ýagdaýlar ýüze çykyp biler:

1- Köne SYN paketleri serwere iň soňky SYN paketlerinden öň gelýär.
2- Serwer köne SYN paketini alandan soň kliente SYN + ACK paketini jogap berer.
3- Klient SYN + ACK paketini alanda, öz kontekstine görä baglanyşygyň taryhy baglanyşygy (yzygiderlik nomeriniň möhleti gutardy ýa-da wagty gutardy) hasaplaýar we soňra baglanyşygy bes etmek üçin RST paketini serwere iberýär.

Iki gezek el gysyşmak arkaly baglanyş bilen, häzirki baglanyşyň taryhy baglanyşykdygyny ýa-da däldigini anyklamagyň hiç hili usuly ýok. Üç taraplaýyn el gysyşmak kliente üçünji paketi ibermäge taýýar bolanda, kontekste esaslanyp, häzirki baglanyşyň taryhy baglanyşykdygyny ýa-da däldigini anyklamaga mümkinçilik berýär:

1- Eger bu taryhy baglanyşyk bolsa (yzygiderlik nomeriniň möhleti gutardy ýa-da wagty gutardy), üçünji el gysyşma arkaly iberilýän paket taryhy baglanyşygy bes etmek üçin RST paketidir.
2- Eger bu taryhy baglanyşyk bolmasa, üçünji gezek iberilen paket ACK paketidir we iki aragatnaşyk edýän tarap baglanyşygy üstünlikli ýola goýýar.

Şonuň üçin, TCP-niň üç taraplaýyn el gysyşmagyny ulanmagynyň esasy sebäbi, taryhy baglanyşyklaryň öňüni almak üçin baglanyşygy başlangyçlaşdyrmagydyr.

2-nji sebäp: Iki tarapyň hem başlangyç tertip nomerlerini sinhronlaşdyrmak
TCP protokolynyň iki tarapy hem ygtybarly iberişi üpjün etmek üçin esasy faktor bolan yzygiderlik nomerini saklamalydyr. Yzygiderlik nomerleri TCP birikmelerinde möhüm rol oýnaýar. Olar aşakdakylary ýerine ýetirýärler:

Alyjy gaýtalanýan maglumatlary aradan aýryp we maglumatlaryň dogrulygyny üpjün edip biler.

Maglumatlaryň bitewüligini üpjün etmek üçin alyjy paketleri tertip nomeriniň tertibinde kabul edip biler.

● Yzygiderlik belgisi beýleki tarap tarapyndan kabul edilen maglumat paketini anyklap, ygtybarly maglumat ibermegi üpjün edip bilýär.

Şonuň üçin, TCP birikmesini gurlanda, klient başlangyç tertip nomeri bilen SYN paketlerini iberýär we serwerden klientiň SYN paketiniň üstünlikli kabul edilendigini görkezýän ACK paketi bilen jogap bermegini talap edýär. Soňra serwer kliente başlangyç tertip nomeri bilen SYN paketini iberýär we başlangyç tertip nomerleriniň ygtybarly sinhronizirlenendigine göz ýetirmek üçin klientiň bir gezek we hemişelik jogap bermegini garaşýar.

Iki tarapyň hem başlangyç seriýa nomerlerini sinhronlaşdyryň

Iki tarapyň başlangyç tertip nomerlerini ygtybarly sinhronlaşdyrmak üçin dört taraply el gysyşmak hem mümkin bolsa-da, ikinji we üçünji ädimleri bir ädime birleşdirip bolýar we netijede üç taraply el gysyşmak bolýar. Şeýle-de bolsa, iki el gysyşmak diňe bir tarapyň başlangyç tertip nomeriniň beýleki tarap tarapyndan üstünlikli kabul edilmegine kepil geçip biler, ýöne iki tarapyň başlangyç tertip nomeriniň tassyklanyp bilinjekdigine kepillik ýok. Şonuň üçin, üç taraply el gysyşmak TCP birikmeleriniň durnuklylygyny we ygtybarlylygyny üpjün etmek üçin iň gowy saýlawdyr.

3-nji sebäp: Serişdeleri biderek harçlamakdan gaça duruň
Eger diňe "iki gezek el gysyşmak" bolsa, müşderiniň SYN talaby torda bloklananda, müşderi serwer tarapyndan iberilen ACK paketini kabul edip bilmeýär, şonuň üçin SYN gaýtadan iberiler. Şeýle-de bolsa, üçünji gezek el gysyşmak ýok bolany üçin, serwer müşderiniň baglanyşygy döretmek üçin ACK tassyklamasyny alyp-almandygyny anyklap bilmeýär. Şonuň üçin serwer her SYN talabyny alandan soň diňe proaktiw usulda baglanyşygy döredip biler. Bu aşakdakylara getirýär:

Resurslaryň ýitgisi: Eger klientiň SYN talaby blokirlense we netijede birnäçe SYN paketleriniň gaýtalanýan geçirilmegine sebäp bolsa, serwer talaby alandan soň birnäçe artykmaç nädogry birikmeleri döreder. Bu bolsa serwer resurslarynyň gereksiz ýitgisine getirýär.

Habaryň saklanmagy: Üçünji el gysyşmasynyň ýoklugy sebäpli, serweriň klientiň baglanyşygy döretmek üçin ACK tassyklamasyny dogry alandygyny ýa-da almadygyny bilmegiň hiç hili usuly ýok. Netijede, habarlar torda galyp galsa, klient SYN talaplaryny gaýta-gaýta ibermegini dowam etdirer, bu bolsa serweriň yzygiderli täze baglanyşyklary döretmegine sebäp bolar. Bu bolsa toruň dykyzlygyny we gijikmegini artdyrar we umumy tor işiniň netijeliligine ýaramaz täsir eder.

Serişdeleri israf etmekden gaça duruň

Şonuň üçin, tor baglanyşygynyň durnuklylygyny we ygtybarlylygyny üpjün etmek maksady bilen, TCP bu meseleleriň ýüze çykmagynyň öňüni almak üçin baglanyşygy döretmek üçin üç taraplaýyn el gysyşmany ulanýar.

Gysgaça mazmun
TheTor Paket BrokeriTCP birikmesini döretmek üç taraplaýyn el gysyşmak arkaly amala aşyrylýar. Üç taraplaýyn el gysyşmak wagtynda klient ilki bilen serwere SYN baýdagy bolan paket iberýär, bu bolsa onuň birikme gurmak isleýändigini görkezýär. Klientden talaby alandan soň, serwer kliente SYN we ACK baýdagy bolan pakete jogap berýär, bu bolsa birikme talabynyň kabul edilendigini görkezýär we öz başlangyç tertip nomerini iberýär. Ahyrsoňy, klient serwere ACK baýdagy bilen jogap berip, birikme üstünlikli gurnalandygyny görkezýär. Şeýlelik bilen, iki tarap ESTABLISHED ýagdaýynda bolýar we biri-birine maglumat ibermäge başlap bilerler.

Umuman, TCP birikmesini döretmek üçin üç taraplaýyn el gysyşmak prosesi birikme durnuklylygyny we ygtybarlylygyny üpjün etmek, taryhy baglanyşyklar boýunça bulaşyklygyň we serişdeleriň ýitgisiniň öňüni almak, şeýle hem iki tarapyň hem maglumatlary alyp we iberip bilmegini üpjün etmek üçin niýetlenendir.


Ýerleşdirilen wagty: 2025-nji ýylyň 8-nji ýanwary