Silaha ya Siri ya TCP: Udhibiti wa Mtiririko wa Mtandao na Udhibiti wa Msongamano wa Mtandao

Usafiri wa kuegemea wa TCP
Sote tunajua itifaki ya TCP kama itifaki ya kuaminika ya usafirishaji, lakini inahakikishaje kuegemea kwa usafirishaji?

Ili kufikia maambukizi ya kuaminika, mambo mengi yanahitaji kuzingatiwa, kama vile ufisadi wa data, upotezaji, kurudia, na shards za nje. Ikiwa shida hizi haziwezi kutatuliwa, maambukizi ya kuaminika hayawezi kupatikana.

Kwa hivyo, TCP hutumia mifumo kama nambari ya mlolongo, jibu la kukiri, udhibiti wa kurudisha, usimamizi wa unganisho, na udhibiti wa windows kufikia maambukizi ya kuaminika.

Katika karatasi hii, tutazingatia dirisha la kuteleza, udhibiti wa mtiririko na udhibiti wa msongamano wa TCP. Utaratibu wa kurudisha nyuma umefunikwa kando katika sehemu inayofuata.

Udhibiti wa mtiririko wa mtandao
Udhibiti wa mtiririko wa mtandao au ujue kama udhibiti wa trafiki ya mtandao ni dhihirisho la uhusiano wa hila kati ya wazalishaji na watumiaji. Labda umepata hali hii mengi kazini au kwenye mahojiano. Ikiwa uwezo wa mtayarishaji wa kuzalisha sana uwezo wa watumiaji wa kutumia, itasababisha foleni kukua kwa muda usiojulikana. Katika hali mbaya zaidi, unaweza kujua kuwa wakati ujumbe wa RabbitMQ unakua sana, inaweza kusababisha uharibifu wa utendaji wa seva nzima ya MQ. Vivyo hivyo ni kweli kwa TCP; Ikiwa itaachwa bila kufutwa, ujumbe mwingi utawekwa kwenye mtandao, na watumiaji watakuwa wamezidi uwezo wao, wakati wazalishaji wataendelea kutuma ujumbe unaorudiwa, ambao utaathiri sana utendaji wa mtandao.

Ili kushughulikia jambo hili, TCP hutoa utaratibu wa mtumaji kudhibiti kiwango cha data iliyotumwa kulingana na uwezo halisi wa mapokezi ya mpokeaji, ambayo inajulikana kama udhibiti wa mtiririko. Mpokeaji anashikilia dirisha la kupokea, wakati mtumaji anashikilia dirisha la kutuma. Ikumbukwe kwamba windows hizi ni za unganisho moja tu la TCP na sio viunganisho vyote vinashiriki dirisha.

TCP hutoa udhibiti wa mtiririko kwa kutumia kutofautisha kwa dirisha la kupokea. Dirisha linalopokea linampa mtumaji ishara ya nafasi ngapi ya kache bado inapatikana. Mtumaji anadhibiti kiwango cha data iliyotumwa kulingana na uwezo halisi wa kukubalika wa mpokeaji.

Mpokeaji wa mpokeaji anaarifu mtumaji wa saizi ya data ambayo inaweza kupokea, na mtumaji hutuma hadi kikomo hiki. Kikomo hiki ni saizi ya dirisha, kumbuka kichwa cha TCP? Kuna uwanja wa Window wa Kupokea, ambao hutumiwa kuashiria idadi ya ka mpokeaji anaweza au yuko tayari kupokea.

Msimamizi wa mtumaji mara kwa mara atatuma pakiti ya uchunguzi wa dirisha, ambayo hutumiwa kugundua ikiwa mwenyeji wa mpokeaji bado ana uwezo wa kukubali data. Wakati buffer ya mpokeaji iko katika hatari ya kufurika, saizi ya dirisha imewekwa kwa bei ndogo ya kuamuru mtumaji kudhibiti kiwango cha data iliyotumwa.

Hapa kuna mchoro wa kudhibiti mtiririko wa mtandao:

Udhibiti wa trafiki

