Çekê veşartî yê TCP: Kontrola Herikîna Torê û Kontrola Qerebalixiya Torê

Veguhestina Pêbaweriya TCP
Em hemî bi protokola TCP-ê wekî protokoleke veguhastinê ya pêbawer dizanin, lê ew çawa pêbaweriya veguhastinê misoger dike?

Ji bo bidestxistina veguhestineke pêbawer, divê gelek faktor li ber çavan bên girtin, wek xisarbûna daneyan, windabûn, dubarekirin û perçeyên nelirê. Ger ev pirsgirêk neyên çareserkirin, veguhestineke pêbawer jî nayê bidestxistin.

Ji ber vê yekê, TCP mekanîzmayên wekî jimara rêzê, bersiva pejirandinê, kontrola ji nû ve şandinê, rêveberiya girêdanê, û kontrola pencereyê bikar tîne da ku veguhestinek pêbawer bi dest bixe.

Di vê gotarê de, em ê li ser pencereya xêzkirinê, kontrola herikînê û kontrola qerebalixiyê ya TCP-ê bisekinin. Mekanîzmaya ji nû ve veguhestinê di beşa din de bi awayekî cuda tê vegotin.

Kontrola Herikîna Torê
Kontrola Herikîna Torê an jî wekî Kontrola Trafîka Torê tê zanîn, di rastiyê de nîşaneyek têkiliya nazik a di navbera hilberîner û xerîdaran de ye. Hûn dibe ku di kar an jî di hevpeyvînan de gelek caran rastî vê senaryoyê hatibin. Ger kapasîteya hilberîner a hilberînê ji kapasîteya xerîdar a xerckirinê pir zêdetir be, ev ê bibe sedema ku rêz bêdawî mezin bibe. Di rewşek cidîtir de, dibe ku hûn bizanin ku dema peyamên RabbitMQ pir zêde kom dibin, ev dikare bibe sedema xirabûna performansa tevahiya servera MQ. Ev yek ji bo TCP jî rast e; heke neyê kontrol kirin, pir peyam dê werin danîn nav torê, û xerîdar dê ji kapasîteya xwe derbas bibin, di heman demê de hilberîner dê berdewam bikin ku peyamên dubare bişînin, ku dê bandorek mezin li ser performansa torê bike.

Ji bo çareserkirina vê diyardeyê, TCP mekanîzmayekê ji bo şander peyda dike da ku li gorî kapasîteya wergirtina rastîn a wergir, mîqdara daneyên ku têne şandin kontrol bike, ku wekî kontrola herikînê tê zanîn. Wergir pencereyek wergirtinê diparêze, lê şander pencereyek şandinê diparêze. Divê were zanîn ku ev Pace tenê ji bo yek girêdana TCP-ê ne û ne hemî girêdan pencereyek parve dikin.

TCP bi karanîna guhêrbarekê ji bo pencereyeke wergirtinê kontrola herikînê peyda dike. Pencereya wergirtinê nîşan dide ku çiqas cîhê keşê hîn jî berdest e. Şandin li gorî kapasîteya qebûlkirina rastîn a wergir, mîqdara daneyên ku têne şandin kontrol dike.

Mêvandarê wergir mezinahiya daneyên ku dikare werbigire ji şander re radigihîne, û şander heta vê sînorê dişîne. Ev sînor mezinahiya pencereyê ye, sernivîsa TCP-ê bi bîr tînin? Qadeke pencereya wergirtinê heye, ku ji bo nîşandana hejmara baytan ku wergir dikare an dixwaze werbigire tê bikar anîn.

Mêvandarê şander dê bi awayekî periyodîk pakêtek pencereya lêkolînê bişîne, ku ji bo tespîtkirina ka mêvandarê wergir hîn jî dikare daneyan qebûl bike tê bikar anîn. Dema ku bafera wergir di xetereya tijîbûnê de be, mezinahiya pencereyê li ser nirxek piçûktir tê danîn da ku rêwerz bide şander ku mîqdara daneyên şandî kontrol bike.

Li vir diyagrama Kontrola Herikîna Torgilokê ye:

Kontrola Trafîkê

