Sazkirina Girêdana TCP
Dema ku em li ser înternetê digerin, e-nameyek dişînin, an lîstikek serhêl dilîzin, em pir caran li ser girêdana torê ya tevlihev a li pişt wê nafikirin. Lêbelê, ev gavên ku xuya dikin piçûk in ku danûstendinek domdar di navbera me û serverê de misoger dikin. Yek ji gavên herî girîng sazkirina girêdana TCP ye, û bingeha vê yekê desthevdana sê-alî ye.
Ev gotar dê bi hûrgilî li ser prensîb, pêvajo û girîngiya destdayîna sê-alî nîqaş bike. Gav bi gav, em ê rave bikin ka çima destdayîna sê-alî pêwîst e, ew çawa aramiya û pêbaweriya pêwendiyê misoger dike, û ew çiqas ji bo veguhastina daneyan girîng e. Bi têgihîştinek kûrtir a destdayîna sê-alî, em ê têgihîştinek çêtir a mekanîzmayên bingehîn ên ragihandina torê û dîtinek zelaltir a pêbaweriya girêdanên TCP bi dest bixin.
Pêvajoya Handshake ya sê-alî ya TCP û Veguherînên Dewletê
TCP protokoleke veguhastinê ya girêdayî girêdanê ye, ku berî veguhestina daneyan avakirina girêdanê hewce dike. Ev pêvajoya avakirina girêdanê bi desthejandina sê-alî tê kirin.
Werin em li pakêtên TCP-ê yên ku di her girêdanê de têne şandin ji nêz ve binêrin.
Di destpêkê de, hem xerîdar û hem jî server GIRTÎ ne. Pêşî, server bi awayekî çalak li ser portekê guhdarî dike û di rewşa LISTEN de ye, ku tê vê wateyê ku divê server were destpêkirin. Piştre, xerîdar amade ye ku dest bi gihîştina rûpela webê bike. Pêdivî ye ku ew bi serverê re pêwendiyek saz bike. Formata pakêta girêdana yekem wiha ye:
Dema ku xerîdar pêwendiyekê dest pê dike, ew hejmareke rêza destpêkê ya rasthatî (client_isn) çêdike û wê di qada "Hejmara rêzê" ya sernivîsa TCP de datîne. Di heman demê de, xerîdar pozîsyona ala SYN li ser 1 datîne da ku nîşan bide ku pakêta derketî pakêtek SYN e. Xerîdar nîşan dide ku ew dixwaze bi şandina pakêta SYN ya yekem ji serverê re pêwendiyek bi serverê re saz bike. Ev pakêt daneyên qata serîlêdanê (ango, daneyên şandî) nagire nav xwe. Di vê gavê de, rewşa xerîdar wekî SYN-SENT tê nîşankirin.
Dema ku serverek pakêtek SYN ji xerîdarek werdigire, ew bi awayekî rasthatî hejmara xwe ya rêzê (server_isn) dest pê dike û dûv re wê hejmarê di qada "Hejmara rêzê" ya sernavê TCP de datîne. Piştre, server client_isn + 1 di qada "Hejmara pejirandinê" de dinivîse û hem bitên SYN û hem jî ACK li ser 1 datîne. Di dawiyê de, server pakêtê dişîne xerîdar, ku tê de tu daneyên qata serîlêdanê tune ne (û tu daneyên ku server bişîne tune ne). Di vê demê de, server di rewşa SYN-RCVD de ye.
Dema ku xerîdar pakêtê ji serverê werdigire, ew hewce dike ku van çêtirkirinan bike da ku bersiva pakêta bersiva dawîn bide: Pêşîn, xerîdar bita ACK ya sernavê TCP ya pakêta bersivê li ser 1 destnîşan dike; Ya duyemîn, xerîdar nirxa server_isn + 1 di zeviya "Hejmara bersivê piştrast bike" de dinivîse; Di dawiyê de, xerîdar pakêtê dişîne serverê. Ev pakêt dikare daneyan ji xerîdar bigihîne serverê. Piştî qedandina van operasyonan, xerîdar dê bikeve rewşa ESTABLISHED.
Dema ku server pakêta bersivê ji xerîdar werdigire, ew jî derbasî rewşa ESTABLISHED dibe.
Wekî ku hûn ji pêvajoya jorîn dibînin, dema ku destlêdana sê-alî tê kirin, destûr tê dayîn ku destlêdana sêyemîn daneyan hilgire, lê du destlêdanên pêşîn nayên qebûlkirin. Ev pirsek e ku pir caran di hevpeyvînan de tê pirsîn. Dema ku destlêdana sê-alî qediya, her du alî dikevin rewşa ESTABLISHED, ku nîşan dide ku girêdan bi serkeftî hatiye sazkirin, di vê gavê de xerîdar û server dikarin dest bi şandina daneyan ji hev re bikin.
Çima sê destdan? Ne du caran, çar caran?
Bersiva hevpar ev e, "Ji ber ku desthevdana sêalî şiyana wergirtin û şandinê garantî dike." Ev bersiv rast e, lê ew tenê sedema rûberî ye, sedema sereke dernaxe pêş. Li jêr, ez ê sedemên desthevdana sêalî ji sê aliyan ve analîz bikim da ku têgihîştina me ya vê mijarê kûrtir bikim.
Desthevdana sê-alî dikare bi bandor pêşî li destpêkirina girêdanên dîrokî yên dubarekirî bigire (sedema sereke)
Desthevdana sê-alî garantî dike ku her du alî jî hejmareke rêza destpêkê ya pêbawer wergirtine.
Desthevdana sê-alî rê li ber îsrafa çavkaniyan digire.
Sedem 1: Ji Tevlîbûnên Dubare yên Dîrokî dûr bisekinin
Bi kurtasî, sedema sereke ya desthevdana sê-alî ew e ku ji tevliheviya ku ji ber destpêkirina girêdana dubare ya kevin çêdibe dûr bikeve. Di hawîrdorek torê ya tevlihev de, şandina pakêtên daneyan her gav li gorî dema diyarkirî ji mêvandarê armanc re nayê şandin, û pakêtên daneyên kevin dikarin ji ber qerebalixiya torê û sedemên din pêşî bigihîjin mêvandarê armanc. Ji bo pêşîgirtina li vê yekê, TCP desthevdana sê-alî bikar tîne da ku pêwendiyê saz bike.
Dema ku xerîdarek çend pakêtên avakirina girêdana SYN li pey hev dişîne, di rewşên wekî qerebalixiya torê de, dibe ku ev çêbibin:
1- Pakêtên SYN yên kevin berî pakêtên SYN yên herî dawî digihîjin serverê.
2- Server piştî wergirtina pakêta SYN ya kevin dê pakêtek SYN + ACK ji xerîdar re bişîne.
3- Dema ku xerîdar pakêta SYN + ACK werdigire, ew li gorî çarçoveya xwe diyar dike ku girêdan girêdanek dîrokî ye (hejmara rêzê qediya ye an jî dem derbas bûye), û dûv re pakêta RST dişîne serverê da ku girêdanê betal bike.
Bi girêdana du-desthevdanê, rêyek tune ku were destnîşankirin ka girêdana heyî girêdanek dîrokî ye an na. Desthevdana sê-alî dihêle ku xerîdar dema ku amade be ku pakêta sêyemîn bişîne, li gorî çarçoveyê diyar bike ka girêdana heyî girêdanek dîrokî ye an na:
1- Eger girêdanek dîrokî be (hejmara rêzê qediyaye an jî dem derbas bûye), pakêta ku bi desthevdana sêyemîn ve tê şandin pakêtek RST ye ji bo betalkirina girêdana dîrokî.
٢- Eger pêwendiyeke dîrokî nebe, pakêta ku cara sêyem tê şandin pakêtek ACK e, û her du alîyên ku têkilî datînin bi serkeftî pêwendiyê saz dikin.
Ji ber vê yekê, sedema sereke ku TCP destgirtina sê-alî bikar tîne ev e ku ew pêwendiyê dest pê dike da ku pêşî li girêdanên dîrokî bigire.
Sedem 2: Ji bo hevrêzkirina hejmarên rêza destpêkê yên her du aliyan
Divê her du aliyên protokola TCP-ê hejmarek rêzê biparêzin, ku ev faktorek sereke ye ji bo misogerkirina veguhestina pêbawer. Hejmarên rêzê di girêdanên TCP-ê de roleke girîng dilîzin. Ew jêrîn dikin:
Wergir dikare daneyên dubare ji holê rake û rastbûna daneyan misoger bike.
Wergir dikare pakêtan li gorî rêza hejmarên rêzê werbigire da ku yekparçeyiya daneyan misoger bike.
● Hejmara rêzê dikare pakêta daneyan a ku ji hêla aliyê din ve hatiye wergirtin nas bike, û veguhestina daneyan a pêbawer gengaz bike.
Ji ber vê yekê, dema ku pêwendiyek TCP-ê ava dibe, xerîdar pakêtên SYN-ê bi jimareya rêza destpêkê dişîne û ji serverê dixwaze ku bi pakêtek ACK-ê bersiv bide ku wergirtina serketî ya pakêta SYN-ê ya xerîdar nîşan dide. Dûv re, server pakêta SYN-ê bi jimareya rêza destpêkê ji xerîdar re dişîne û li benda bersiva xerîdar e, carekê û her û her, da ku piştrast bike ku jimareyên rêza destpêkê bi pêbawerî hatine senkronîzekirin.
Her çend destdanîna çar-alî jî mimkun e ku hejmarên rêza destpêkê yên her du aliyan bi awayekî pêbawer hevrêz bike, gavên duyemîn û sêyemîn dikarin di gavekê de werin hevgirtin, ku di encamê de destdanîna sê-alî çêdibe. Lêbelê, her du destdanîn tenê dikarin garantî bikin ku hejmara rêza destpêkê ya yek alî ji hêla aliyê din ve bi serkeftî tê wergirtin, lê garantî tune ku hejmara rêza destpêkê ya her du aliyan dikare were piştrast kirin. Ji ber vê yekê, destdanîna sê-alî hilbijartina çêtirîn e ku meriv bigire da ku aramî û pêbaweriya girêdanên TCP-ê misoger bike.
Sedem 3: Ji Îsrafa Çavkaniyan dûr bisekinin
Eger tenê "du-destdan" hebe, dema ku daxwaza SYN ya xerîdar di torê de were astengkirin, xerîdar nikare pakêta ACK ya ji hêla serverê ve hatî şandin werbigire, ji ber vê yekê SYN dê ji nû ve were şandin. Lêbelê, ji ber ku destdanîna sêyemîn tune ye, server nikare diyar bike ka xerîdar pejirandina ACK wergirtiye da ku pêwendiyê saz bike. Ji ber vê yekê, server tenê dikare piştî wergirtina her daxwaza SYN bi awayekî proaktîf pêwendiyek saz bike. Ev dibe sedema jêrîn:
Îsrafa çavkaniyan: Ger daxwaza SYN ya xerîdar were astengkirin, û di encamê de gelek pakêtên SYN werin veguhestin, server dê piştî wergirtina daxwazê gelek girêdanên nederbasdar ên zêde saz bike. Ev dibe sedema îsrafa nehewce ya çavkaniyên serverê.
Ragirtina Peyamê: Ji ber nebûna desthevdana sêyemîn, server nikare bizanibe ka xerîdar bi rastî pejirandina ACK wergirtiye da ku pêwendiyê saz bike. Di encamê de, heke peyam di torê de asê bimînin, xerîdar dê daxwazên SYN-ê dîsa û dîsa bişîne, û bibe sedema ku server bi berdewamî pêwendiyên nû saz bike. Ev ê qerebalixiya torê û derengketinê zêde bike û bandorek neyînî li ser performansa giştî ya torê bike.
Ji ber vê yekê, ji bo misogerkirina aramî û pêbaweriya girêdana torê, TCP destdana sê-alî bikar tîne da ku pêwendiyê saz bike da ku ji çêbûna van pirsgirêkan dûr bikeve.
Berhevkirinî
EwBrokerê Pakêtên TorêGirêdana TCP bi desthevdana sêalî tê sazkirin. Di dema desthevdana sêalî de, xerîdar pêşî pakêtek bi ala SYN dişîne serverê, ku nîşan dide ku ew dixwaze pêwendiyek saz bike. Piştî wergirtina daxwazê ji xerîdar, server pakêtek bi ala SYN û ACK dişîne xerîdar, ku nîşan dide ku daxwaza pêwendiyê hatiye qebûlkirin, û hejmara rêza xwe ya destpêkê dişîne. Di dawiyê de, xerîdar bi ala ACK bersivê dide serverê da ku nîşan bide ku pêwendi bi serkeftî hatiye sazkirin. Bi vî awayî, her du alî di rewşa ESTABLISHED de ne û dikarin dest bi şandina daneyan ji hev re bikin.
Bi gelemperî, pêvajoya sê-alî ya destgirtinê ji bo avakirina girêdana TCP-ê ji bo misogerkirina aramiya û pêbaweriya girêdanê, dûrketina ji tevlihevî û îsrafa çavkaniyan li ser girêdanên dîrokî, û misogerkirina ku her du alî jî dikarin daneyan werbigirin û bişînin hatiye sêwirandin.
Dema şandinê: Çile-08-2025