Udhibiti wa msongamano wa mtandao
Kabla ya kuanzisha udhibiti wa msongamano, tunahitaji kuelewa kuwa kwa kuongeza dirisha la kupokea na dirisha la kutuma, pia kuna dirisha la msongamano, ambalo hutumika sana kutatua shida ya kiwango gani mtumaji huanza kutuma data kwenye dirisha la kupokea. Kwa hivyo, dirisha la msongamano pia linatunzwa na mtumaji wa TCP. Tunahitaji algorithm kuamua ni data ngapi inafaa kutuma, kwani kutuma data kidogo sana au nyingi sio bora, kwa hivyo wazo la dirisha la msongamano.

Katika udhibiti wa mtiririko wa mtandao uliopita, tulichozuia ni mtumaji kujaza kashe ya mpokeaji na data, lakini hatukujua kinachotokea kwenye mtandao. Kawaida, mitandao ya kompyuta iko katika mazingira ya pamoja. Kama matokeo, kunaweza kuwa na msongamano wa mtandao kwa sababu ya mawasiliano kati ya majeshi mengine.

Wakati mtandao unakusanywa, ikiwa idadi kubwa ya pakiti zinaendelea kutumwa, inaweza kusababisha shida kama vile kuchelewesha na upotezaji wa pakiti. Katika hatua hii, TCP itarudisha data, lakini kurudishwa tena kutaongeza mzigo kwenye mtandao, na kusababisha ucheleweshaji mkubwa na upotezaji wa pakiti zaidi. Hii inaweza kuingia kwenye mzunguko mbaya na kuendelea kuwa kubwa.

Kwa hivyo, TCP haiwezi kupuuza kile kinachotokea kwenye mtandao. Wakati mtandao unakusanywa, TCP inajitolea yenyewe kwa kupunguza kiwango cha data inayotuma.

Kwa hivyo, udhibiti wa msongamano unapendekezwa, ambayo inakusudia kuzuia kujaza mtandao mzima na data kutoka kwa mtumaji. Ili kudhibiti kiwango cha data ambayo mtumaji anapaswa kutuma, TCP inafafanua wazo linaloitwa dirisha la msongamano. Algorithm ya kudhibiti msongamano itarekebisha saizi ya dirisha la msongamano kulingana na kiwango cha msongamano wa mtandao, ili kudhibiti kiwango cha data iliyotumwa na mtumaji.

Dirisha la msongamano ni nini? Je! Hii ina uhusiano gani na dirisha la kutuma?

Dirisha la msongamano ni tofauti ya hali inayodumishwa na mtumaji ambayo huamua kiwango cha data ambayo mtumaji anaweza kutuma. Dirisha la msongamano hubadilika kwa nguvu kulingana na kiwango cha msongamano wa mtandao.

Dirisha linalotuma ni saizi iliyokubaliwa kati ya mtumaji na mpokeaji ambayo inaonyesha kiwango cha data ambayo mpokeaji anaweza kupokea. Dirisha la msongamano na dirisha la kutuma linahusiana; Dirisha la kutuma kawaida ni sawa na kiwango cha chini cha msongamano na kupokea madirisha, ambayo ni, swnd = min (cwnd, rwnd).

Dirisha la msongamano linabadilika kama ifuatavyo:

Ikiwa hakuna msongamano katika mtandao, yaani, hakuna wakati wa kurudisha nyuma unaotokea, dirisha la msongamano huongezeka.

Ikiwa kuna msongamano katika mtandao, dirisha la msongamano hupungua.

Mtumaji huamua ikiwa mtandao umekusanywa kwa kuona ikiwa pakiti ya kukiri ya ACK imepokelewa ndani ya wakati uliowekwa. Ikiwa mtumaji hajapokea pakiti ya kukiri ya ACK ndani ya wakati uliowekwa, inazingatiwa kuwa mtandao umeunganishwa.

Mbali na dirisha la msongamano, ni wakati wa kujadili algorithm ya kudhibiti msongamano wa TCP. Algorithm ya Udhibiti wa TCP ina sehemu kuu tatu:

