Nepeniyên sereke yên Têkiliyên TCP Brokera Pakêta Tora: Pêdiviya Destê Sê-sêyan jêhatî kirin

Setup Têkiliya TCP
Dema ku em li tevneyê digerin, e-nameyek dişînin, an lîstikek serhêl dilîzin, em bi gelemperî li ser girêdana tevna tevlihev a li pişt wê nafikirin. Lêbelê, ev gavên piçûk ên xuya ne ku pêwendiya domdar di navbera me û serverê de peyda dikin. Yek ji gavên herî girîng sazkirina pêwendiya TCP-ê ye, û bingeha vê yekê destankirina sê-alî ye.

Ev gotar dê prensîb, pêvajo û girîngiya destanên sêalî bi hûrgulî nîqaş bike. Gav bi gav, em ê rave bikin ka çima hejandina sê-alî hewce ye, ew çawa îstîqrar û pêbaweriya pêwendiyê misoger dike, û ew ji bo veguheztina daneyê çiqas girîng e. Bi têgihiştinek kûr a destanên sê-alî, em ê têgihîştinek çêtir a mekanîzmayên bingehîn ên ragihandina torê û nêrînek zelal a pêbaweriya girêdanên TCP-ê bistînin.

Pêvajoya Handshake Sê-Alî TCP û Veguheztinên Dewletê
TCP protokolek veguheztinê ya pêwendiyê ye, ku berî veguheztina daneyê pêdivî bi sazkirina pêwendiyê heye. Ev pêvajoya damezrandina girêdanê bi destanek sê-alî tê kirin.

 TCP sê-alî destan

Ka em hûrgulî li pakêtên TCP yên ku di her pêwendiyê de têne şandin binêrin.

Di destpêkê de, hem xerîdar û hem jî server GIRTÎ ne. Pêşîn, server bi çalak li portek guhdarî dike û di rewşa LISTEN de ye, ku tê vê wateyê ku server divê were destpêkirin. Dûv re, xerîdar amade ye ku dest bi gihîştina malperê bike. Pêdivî ye ku pêwendiyek bi serverê re saz bike. Formata pakêta girêdana yekem wiha ye:

 SYN Pakêt

Dema ku xerîdar têkiliyek dest pê dike, ew jimareyek rêzika destpêkê ya rasthatî (client_isn) çêdike û wê di qada "Hejmara Rêz" ya sernavê TCP de cîh dike. Di heman demê de, xerîdar pozîsyona ala SYN li 1 destnîşan dike da ku destnîşan bike ku pakêta derketî pakêtek SYN e. Xerîdar destnîşan dike ku ew dixwaze bi şandina pakêta SYN ya yekem ji serverê re têkiliyek bi serverê re saz bike. Di vê pakêtê de daneyên qata serîlêdanê (ango daneya şandin) tune. Di vê xalê de, statûya xerîdar wekî SYN-SENT tê nîşankirin.

SYN + ACK Pakêt

Dema ku serverek pakêtek SYN ji xerîdarek distîne, ew bi rasthatinî jimareya rêza xwe (server_isn) dest pê dike û dûv re wê hejmarê dixe qada "Serial number" ya sernavê TCP. Dûv re, server di qada "hejmara pejirandinê" de têkeve client_isn + 1 û her du bitên SYN û ACK destnîşan dike 1. Di dawiyê de, pêşkêşkar pakêtê ji muwekîlê re dişîne, ku tê de tu daneya qatê serîlêdanê (û daneya serverê tune şandin). Di vê demê de, server di rewşa SYN-RCVD de ye.

Pakêta ACK

Dema ku xerîdar pakêtê ji pêşkêşkarê werdigire, pêdivî ye ku ew xweşbîniyên jêrîn pêk bîne da ku bersivê bide pakêta bersivê ya dawî: Pêşîn, xerîdar bit ACK-ê ya sernavê TCP ya pakêta bersivê destnîşan dike 1; Ya duyemîn, xerîdar nirxa server_isn + 1 di qada "Hejmara bersivê piştrast bike" dike; Di dawiyê de, xerîdar pakêtê ji serverê re dişîne. Ev pakêt dikare daneyan ji xerîdar bigire heya serverê. Piştî qedandina van operasyonan, dê xerîdar têkeve dewleta ESTABLISHED.

Gava ku server pakêta bersivê ji xerîdar distîne, ew jî diguhere rewşa ESTABLISHED.

