TCP áreiðanleika flutningur
Við þekkjum öll TCP samskiptareglur sem áreiðanlegar samgöngur samskiptareglur, en hvernig tryggir það áreiðanleika flutninga?
Til að ná áreiðanlegri sendingu þarf að íhuga marga þætti, svo sem spillingu gagna, tap, tvíverknað og utan pöntunar. Ef ekki er hægt að leysa þessi vandamál er ekki hægt að leysa áreiðanlega sendingu.
Þess vegna notar TCP fyrirkomulag eins og raðnúmer, svar við viðurkenningu, endurstýringu, tengingarstjórnun og gluggastjórnun til að ná áreiðanlegri sendingu.
Í þessari grein munum við einbeita okkur að rennibrautinni, flæðisstýringu og þrengslum á TCP. Endurritunarbúnaðurinn er fjallað sérstaklega í næsta kafla.
Netflæðisstýring
Netstreymisstjórnun eða þekkt sem umferðareftirlit með neti er í raun birtingarmynd lúmsks tengsla framleiðenda og neytenda. Þú hefur sennilega kynnst þessari atburðarás mikið í vinnunni eða í viðtölum. Ef getu framleiðandans til að framleiða mjög umfram getu neytandans til að neyta, mun það valda því að biðröðin vaxa endalaust. Í alvarlegri tilfelli gætirðu vitað að þegar RabbitMQ skilaboð hrannast upp of mikið getur það valdið niðurbroti alls MQ netþjónsins. Sama er að segja um TCP; Ef það er ekki hakað við verða of mörg skilaboð sett inn á netið og neytendurnir hafa farið fram úr getu þeirra, á meðan framleiðendurnir munu halda áfram að senda afrit skilaboð, sem munu hafa mikil áhrif á árangur netsins.
Til að takast á við þetta fyrirbæri veitir TCP fyrirkomulag fyrir sendandann til að stjórna magni gagna sem send eru út frá raunverulegri móttökugetu móttakarans, sem er þekkt sem flæðisstjórnun. Móttakarinn heldur við móttökuglugga en sendandinn heldur sendingu glugga. Það skal tekið fram að þessir gluggar eru aðeins fyrir eina TCP tengingu og ekki eru allar tengingar með glugga.
TCP veitir flæðisstýringu með því að nota breytu fyrir móttöku glugga. Móttakaglugginn gefur sendandanum vísbendingu um hversu mikið skyndiminni er enn í boði. Sendandi stjórnar því gögnum sem send eru í samræmi við raunverulega staðfestingargetu móttakara.
Móttakarinn tilkynnir sendanda um stærð gagna sem það getur fengið og sendandinn sendir upp að þessum mörkum. Þessi mörk eru gluggastærð, manstu eftir TCP hausnum? Það er móttökusvið sem er notað til að gefa til kynna fjölda bæti sem móttakarinn er fær eða fús til að fá.
Sendandi gestgjafinn sendir reglulega gluggasannsóknarpakka, sem er notaður til að greina hvort móttakara gestgjafinn er enn fær um að samþykkja gögn. Þegar biðminni móttakarans er í hættu á yfirfullum er gluggastærðin stillt á minna gildi til að leiðbeina sendandanum um að stjórna magninu sem sent er.
Hérna er skýringarmynd af flæðisstýringu:
Stjórnun netþega
Áður en við kynnum þrengslum, verðum við að skilja að til viðbótar við móttökugluggann og sendingargluggann er einnig þrengingargluggi, sem er aðallega notaður til að leysa vandamálið á hvaða gengi sendandinn byrjar að senda gögn í móttöku gluggann. Þess vegna er þrengingarglugganum einnig viðhaldið af TCP sendanda. Okkur vantar reiknirit til að ákveða hversu mikið gögn eru viðeigandi að senda, þar sem að senda of lítið eða of mikið af gögnum er ekki tilvalið, þess vegna hugmyndin um þrengslum.
Í fyrri flæðisstýringu netsins var það sem við forðumst var sendandi að fylla skyndiminni móttakarans með gögnum, en við vissum ekki hvað var að gerast í netinu. Venjulega eru tölvunet í sameiginlegu umhverfi. Fyrir vikið getur verið að það sé þrengsla nets vegna samskipta milli annarra gestgjafa.
Þegar netkerfið er þétt, ef haldið er áfram að senda fjölda pakka, getur það valdið vandamálum eins og seinkun og tapi á pakka. Á þessum tímapunkti mun TCP endurselja gögnin, en endursendingin mun auka byrðar á netinu, sem leiðir til stærri tafa og fleiri pakkataps. Þetta getur komist í vítahring og haldið áfram að verða stærri.
Þannig getur TCP ekki horft framhjá því sem er að gerast á netinu. Þegar netið er þrengt fórnar TCP sig með því að draga úr gögnum sem það sendir.
Þess vegna er lagt til að þrengslum sé, sem miðar að því að forðast að fylla allt netið með gögnum frá sendandanum. Til að stjórna gögnum sem sendandinn ætti að senda, skilgreinir TCP hugtak sem kallast þrengingarglugginn. Reiknirit fyrir þrengingareftirlit mun aðlaga stærð þrengingargluggans í samræmi við þrengingargráðu netsins, svo að það sé stjórn á gögnum sem sendandi sendir.
Hvað er þrengingargluggi? Hvað hefur þetta að gera með sendingargluggann?
Þrengingarglugginn er ástand breytu sem sendandi er viðhaldið sem ákvarðar magn gagna sem sendandinn getur sent. Þrengingarglugginn breytist á virkan hátt í samræmi við þrengingarstig netsins.
Sendingarglugginn er umsaminn gluggastærð milli sendanda og móttakara sem gefur til kynna magn gagna sem móttakarinn getur fengið. Þrengingarglugginn og sendingarglugginn tengjast; Sendingarglugginn er venjulega jafnt og lágmarks þrengsla og móttöku glugga, það er, swnd = mín (cwnd, rwnd).
CWND glugginn CWND breytist á eftirfarandi hátt:
Ef það er engin þrengsla í netinu, þ.e.a.s., er ekki endursendingartímabil, eykst þrengingarglugginn.
Ef þrengsli er í netinu minnkar þrengingarglugginn.
Sendandi ákvarðar hvort netið sé þrengt með því að fylgjast með því hvort ACK viðurkenningarpakkinn sé móttekinn innan tiltekins tíma. Ef sendandinn fær ekki ACK viðurkenningarpakkann innan tiltekins tíma er talið að netið sé þrengt.
Til viðbótar við þrengingargluggann er kominn tími til að ræða reiknirit TCP þrengingar. Reiknirit TCP Control Control samanstendur af þremur meginhlutum:
Hæg byrjun:Upphaflega er CWND þrengingarglugginn tiltölulega lítill og sendandi eykur þrengingargluggann veldishraða til að laga sig fljótt að getu netsins.
Forðast á þrengslum:Eftir að þrengingarglugginn er meiri en ákveðinn þröskuldur eykur sendandi þrengingargluggann á línulegan hátt til að hægja á vaxtarhraða þrengingargluggans og forðast ofhleðslu netsins.
Fljótur bata:Ef þrengsli á sér stað helmingur sendandinn þrengingargluggann og fer inn í hratt bataástand til að ákvarða staðsetningu netbata í gegnum móttekna ACK og heldur síðan áfram að auka þrengingargluggann.
Hæg byrjun
Þegar TCP tenging er staðfest er CWND þrengslum í upphafi stillt á lágmarks MSS (hámarks hluti stærð) gildi. Þannig snýst upphafs sendingarhlutfallið um MSS/RTT bæti/sekúndu. Raunveruleg tiltæk bandbreidd er venjulega miklu stærri en MSS/RTT, þannig að TCP vill finna besta sendingarhraða, sem hægt er að ná með hægfara byrjun.
Í hægfara ferlinu verður gildi þrengingargluggans CWND frumstætt í 1 MS, og í hvert skipti sem send er pakkasviðið er viðurkennt verður gildi CWND hækkað um einn MS, það er að gildi CWND verður 2 MS. Eftir það er gildi CWND tvöfaldað fyrir hverja árangursríka sendingu pakkahluta og svo framvegis. Sértækt vaxtarferli er sýnt á eftirfarandi mynd.
Sendingarhlutfallið getur þó ekki alltaf vaxið; Vöxturinn þarf að ljúka einhvern tíma. Svo hvenær lýkur sendingarhlutfallinu? Slow-byrjunar lýkur venjulega hækkun sendingarhlutfallsins á einn af ýmsum vegum:
Fyrsta leiðin er að ræða um tap á pakka meðan á sendingu ferli hægt er að byrja. Þegar pakkatap á sér stað setur TCP þrengingarglugga sendandans á 1 og endurræsir hægt ferlið. Á þessum tímapunkti er hugtak um hægfara þröskuld ssthresh kynnt, þar sem upphafsgildi er helmingur af gildi CWND sem býr til pakkatap. Það er, þegar þrengsli greinist er gildi ssthresh helmingur gluggagildisins.
Önnur leiðin er að samsvara beint gildi hægfara þröskulds SSTHRESH. Þar sem gildi ssthresh er helmingur gluggagildisins þegar þrengsla er greind, getur tap á pakka átt sér stað með hverri tvöföldun þegar CWND er stærra en sStresh. Þess vegna er best að stilla CWND á SSTHTHTH, sem mun valda því að TCP skiptir yfir í stjórnunarstillingu og endar hægt.
Síðasta leiðin sem hægt byrjun getur endað er ef þrír óþarfi ACK eru greindir, TCP framkvæmir hratt endursendingu og fer inn í bataástandið. (Ef ekki er ljóst hvers vegna það eru þrír ACK pakkar, verður það útskýrt sérstaklega í endursendingarbúnaðinum.)
Forðast þrengingu
Þegar TCP fer inn í þrengingareftirlitið er CWND stillt á helming þröskulds þröskulds. Þetta þýðir að ekki er hægt að tvöfalda gildi CWND í hvert skipti sem pakkahlutur er móttekinn. Þess í stað er tiltölulega íhaldssöm nálgun notuð þar sem gildi CWND er aukið um aðeins einn MS (hámarks pakkalengd) eftir að hverri sendingu er lokið. Til dæmis, jafnvel þó að 10 pakkahlutar séu viðurkenndir, mun gildi CWND aðeins aukast um einn MSS. Þetta er línulegt vaxtarlíkan og það hefur einnig efri mörk á vexti. Þegar tap á pakka á sér stað er gildi CWND breytt í MSS og gildi sSthresh er stillt á helming CWND. Eða það mun einnig stöðva vöxt MSS þegar 3 óþarfi ACK svör eru móttekin. Ef þrír óþarfi ACK eru enn mótteknir eftir að hafa helmingast gildi CWND er gildi sStresh skráð sem helmingur gildi CWND og hratt bataástandið er slegið inn.
Fljótur bata
Í skjótum bataástandi er gildi þrengslum gluggans aukið um einn MS fyrir hvern og einn sem fékk óþarfa ACK, það er að segja ACK sem kemur ekki í röð. Þetta er til að nýta sér pakkahlutana sem hafa verið sendir á netinu til að bæta flutnings skilvirkni eins mikið og mögulegt er.
Þegar ACK af týnda pakkasviðinu kemur, lækkar TCP gildi CWND og fer síðan inn í forvarnarástand þrengsla. Þetta er til að stjórna stærð þrengingargluggans og forðast enn frekar þrengingu netsins.
Ef tímamörk á sér stað eftir eftirlit með þrengslum verður netástandið alvarlegra og TCP flytur frá þrengslumvarnarástandi yfir í hægfara ríki. Í þessu tilfelli er gildi þrengingargluggans CWND stillt á 1 MS, hámarks pakkalengd og gildi hægfara þröskulds SSTHRESH er stillt á helming CWND. Tilgangurinn með þessu er að auka stig á ný á þrengslum gluggans eftir að netið batnar til að koma jafnvægi á flutningshraða og hversu þrengingar netsins eru.
Yfirlit
Sem áreiðanleg samgöngusamskiptareglur útfærir TCP áreiðanlegan flutning eftir röð, viðurkenningu, endursendingu, tengingarstjórnun og gluggastjórnun. Meðal þeirra stjórnar rennslisstýringarkerfinu það magn af gögnum sem sendandi sendir í samræmi við raunverulega móttökugetu móttakarans, sem forðast vandamálin við þrengingu netkerfis og niðurbrotsárangur. Stjórnunarbúnaður fyrir þrengslum forðast tíðni neta með því að aðlaga magn gagna sem sendandinn sendir. Hugtökin um gluggann og sendingu glugga tengjast hvort öðru og magn gagna hjá sendandanum er stjórnað með því að stilla virkan stærð þrengingargluggans. Hæg byrjun, forðast þrengslum og fljótur bati eru þrír meginhlutar TCP þrengingarstýringar reiknirits, sem aðlaga stærð þrengingargluggans með mismunandi aðferðum til að laga sig að getu og þrengslum netsins.
Í næsta kafla munum við skoða í smáatriðum TCP. Endurritunarbúnaður er mikilvægur hluti TCP til að ná áreiðanlegri sendingu. Það tryggir áreiðanlega sendingu gagna með því að endursenda glatað, skemmd eða seinkað gögn. Framkvæmd meginreglan og stefna endurútgáfunnar verður kynnt og greind í smáatriðum í næsta kafla. Fylgstu með!
Post Time: Feb-24-2025