Anza polepole:Hapo awali, dirisha la msongamano wa CWND ni ndogo, na mtumaji huongeza dirisha la msongamano kwa haraka ili kuzoea haraka uwezo wa mtandao.
Kuepuka msongamano:Baada ya dirisha la msongamano kuzidi kizingiti fulani, mtumaji huongeza dirisha la msongamano kwa njia ya mstari ili kupunguza kiwango cha ukuaji wa dirisha la msongamano na epuka kupakia mtandao.
Kupona haraka:Ikiwa msongamano utatokea, mtumaji hupunguza dirisha la msongamano na anaingia katika hali ya uokoaji haraka ili kubaini eneo la urejeshaji wa mtandao kupitia ACKs mbili zilizopokelewa, na kisha inaendelea kuongeza dirisha la msongamano.

Anza polepole
Wakati unganisho la TCP limeanzishwa, dirisha la msongamano CWND hapo awali limewekwa kwa kiwango cha chini cha MSS (saizi ya kiwango cha juu). Kwa njia hii, kiwango cha kwanza cha kutuma ni juu ya MSS/RTT byte/pili. Bandwidth halisi inayopatikana kawaida ni kubwa zaidi kuliko MSS/RTT, kwa hivyo TCP inataka kupata kiwango bora cha kutuma, ambacho kinaweza kupatikana kwa njia ya kuanza polepole.

Katika mchakato wa kuanza polepole, thamani ya dirisha la msongamano CWND itaanzishwa hadi 1 MSS, na kila wakati sehemu ya pakiti iliyopitishwa inakubaliwa, thamani ya CWND itaongezwa na MSS moja, ambayo ni, thamani ya CWND itakuwa 2 MSS. Baada ya hapo, thamani ya CWND inaongezeka mara mbili kwa kila maambukizi ya mafanikio ya sehemu ya pakiti, na kadhalika. Utaratibu maalum wa ukuaji unaonyeshwa kwenye takwimu ifuatayo.

 Udhibiti wa msongamano wa mtandao

Walakini, kiwango cha kutuma hakiwezi kukua kila wakati; Ukuaji lazima umalizike wakati mwingine. Kwa hivyo, kiwango cha kutuma kinaongezeka lini? Kuanza polepole kunamaliza kuongezeka kwa kiwango cha kutuma kwa njia moja:

Njia ya kwanza ni kesi ya upotezaji wa pakiti wakati wa mchakato wa kutuma wa kuanza polepole. Wakati upotezaji wa pakiti unatokea, TCP inaweka dirisha la msongamano wa mtumaji hadi 1 na kuanza tena mchakato wa kuanza polepole. Katika hatua hii, wazo la kizingiti cha kuanza polepole SSTheresh huletwa, ambayo thamani yake ya awali ni nusu ya thamani ya CWND ambayo hutoa upotezaji wa pakiti. Hiyo ni, wakati msongamano unagunduliwa, thamani ya ssthresh ni nusu ya thamani ya dirisha.

Njia ya pili ni kuendana moja kwa moja na thamani ya kizingiti cha kuanza polepole. Kwa kuwa thamani ya ssthresh ni nusu ya thamani ya dirisha wakati msongamano unagunduliwa, upotezaji wa pakiti unaweza kutokea na kila mara wakati CWND ni kubwa kuliko ssthresh. Kwa hivyo, ni bora kuweka CWND kwa SSTheRsh, ambayo itasababisha TCP kubadili hali ya kudhibiti msongamano na kuanza polepole.

Njia ya mwisho ambayo kuanza polepole inaweza kumalizika ni ikiwa ACks tatu zilizopatikana hugunduliwa, TCP hufanya kurudisha haraka na inaingia katika hali ya uokoaji. (Ikiwa haijulikani wazi kwa nini kuna pakiti tatu za ACK, itaelezewa kando katika utaratibu wa kurudisha nyuma.)