Wekî ku hûn ji pêvajoya jorîn dibînin, dema ku destanek sê-alî tê kirin, destûra sêyem hejandina daneyan heye, lê du destanên pêşîn ne. Ev pirsek e ku pir caran di hevpeyvînan de tê pirsîn. Dema ku destanên sê-alî qediyan, her du alî dikevin rewşa ESTABLISHED, ku nîşan dide ku pêwendiyek bi serfirazî hate saz kirin, di wê demê de xerîdar û server dikarin dest bi şandina daneyan ji hev re bikin.

Çima sê destan? Ne du caran, çar caran?
Bersiva hevpar ev e, "Ji ber ku destankirina sê-alî şiyana wergirtin û şandinê garantî dike." Ev bersiv rast e, lê ew tenê sedema rûkalê ye, sedema sereke dernakeve holê. Li jêrê, ez ê sedemên desthejandina sêalî ji sê aliyan ve analîz bikim da ku têgihiştina me ya vê mijarê kûrtir bikim.

Desthilatdariya sê-alî dikare bi bandor ji destpêkirina girêdanên dubare yên dîrokî dûr bixe (sedema sereke)
Desthilatdariya sê-alî garantî dike ku her du aliyan jimareyek rêza destpêkê ya pêbawer wergirtine.
Desthilatdariya sê alî ji windakirina çavkaniyan dûr dikeve.

Sedem 1: Ji Tevlîbûna Duberî ya Dîrokî dûr bixin
Bi kurtasî, sedema sereke ya desthejandina sê-alî ev e ku meriv ji tevliheviya ku ji ber destpêkirina girêdana dubare ya kevin dûr bikeve. Di hawîrdorek torê ya tevlihev de, veguheztina pakêtên daneyê her gav li gorî dema diyarkirî ji mêvandarê armancê re nayê şandin, û pakêtên daneya kevn ji ber qerebalixa torê û sedemên din dibe ku pêşî bigihîjin mêvandarê armancê. Ji bo ku ji vê yekê dûr nekevin, TCP ji bo sazkirina pêwendiyê destekek sê-alî bikar tîne.

destanên sêalî ji girêdanên dubare yên dîrokî dûr dikeve

Dema ku xerîdar çend pakêtên damezrandina girêdana SYN li pey hev dişîne, di rewşên wekî qerebalixiya torê de, dibe ku jêrîn çêbibin:

1- Pakêtên SYN yên kevin berî pakêtên SYN yên herî dawî digihîjin serverê.
2- Pêşkêşkar piştî ku pakêta SYN ya kevin werdigire dê bersivek SYN + ACK bide xerîdar.
3- Dema ku xerîdar pakêta SYN + ACK distîne, diyar dike ku pêwendiyek li gorî çarçoweya xwe pêwendiyek dîrokî ye (hejmara rêzê qediya an jî dem derbas bû) û dûv re pakêta RST ji serverê re dişîne da ku pêwendiyê qut bike.

Bi girêdana du-destanî, rêyek tune ku meriv diyar bike ka girêdana heyî girêdanek dîrokî ye. Desthilatdariya sê-alî dihêle ku xerîdar diyar bike ka pêwendiya heyî pêwendiyek dîrokî ye li ser bingehê dema ku ew amade ye ku pakêta sêyemîn bişîne an na:

1- Ger ew pêwendiyek dîrokî be (hejmara rêzê qediya an jî dem derbas bû), pakêta ku ji hêla desta sêyem ve hatî şandin pakêtek RST e ku pêwendiya dîrokî qut dike.
2- Heger ne girêdaneke dîrokî be, pakêta ku cara sêyem tê şandin pakêtek ACK ye û her du aliyên pêwendîdar bi serkeftî pêwendiyê saz dikin.

Ji ber vê yekê, sedema bingehîn a ku TCP sê-alî destan bikar tîne ev e ku ew pêwendiyê dest pê dike da ku pêşî li girêdanên dîrokî bigire.

Sedem 2: Hevdemkirina hejmarên rêza destpêkê yên her du partiyan
Divê her du aliyên protokola TCP-ê jimareyek rêzê biparêzin, ku ev faktorek bingehîn e ku veguheztina pêbawer peyda bike. Hejmarên rêzikan di girêdanên TCP de rolek girîng dileyizin. Ew jêrîn dikin:

Wergir dikare daneyên dubare ji holê rake û rastbûna daneyan piştrast bike.

Wergir dikare pakêtan bi rêza jimareya rêzê werbigire da ku yekitiya daneyan misoger bike.

● Hejmara rêzê dikare pakêta daneyê ya ku ji alîyê alîyê din ve hatî wergirtin nas bike, û veguheztina daneya pêbawer bike.