Kontrolkirina Qerebalixiya Torê
Berî ku em kontrola qerebalixiyê bidin destpêkirin, divê em fêm bikin ku ji bilî pencereya wergirtinê û pencereya şandinê, pencereyeke qerebalixiyê jî heye, ku bi giranî ji bo çareserkirina pirsgirêka rêjeya şandinê ya daneyan bo pencereya wergirtinê tê bikar anîn. Ji ber vê yekê, pencereya qerebalixiyê ji hêla şanderê TCP ve jî tê parastin. Ji bo biryardana ka şandina çiqas daneyan guncaw e, pêdivîya me bi algorîtmayekê heye, ji ber ku şandina daneyan pir kêm an pir zêde ne îdeal e, ji ber vê yekê têgeha pencereya qerebalixiyê heye.

Di kontrola herikîna torê ya berê de, tiştê ku me dûr dixist ew bû ku şander keşê wergir bi daneyan tijî bike, lê me nizanibû çi di torê de diqewime. Bi gelemperî, torên komputeran di hawîrdorek hevpar de ne. Di encamê de, dibe ku ji ber ragihandina di navbera mêvandarên din de qerebalixiya torê hebe.

Dema ku tor qerebalix be, heke hejmareke mezin ji pakêtan berdewam werin şandin, dibe ku pirsgirêkên wekî derengketin û windabûna pakêtan çêbibin. Di vê nuqteyê de, TCP dê daneyan ji nû ve bişîne, lê ji nû ve şandin dê barê li ser torê zêde bike, ku di encamê de derengketinên mezintir û windabûna pakêtên bêtir çêdibin. Ev dikare bikeve nav çerxek xerab û her ku diçe mezintir bibe.

Ji ber vê yekê, TCP nikare paşguh bike ka çi li ser torê diqewime. Dema ku tor qerebalix be, TCP bi kêmkirina mîqdara daneyên ku dişîne xwe feda dike.

Ji ber vê yekê, kontrolkirina qerebalixiyê tê pêşniyarkirin, ku armanc dike ku tevahiya torê bi daneyên ji şander neyê dagirtin. Ji bo rêkxistina mîqdara daneyên ku şander divê bişîne, TCP têgehek bi navê pencereya qerebalixiyê pênase dike. Algorîtmaya kontrolkirina qerebalixiyê dê mezinahiya pencereya qerebalixiyê li gorî pileya qerebalixiya torê biguherîne, da ku mîqdara daneyên ku ji hêla şander ve têne şandin kontrol bike.

Pencereya qerebalixiyê çi ye? Çi têkiliya vê bi pencereya şandinê re heye?

Pencereya Qerebalixiyê guhêrbarek rewşê ye ku ji hêla şander ve tê parastin û mîqdara daneyên ku şander dikare bişîne diyar dike. Pencereya qerebalixiyê li gorî asta qerebalixiya torê bi awayekî dînamîk diguhere.

Pencereya Şandinê mezinahiyek pencereyek e ku di navbera şander û wergir de li hev hatiye kirin û mîqdara daneyan nîşan dide ku wergir dikare werbigire. Pencereya qerebalixiyê û pencereya şandinê bi hev ve girêdayî ne; pencereya şandinê bi gelemperî wekhevî kêmtirîn Pencereya qerebalixiyê û wergir e, ango swnd = min(cwnd, rwnd).

Pencereya qerebalixiyê cwnd wiha diguhere:

Eger di torê de qerebalixî tune be, ango dema ji nû ve veguhestinê bi dawî nebe, pencereya qerebalixiyê zêde dibe.

Eger di torê de qerebalixî hebe, pencereya qerebalixiyê kêm dibe.

Şandinvan bi çavdêriya wergirtina pakêta pejirandina ACK di dema diyarkirî de diyar dike ka tor qerebalix e an na. Ger şandvan pakêta pejirandina ACK di dema diyarkirî de wernegire, tê hesibandin ku tor qerebalix e.

Ji bilî pencereya qerebalixiyê, dem hatiye ku em li ser algorîtmaya kontrola qerebalixiya TCP-ê jî nîqaş bikin. Algorîtmaya kontrola qerebalixiya TCP-ê ji sê beşên sereke pêk tê:

Destpêka Hêdî:Di destpêkê de, pencereya qerebalixiya cwnd nisbeten piçûk e, û şander pencereya qerebalixiyê bi awayekî eksponansiyel zêde dike da ku zû li gorî kapasîteya torê bigunce.
Pêşîlêgirtina Qerebalixiyê:Piştî ku pencereya qerebalixiyê ji asteke diyarkirî derbas dibe, şander pencereya qerebalixiyê bi awayekî xêzikî zêde dike da ku rêjeya mezinbûna pencereya qerebalixiyê hêdî bike û ji zêdebargirtina torê dûr bisekine.
Vegerandina Bilez:Eger qerebalixî çêbibe, şander pencereya qerebalixiyê nîvî dike û dikeve rewşa başbûna bilez da ku cîhê başbûna torê bi rêya piştrastkirinên dubare yên wergirtî diyar bike, û dûv re berdewam dike ku pencereya qerebalixiyê zêde bike.

Destpêka Hêdî
Dema ku pêwendiyek TCP tê sazkirin, cwnd-a pencereya qerebalixiyê di destpêkê de li ser nirxek MSS (mezinahiya segmentê ya herî zêde) ya herî kêm tê danîn. Bi vî rengî, rêjeya şandina destpêkê bi qasî MSS/RTT byte/saniye ye. Bandwidth-a rastîn a berdest bi gelemperî ji MSS/RTT pir mezintir e, ji ber vê yekê TCP dixwaze rêjeya şandina çêtirîn bibîne, ku ev dikare bi rêya destpêkirina hêdî were bidestxistin.

Di pêvajoya destpêkirina hêdî de, nirxa cwnd ya pencereya qerebalixiyê dê wekî 1 MSS were destpêkirin, û her gava ku beşa pakêtê ya veguhêzbar tê pejirandin, nirxa cwnd dê bi yek MSS zêde bibe, ango nirxa cwnd dê bibe 2 MSS. Piştî vê yekê, nirxa cwnd ji bo her veguheztina serketî ya beşek pakêtê du qat dibe, û hwd. Pêvajoya mezinbûna taybetî di wêneya jêrîn de tê nîşandan.

 Kontrolkirina qerebalixiya torê

Lêbelê, rêjeya şandinê nikare her tim mezin bibe; mezinbûn divê demekê bi dawî bibe. Ji ber vê yekê, zêdebûna rêjeya şandinê kengî bi dawî dibe? Destpêkirina hêdî bi gelemperî zêdebûna rêjeya şandinê bi yek ji çend awayan bi dawî dike:

Rêya yekem rewşa windabûna pakêtê ye di dema pêvajoya şandina destpêka hêdî de. Dema ku windabûna pakêtê çêdibe, TCP pencereya qerebalixiya cwnd ya şander li ser 1 datîne û pêvajoya destpêkirina hêdî ji nû ve dide destpêkirin. Di vê nuqteyê de, têgeheke asta destpêkirina hêdî ya ssthresh tê destnîşan kirin, ku nirxa wê ya destpêkê nîvê nirxa cwnd e ku windabûna pakêtê çêdike. Ango, dema ku qerebalixî tê tespît kirin, nirxa ssthresh nîvê nirxa pencereyê ye.

Rêya duyem ew e ku rasterast bi nirxa asta destpêkirina hêdî ssthresh ve were girêdan. Ji ber ku nirxa ssthresh nîvê nirxa pencereyê ye dema ku qerebalixî tê tespîtkirin, windabûna pakêtê dibe ku bi her duqatkirinê re çêbibe dema ku cwnd ji ssthresh mezintir be. Ji ber vê yekê, çêtirîn e ku cwnd li ser ssthresh were danîn, ku ev yek dê bibe sedema ku TCP biguheze moda kontrola qerebalixiyê û destpêkirina hêdî biqedîne.

Awayê dawî yê ku destpêkirina hêdî dikare biqede ev e ku heke sê ack-ên zêde werin tespît kirin, TCP veguheztinek bilez pêk tîne û dikeve rewşa başbûnê. (Heke ne diyar be ka çima sê pakêtên ACK hene, ew ê di mekanîzmaya veguheztinê de bi awayekî cuda were ravekirin.)