Kuepuka kwa msongamano
Wakati TCP inapoingia katika hali ya udhibiti wa msongamano, CWND imewekwa nusu ya kizingiti cha msongamano. Hii inamaanisha kuwa thamani ya CWND haiwezi kuongezeka mara mbili kila wakati sehemu ya pakiti inapopokelewa. Badala yake, njia ya kihafidhina hupitishwa ambayo thamani ya CWND inaongezeka na MSS moja tu (urefu wa sehemu ya pakiti) baada ya kila maambukizi kukamilika. Kwa mfano, hata ikiwa sehemu 10 za pakiti zinakubaliwa, thamani ya CWND itaongezeka tu na MSS moja. Huu ni mfano wa ukuaji wa mstari na pia ina kiwango cha juu juu ya ukuaji. Wakati upotezaji wa pakiti unatokea, thamani ya CWND inabadilishwa kuwa MSS, na thamani ya ssthresh imewekwa nusu ya CWND. Au pia itasimamisha ukuaji wa MSS wakati majibu 3 ya ACK yanayopatikana yanapokelewa. Ikiwa ACks tatu zilizopunguka bado zinapokelewa baada ya kupunguza thamani ya CWND, thamani ya ssthresh imerekodiwa kama nusu ya thamani ya CWND na hali ya uokoaji haraka imeingizwa.

Kupona haraka
Katika hali ya kupona haraka, thamani ya dirisha la msongamano CWND huongezeka na MSS moja kwa kila ACK iliyopokelewa, ambayo ni, ACK ambayo haifiki kwa mlolongo. Hii ni kutumia sehemu za pakiti ambazo zimesambazwa kwa mafanikio kwenye mtandao ili kuboresha ufanisi wa maambukizi iwezekanavyo.

Wakati ACK ya sehemu ya pakiti iliyopotea inapofika, TCP inapunguza thamani ya CWND na kisha inaingia katika hali ya kuepusha msongamano. Hii ni kudhibiti saizi ya dirisha la msongamano na epuka kuongeza zaidi msongamano wa mtandao.

Ikiwa muda unatokea baada ya hali ya udhibiti wa msongamano, hali ya mtandao inakuwa mbaya zaidi na TCP huhamia kutoka kwa hali ya uzushi wa msongamano hadi hali ya kuanza polepole. Katika kesi hii, thamani ya dirisha la msongamano CWND imewekwa kwa 1 MSS, urefu wa sehemu ya pakiti, na thamani ya kizingiti cha kuanza polepole imewekwa nusu ya CWND. Madhumuni ya hii ni kuongeza ukubwa wa ukubwa wa dirisha la msongamano baada ya mtandao kupona kusawazisha kiwango cha maambukizi na kiwango cha msongamano wa mtandao.

Muhtasari
Kama itifaki ya kuaminika ya usafirishaji, TCP inatumia usafirishaji wa kuaminika kwa nambari ya mlolongo, kukiri, udhibiti wa kurudisha nyuma, usimamizi wa unganisho na udhibiti wa windows. Kati yao, utaratibu wa kudhibiti mtiririko unadhibiti kiwango cha data iliyotumwa na mtumaji kulingana na uwezo halisi wa mpokeaji, ambayo huepuka shida za msongamano wa mtandao na uharibifu wa utendaji. Utaratibu wa kudhibiti msongamano huepuka kutokea kwa msongamano wa mtandao kwa kurekebisha kiwango cha data iliyotumwa na mtumaji. Dhana za dirisha la msongamano na dirisha la kutuma zinahusiana na kila mmoja, na idadi ya data kwenye mtumaji inadhibitiwa kwa kurekebisha kwa nguvu saizi ya dirisha la msongamano. Kuanza polepole, kuepusha msongamano na kupona haraka ni sehemu kuu tatu za algorithm ya kudhibiti TCP, ambayo hurekebisha ukubwa wa dirisha la msongamano kupitia mikakati tofauti ya kuzoea uwezo na kiwango cha msongamano wa mtandao.

Katika sehemu inayofuata, tutachunguza utaratibu wa kurudisha TCP kwa undani. Utaratibu wa kurudisha nyuma ni sehemu muhimu ya TCP kufikia maambukizi ya kuaminika. Inahakikisha maambukizi ya kuaminika ya data kwa kurudisha data iliyopotea, iliyoharibiwa au iliyocheleweshwa. Kanuni ya utekelezaji na mkakati wa utaratibu wa kurudisha utaletwa na kuchambuliwa kwa undani katika sehemu inayofuata. Kaa tuned!


Wakati wa chapisho: Feb-24-2025