Ji ber vê yekê, dema ku pêwendiyek TCP-ê saz dike, xerîdar pakêtên SYN bi jimareya rêza destpêkê dişîne û ji server hewce dike ku bi pakêtek ACK bersiv bide ku wergirtina serketî ya pakêta SYN ya xerîdar nîşan dide. Dûv re, pêşkêşker pakêta SYN-ê bi jimareya rêza destpêkê ji xerîdar re dişîne û li bendê ye ku xerîdar carekê û her dem bersivê bide, da ku pê ewle bibe ku hejmarên rêza destpêkê bi pêbawerî hevdemkirî ne.

Hejmarên rêzikên destpêkê yên her du partiyan hevdeng bikin

Her çend destanek çar-alî di heman demê de gengaz e ku bi pêbawer jimareyên rêza destpêkê yên her du partiyan hevdeng bike jî, gavên duyemîn û sêyemîn dikarin di yek gavê de werin berhev kirin, û di encamê de destekek sê-alî pêk were. Lêbelê, her du destan tenê dikarin garantî bikin ku jimareya rêza destpêkê ya partiyek bi serfirazî ji hêla partiya din ve were wergirtin, lê garantiyek tune ku hejmara rêza destpêkê ya her du partiyan were pejirandin. Ji ber vê yekê, destankirina sê-alî bijareya çêtirîn e ku meriv ji bo dabînkirina aramî û pêbaweriya girêdanên TCP-ê bigire.

Sedem 3: Ji Xerabkirina Çavkaniyan dûr bixin
Heger tenê "du-desthejandin" hebe, dema ku daxwaza SYN ya xerîdar di torê de were asteng kirin, xerîdar nikare pakêta ACK-ê ku ji hêla serverê ve hatî şandin werbigire, ji ber vê yekê SYN dê ji nû ve were şandin. Lêbelê, ji ber ku destanek sêyemîn tune, server nikare diyar bike ka xerîdar pejirandinek ACK wergirtiye da ku pêwendiyê saz bike. Ji ber vê yekê, server tenê piştî wergirtina her daxwazek SYN dikare bi proaktîf têkiliyek saz bike. Ev dibe sedema jêrîn:

Xerca çavkaniyan: Ger daxwaza SYN ya xerîdar were asteng kirin, di encamê de çend pakêtên SYN-ê dubare têne şandin, server dê piştî wergirtina daxwazê ​​gelek girêdanên nederbasdar saz bike. Ev dibe sedema windakirina nehewce ya çavkaniyên serverê.

Ragirtina peyamê: Ji ber nebûna destanek sêyem, server bi ti awayî nizane ka xerîdar bi rast pejirandina ACK wergirtiye da ku pêwendiyê saz bike. Wekî encamek, heke peyam di torê de asê bibin, xerîdar dê daxwazên SYN-ê dîsa û dîsa bişîne, dibe sedema ku server bi domdarî girêdanên nû saz bike. Ev ê qerebalix û derengiya torê zêde bike û bandorek neyînî li ser performansa tevayî ya torê bike.

Ji windakirina çavkaniyan dûr bixin

Ji ber vê yekê, ji bo ku îstîqrar û pêbaweriya pêwendiya torê misoger bike, TCP destaniya sê-alî bikar tîne da ku pêwendiyê saz bike da ku ji rûdana van pirsgirêkan dûr bixe.

Berhevkirinî
EwBrokera pakêtê ya torêDamezrandina pêwendiya TCP bi destanek sê-alî tê kirin. Di dema hejandina sê alî de, xerîdar pêşî pakêtek bi ala SYN ji serverê re dişîne, û destnîşan dike ku ew dixwaze têkiliyek saz bike. Piştî wergirtina daxwazê ​​ji xerîdar, pêşkêşker pakêtek bi alayên SYN û ACK bersivê dide xerîdar, destnîşan dike ku daxwaza girêdanê tê pejirandin, û jimareya rêza xweya destpêkê dişîne. Di dawiyê de, xerîdar bi ala ACK-ê bersivê dide serverê da ku destnîşan bike ku girêdan bi serfirazî hatiye damezrandin. Bi vî rengî, her du partî di dewleta DESTPÊK de ne û dikarin dest bi şandina daneyan ji hev re bikin.

Bi gelemperî, pêvajoya sê-alî ya destan ji bo damezrandina pêwendiya TCP-ê hatî sêwirandin da ku îstiqrar û pêbaweriya pêwendiyê misoger bike, ji tevlihevî û windakirina çavkaniyan li ser girêdanên dîrokî dûr bixe, û piştrast bike ku her du alî dikarin daneyan bistînin û bişînin.


Dema şandinê: Jan-08-2025