Pêşîlêgirtina Qerebalixiyê
Dema ku TCP dikeve rewşa kontrola qerebalixiyê, cwnd li nîvê asta qerebalixiyê ya ssthresh tê danîn. Ev tê vê wateyê ku nirxa cwnd nikare her carê ku beşek pakêtê tê wergirtin du qat bibe. Di şûna wê de, rêbazek nisbeten muhafezekar tê pejirandin ku tê de nirxa cwnd tenê bi yek MSS (dirêjahiya herî zêde ya beşa pakêtê) piştî ku her veguhastin qediya tê zêdekirin. Mînakî, her çend 10 beşên pakêtê werin pejirandin jî, nirxa cwnd dê tenê bi yek MSS zêde bibe. Ev modelek mezinbûna xêzikî ye û di heman demê de sînorê jorîn ê mezinbûnê jî heye. Dema ku windabûna pakêtê çêdibe, nirxa cwnd tê guhertin bo MSS, û nirxa ssthresh li nîvê cwnd tê danîn. An jî ew ê mezinbûna MSS rawestîne dema ku 3 bersivên ACK-ê yên zêde werin wergirtin. Ger sê ack-ên zêde piştî nîvkirina nirxa cwnd hîn jî werin wergirtin, nirxa ssthresh wekî nîvê nirxa cwnd tê tomar kirin û têkevin rewşa vegerandina bilez.

Vegerandina Bilez
Di rewşa Vegerandina Bilez de, nirxa cwnd ya pencereya qerebalixiyê ji bo her ACK-ya dubare ya wergirtî, ango ACK-ya ku bi rêzê nagihîje, bi yek MSS-ê tê zêdekirin. Ev ji bo bikaranîna beşên pakêtê yên ku bi serkeftî di torê de hatine şandin e, da ku karîgeriya veguhestinê bi qasî ku pêkan be baştir bibe.

Dema ku ACK-ek ji beşa pakêta windabûyî tê, TCP nirxa cwnd kêm dike û dûv re dikeve rewşa dûrketina ji qerebalixiyê. Ev ji bo kontrolkirina mezinahiya pencereya qerebalixiyê û dûrketina ji zêdebûna bêtir a qerebalixiya torê ye.

Eger piştî rewşa kontrola qerebalixiyê demdirêjî çêbibe, rewşa torê girantir dibe û TCP ji rewşa dûrketina ji qerebalixiyê vedigere rewşa destpêka hêdî. Di vê rewşê de, nirxa pencereya qerebalixiyê cwnd li ser 1 MSS, dirêjahiya beşa pakêtê ya herî zêde, û nirxa eşika destpêka hêdî ssthresh li ser nîvê cwnd tê danîn. Armanca vê yekê ew e ku piştî ku tor baş dibe, mezinahiya pencereya qerebalixiyê ji nû ve hêdî zêde bibe da ku rêjeya veguhastinê û asta qerebalixiya torê hevseng bike.

Berhevkirinî
Wekî protokoleke veguhestinê ya pêbawer, TCP veguhestina pêbawer bi rêya jimara rêzê, pejirandinê, kontrola ji nû ve veguhestinê, rêveberiya girêdanê û kontrola pencereyê pêk tîne. Di nav wan de, mekanîzmaya kontrola herikînê li gorî kapasîteya wergirtina rastîn a wergir, mîqdara daneyên ku ji hêla şander ve têne şandin kontrol dike, ku ji pirsgirêkên qerebalixiya torê û xirabûna performansê dûr dikeve. Mekanîzma kontrola qerebalixiyê bi verastkirina mîqdara daneyên ku ji hêla şander ve têne şandin, ji çêbûna qerebalixiya torê dûr dikeve. Têgehên pencereya qerebalixiyê û pencereya şandinê bi hev ve girêdayî ne, û mîqdara daneyan li şander bi verastkirina dînamîk a mezinahiya pencereya qerebalixiyê tê kontrol kirin. Destpêkirina hêdî, dûrketina ji qerebalixiyê û vegerandina bilez sê beşên sereke yên algorîtmaya kontrola qerebalixiya TCP ne, ku bi stratejiyên cûda mezinahiya pencereya qerebalixiyê diguherînin da ku li gorî kapasîte û asta qerebalixiya torê biguncin.

Di beşa bê de, em ê mekanîzmaya ji nû ve veguhestinê ya TCP-ê bi berfirehî binirxînin. Mekanîzma ji nû ve veguhestinê beşek girîng a TCP-ê ye ji bo bidestxistina veguhestinek pêbawer. Ew veguhestina pêbawer a daneyan bi ji nû ve şandina daneyên winda, xirabûyî an derengmayî misoger dike. Prensîba pêkanîn û stratejiya mekanîzmaya ji nû ve veguhestinê dê di beşa bê de bi berfirehî were nasandin û analîzkirin. Li bendê bin!


Dema şandinê: 24ê Sibatê 2025