Usafiri wa Kuegemea wa TCP
Sote tunafahamu itifaki ya TCP kama itifaki ya usafiri inayotegemewa, lakini inahakikishaje kutegemewa kwa usafiri?
Ili kufikia utumaji unaotegemewa, vipengele vingi vinahitaji kuzingatiwa, kama vile upotovu wa data, upotevu, urudufishaji, na vijisehemu vya nje ya utaratibu. Ikiwa matatizo haya hayawezi kutatuliwa, maambukizi ya kuaminika hayawezi kupatikana.
Kwa hivyo, TCP hutumia mbinu kama vile nambari ya mfuatano, jibu la kukiri, udhibiti wa kutuma upya, udhibiti wa muunganisho, na udhibiti wa dirisha ili kufikia utumaji unaotegemewa.
Katika karatasi hii, tutazingatia dirisha la kuteleza, udhibiti wa mtiririko na udhibiti wa msongamano wa TCP. Utaratibu wa kurejesha tena umefunikwa tofauti katika sehemu inayofuata.
Udhibiti wa Mtiririko wa Mtandao
Udhibiti wa Mtiririko wa Mtandao au unaojulikana kama Udhibiti wa Trafiki wa Mtandao kwa hakika ni dhihirisho la uhusiano wa hila kati ya wazalishaji na watumiaji. Labda umekutana na hali hii mara nyingi kazini au kwenye mahojiano. Ikiwa uwezo wa mzalishaji kuzalisha unazidi sana uwezo wa mlaji wa kutumia, itasababisha foleni kukua kwa muda usiojulikana. Katika hali mbaya zaidi, unaweza kujua kwamba wakati ujumbe wa RabbitMQ unaporundikana sana, inaweza kusababisha uharibifu wa utendaji wa seva nzima ya MQ. Ndivyo ilivyo kwa TCP; ikiwa haijadhibitiwa, ujumbe mwingi utawekwa kwenye mtandao, na watumiaji watakuwa wamezidi uwezo wao, wakati wazalishaji wataendelea kutuma ujumbe wa duplicate, ambayo itaathiri sana utendaji wa mtandao.
Ili kushughulikia jambo hili, TCP hutoa utaratibu kwa mtumaji kudhibiti kiasi cha data kinachotumwa kulingana na uwezo halisi wa kupokea wa mpokeaji, unaojulikana kama udhibiti wa mtiririko. Mpokeaji hudumisha dirisha la kupokea, huku mtumaji akidumisha dirisha la kutuma. Ikumbukwe kwamba Windows hizi ni za muunganisho mmoja wa TCP na sio miunganisho yote inayoshiriki dirisha.
TCP hutoa udhibiti wa mtiririko kwa kutumia kibadilishaji kwa dirisha la kupokea. Dirisha la kupokea humpa mtumaji ishara ya ni nafasi ngapi ya akiba bado inapatikana. Mtumaji hudhibiti kiasi cha data iliyotumwa kulingana na uwezo halisi wa kukubalika wa mpokeaji.
Mpangishi wa mpokeaji hujulisha mtumaji ukubwa wa data ambayo anaweza kupokea, na mtumaji hutuma hadi kikomo hiki. Kikomo hiki ni saizi ya dirisha, unakumbuka kichwa cha TCP? Kuna sehemu ya dirisha ya kupokea, ambayo hutumiwa kuonyesha idadi ya baiti ambazo mpokeaji anaweza au yuko tayari kupokea.
Mpangishi wa mtumaji atatuma mara kwa mara kifurushi cha uchunguzi wa dirisha, ambacho hutumika kutambua kama mpangishi wa mpokeaji bado anaweza kukubali data. Wakati bafa ya mpokeaji iko katika hatari ya kufurika, saizi ya dirisha imewekwa kwa thamani ndogo ili kumwagiza mtumaji kudhibiti kiasi cha data iliyotumwa.
Hapa kuna mchoro wa Udhibiti wa Mtiririko wa Mtandao:
Udhibiti wa Misongamano ya Mtandao
Kabla ya kuanzisha udhibiti wa msongamano, tunahitaji kuelewa kwamba pamoja na dirisha la kupokea na dirisha la kutuma, pia kuna dirisha la msongamano, ambalo hutumiwa hasa kutatua tatizo la kiwango gani mtumaji anaanza kutuma data kwenye dirisha la kupokea. Kwa hiyo, dirisha la msongamano pia linahifadhiwa na mtumaji wa TCP. Tunahitaji algoriti ili kuamua ni data ngapi inafaa kutuma, kwani kutuma data kidogo sana au nyingi sio bora, kwa hivyo dhana ya dirisha la msongamano.
Katika udhibiti wa awali wa mtiririko wa mtandao, tulichoepuka ni mtumaji kujaza akiba ya mpokeaji na data, lakini hatukujua kinachoendelea kwenye mtandao. Kwa kawaida, mitandao ya kompyuta iko katika mazingira ya pamoja. Matokeo yake, kunaweza kuwa na msongamano wa mtandao kutokana na mawasiliano kati ya wahudumu wengine.
Wakati mtandao umejaa, ikiwa idadi kubwa ya pakiti itaendelea kutumwa, inaweza kusababisha matatizo kama vile kuchelewa na kupoteza pakiti. Katika hatua hii, TCP itatuma tena data, lakini uhamisho utaongeza mzigo kwenye mtandao, na kusababisha ucheleweshaji mkubwa na hasara zaidi za pakiti. Hii inaweza kuingia katika mzunguko mbaya na kuendelea kuwa kubwa zaidi.
Kwa hivyo, TCP haiwezi kupuuza kinachotokea kwenye mtandao. Mtandao unaposongwa, TCP hujitolea kwa kupunguza kiasi cha data inayotuma.
Kwa hiyo, udhibiti wa msongamano unapendekezwa, ambao unalenga kuepuka kujaza mtandao mzima na data kutoka kwa mtumaji. Ili kudhibiti kiasi cha data mtumaji anapaswa kutuma, TCP inafafanua dhana inayoitwa dirisha la msongamano. Kanuni ya udhibiti wa msongamano itarekebisha ukubwa wa dirisha la msongamano kulingana na kiwango cha msongamano wa mtandao, ili kudhibiti kiasi cha data kinachotumwa na mtumaji.
Dirisha la msongamano ni nini? Je, hii ina uhusiano gani na dirisha la kutuma?
Dirisha la Msongamano ni hali tofauti inayodumishwa na mtumaji ambayo huamua kiasi cha data mtumaji anaweza kutuma. Dirisha la msongamano hubadilika kwa nguvu kulingana na kiwango cha msongamano wa mtandao.
Dirisha la Kutuma ni saizi ya dirisha iliyokubaliwa kati ya mtumaji na mpokeaji ambayo inaonyesha kiasi cha data ambayo mpokeaji anaweza kupokea. Dirisha la msongamano na dirisha la kutuma vinahusiana; dirisha la kutuma kawaida ni sawa na kiwango cha chini cha msongamano na kupokea Windows, yaani, swnd = min(cwnd, rwnd).
Dirisha la msongamano cwnd hubadilika kama ifuatavyo:
Ikiwa hakuna msongamano katika mtandao, yaani, hakuna muda wa kurejesha tena hutokea, dirisha la msongamano huongezeka.
Ikiwa kuna msongamano kwenye mtandao, dirisha la msongamano hupungua.
Mtumaji huamua ikiwa mtandao una msongamano kwa kuangalia kama pakiti ya uthibitisho ya ACK inapokelewa ndani ya muda uliobainishwa. Ikiwa mtumaji hatapokea kifurushi cha uthibitishaji cha ACK ndani ya muda uliobainishwa, inachukuliwa kuwa mtandao una msongamano.
Mbali na dirisha la msongamano, ni wakati wa kujadili algoriti ya udhibiti wa msongamano wa TCP. Algorithm ya udhibiti wa msongamano wa TCP ina sehemu tatu kuu:
Anza polepole:Hapo awali, dirisha la msongamano wa cwnd ni ndogo, na mtumaji huongeza dirisha la msongamano kwa kasi ili kukabiliana haraka na uwezo wa mtandao.
Kuepuka Msongamano:Baada ya dirisha la msongamano kuzidi kizingiti fulani, mtumaji huongeza dirisha la msongamano kwa njia ya mstari ili kupunguza kasi ya ukuaji wa dirisha la msongamano na kuepuka kupakia mtandao.
Urejeshaji wa haraka:Ikiwa msongamano hutokea, mtumaji hupunguza dirisha la msongamano kwa nusu na huingia katika hali ya kurejesha haraka ili kuamua eneo la urejeshaji wa mtandao kupitia acks zilizopokelewa zilizopokelewa, na kisha kuendelea kuongeza dirisha la msongamano.
Anza polepole
Muunganisho wa TCP unapoanzishwa, cwnd ya dirisha la msongamano huwekwa kwa kiwango cha chini cha thamani ya MSS (kiwango cha juu zaidi cha sehemu). Kwa njia hii, kiwango cha awali cha kutuma ni kuhusu baiti za MSS/RTT/sekunde. Bandwidth halisi inayopatikana kwa kawaida ni kubwa zaidi kuliko MSS/RTT, kwa hivyo TCP inataka kupata kiwango bora cha utumaji, ambacho kinaweza kupatikana kwa kuanza polepole.
Katika mchakato wa kuanza polepole, thamani ya cwnd ya dirisha la msongamano itaanzishwa hadi 1 MSS, na kila wakati sehemu ya pakiti iliyopitishwa inakubaliwa, thamani ya cwnd itaongezeka kwa MSS moja, yaani, thamani ya cwnd itakuwa 2 MSS. Baada ya hayo, thamani ya cwnd ni mara mbili kwa kila maambukizi ya mafanikio ya sehemu ya pakiti, na kadhalika. Mchakato maalum wa ukuaji unaonyeshwa kwenye takwimu ifuatayo.
Hata hivyo, kiwango cha kutuma hakiwezi kukua kila mara; ukuaji unapaswa kukoma wakati fulani. Kwa hivyo, ongezeko la kiwango cha kutuma linaisha lini? Kuanza polepole kwa kawaida humaliza ongezeko la kiwango cha utumaji katika mojawapo ya njia kadhaa:
Njia ya kwanza ni kesi ya upotezaji wa pakiti wakati wa mchakato wa kutuma kwa kuanza polepole. Upotevu wa pakiti unapotokea, TCP huweka dirisha la msongamano la mtumaji cwnd hadi 1 na kuanzisha upya mchakato wa kuanza polepole. Katika hatua hii, dhana ya kizingiti cha kuanza polepole ssthresh inaanzishwa, ambayo thamani yake ya awali ni nusu ya thamani ya cwnd ambayo hutoa hasara ya pakiti. Hiyo ni, msongamano unapogunduliwa, thamani ya ssthresh ni nusu ya thamani ya dirisha.
Njia ya pili ni kusawazisha moja kwa moja na thamani ya kizingiti cha kuanza polepole ssthresh. Kwa kuwa thamani ya ssthresh ni nusu ya thamani ya dirisha wakati msongamano unapogunduliwa, upotevu wa pakiti unaweza kutokea kwa kila mara mbili wakati cwnd ni kubwa kuliko ssthresh. Kwa hivyo, ni bora kuweka cwnd kwa ssthresh, ambayo itasababisha TCP kubadili hali ya kudhibiti msongamano na kumaliza kuanza polepole.
Njia ya mwisho ambayo mwanzo wa polepole unaweza kuisha ni ikiwa acks tatu zisizohitajika zitagunduliwa, TCP hufanya uhamisho wa haraka na kuingia katika hali ya kurejesha. (Ikiwa haijulikani kwa nini kuna pakiti tatu za ACK, itaelezwa tofauti katika utaratibu wa utumaji upya.)
Kuepuka Msongamano
TCP inapoingia katika hali ya udhibiti wa msongamano, cwnd imewekwa kuwa nusu ya kizingiti cha msongamano ssthresh. Hii ina maana kwamba thamani ya cwnd haiwezi kuongezwa mara mbili kila wakati sehemu ya pakiti inapopokelewa. Badala yake, mbinu ya kihafidhina inapitishwa ambapo thamani ya cwnd inaongezwa kwa MSS moja tu (urefu wa juu wa sehemu ya pakiti) baada ya kila upitishaji kukamilika. Kwa mfano, hata kama sehemu 10 za pakiti zitakubaliwa, thamani ya cwnd itaongezeka kwa MSS moja pekee. Huu ni muundo wa ukuaji wa mstari na pia una mipaka ya juu ya ukuaji. Upotevu wa pakiti unapotokea, thamani ya cwnd inabadilishwa hadi MSS, na thamani ya ssthresh imewekwa kuwa nusu ya cwnd. Au pia itasimamisha ukuaji wa MSS wakati majibu 3 yasiyohitajika ya ACK yanapokewa. Ikiwa cheki tatu zisizohitajika bado zitapokelewa baada ya kupunguza nusu ya thamani ya cwnd, thamani ya ssthresh inarekodiwa kama nusu ya thamani ya cwnd na hali ya uokoaji haraka inaingizwa.
Urejeshaji wa Haraka
Katika hali ya Urejeshaji Haraka, thamani ya cwnd ya dirisha la msongamano inaongezwa kwa MSS moja kwa kila ACK iliyopokelewa isiyo ya kawaida, yaani, ACK ambayo haifiki kwa mfuatano. Hii ni kutumia sehemu za pakiti ambazo zimesambazwa kwa ufanisi katika mtandao ili kuboresha ufanisi wa upitishaji kadiri inavyowezekana.
Wakati ACK ya sehemu ya pakiti iliyopotea inapofika, TCP inapunguza thamani ya cwnd na kisha kuingia katika hali ya kuepuka msongamano. Hii ni kudhibiti ukubwa wa dirisha la msongamano na kuepuka kuongeza zaidi msongamano wa mtandao.
Ikiwa muda umeisha baada ya hali ya udhibiti wa msongamano, hali ya mtandao inakuwa mbaya zaidi na TCP huhama kutoka hali ya kuepuka msongamano hadi hali ya kuanza polepole. Katika kesi hii, thamani ya dirisha la msongamano cwnd imewekwa kwa 1 MSS, urefu wa sehemu ya pakiti ya juu, na thamani ya ssthresh ya kuanza polepole imewekwa kwa nusu ya cwnd. Madhumuni ya hili ni kuongeza tena hatua kwa hatua ukubwa wa dirisha la msongamano baada ya mtandao kupata nafuu ili kusawazisha kiwango cha maambukizi na kiwango cha msongamano wa mtandao.
Muhtasari
Kama itifaki ya usafiri inayotegemewa, TCP hutekelezea usafiri unaotegemewa kwa nambari ya mfuatano, kibali, udhibiti wa utumaji upya, usimamizi wa uunganisho na udhibiti wa dirisha. Miongoni mwao, utaratibu wa udhibiti wa mtiririko hudhibiti kiasi cha data iliyotumwa na mtumaji kulingana na uwezo halisi wa kupokea wa mpokeaji, ambayo huepuka matatizo ya msongamano wa mtandao na uharibifu wa utendaji. Utaratibu wa kudhibiti msongamano huepuka kutokea kwa msongamano wa mtandao kwa kurekebisha kiasi cha data iliyotumwa na mtumaji. Dhana za dirisha la msongamano na dirisha la kutuma zinahusiana, na kiasi cha data kwa mtumaji kinadhibitiwa kwa kurekebisha kwa nguvu ukubwa wa dirisha la msongamano. Kuanza polepole, kuepuka msongamano na urejeshaji wa haraka ni sehemu tatu kuu za kanuni ya udhibiti wa msongamano wa TCP, ambayo hurekebisha ukubwa wa dirisha la msongamano kupitia mikakati tofauti ili kukabiliana na uwezo na kiwango cha msongamano wa mtandao.
Katika sehemu inayofuata, tutachunguza utaratibu wa kutuma tena wa TCP kwa undani. Utaratibu wa kusambaza tena ni sehemu muhimu ya TCP ili kufikia maambukizi ya kuaminika. Inahakikisha uwasilishaji unaotegemewa wa data kwa kutuma tena data iliyopotea, iliyoharibika au iliyochelewa. Kanuni ya utekelezaji na mkakati wa utaratibu wa kusambaza tena utaanzishwa na kuchambuliwa kwa kina katika sehemu inayofuata. Endelea kufuatilia!
Muda wa kutuma: Feb-24-2025