Transport pouzdanosti TCP-a
Svi smo upoznati sa TCP protokolom kao pouzdanim transportnim protokolom, ali kako se osigurava pouzdanost prevoza?
Da bi se postigao pouzdan prijenos, potrebno je razmotriti mnoge faktore, poput korupcije, gubitka, umnožavanja, i vanrednih komada. Ako se ovi problemi ne mogu riješiti, ne može se postići pouzdan prijenos.
Stoga TCP zapošljava mehanizme kao što su broj sekvence, odgovora za potvrdu, ponovno pokretanje kontrole, upravljanja vezama i kontrolom prozora za postizanje pouzdanog mjenjača.
U ovom ćemo radu fokusirati na klizni prozor, kontrolu protoka i zagušenja TCP-a. Mehanizam za ponovno slanje prekriven je odvojeno u sljedećem odjeljku.
Kontrola protoka mreže
Kontrola mrežnog protoka ili znanje kao mrežna kontrola prometa zapravo je manifestacija suptilnog odnosa proizvođača i potrošača. Verovatno ste mnogo naišli na ovaj scenarij na poslu ili u intervjuima. Ako proizvodni kapacitet za proizvodnju u velikoj mjeri prelazi potrošački kapacitet za konzumiranje, uzrokovat će da će red na rast rasti. U ozbiljnijoj slučaju, možda znate da kada se kada se prikupljaju zečji poruke previše, može prouzrokovati degradaciju performansi cijelog MQ poslužitelja. Isto vrijedi i za TCP; Ako se ne ostavi neprovjereno, previše će se poruka biti uložilo u mrežu, a potrošači će premašiti njihov kapacitet, dok će proizvođači nastaviti slati duplicirane poruke, što će u velikoj mjeri utjecati na performanse mreže.
Da bi se riješio ovaj fenomen, TCP pruža mehanizam za pošiljatelja za kontrolu količine poslanih podataka na osnovu stvarnog prijemnika prijemnika, koji je poznat kao kontrola protoka. Prijemnik održava prozor za primanje, dok pošiljatelj održava prozor za slanje. Treba napomenuti da su ovi prozori samo za jednu TCP vezu, a ne dijele sve veze.
TCP pruža kontrolu protoka pomoću varijable za prozor za primanje. Prozor primanja daje pošiljatelju naznaku koliko je svemirskog prostora još uvijek dostupan. Pošiljalac kontrolira iznos podataka poslanih u skladu sa stvarnim kapacitetom primatelja.
Domaćin prijemnika obavještava pošiljatelja veličine podataka koje može primiti, a pošiljalac pošiljaj na ovaj limit. Ova granica je veličina prozora, sjetite se TCP zaglavlja? Postoji polje za primanje prozora, koje se koristi za označavanje broja bajtova koji je prijemnik u stanju ili voljan dobiti.
Domaćin pošiljatelja povremeno će poslati paket prozora sonde, koji se koristi za otkrivanje je li domaćin prijemnika još uvijek u mogućnosti prihvatiti podatke. Kada je međuspremnik prijemnika u opasnosti preplavljenog, veličina prozora postavljena je na manju vrijednost da bi se pošiljatelju pošiljao da kontrolira količinu poslanih podataka.
Evo dijagrama upravljanja mrežnim protokom:
Kontrola zagušenja mreže
Prije uvođenja kontrole zagušenja, moramo shvatiti da postoji i prozor za primanje i šaljicu, postoji i prozor zagušenja, koji se uglavnom koristi za rješavanje problema po pošiljci pošiljač pošiljatelja pošiljatelja. Stoga, prozor zagušenja održava i TCP pošiljatelj. Potreban nam je algoritam za odlučivanje koliko je podataka prikladno za slanje, jer slanje premalo ili previše podataka nije idealno, otuda koncept prozora zagušenja.
U prethodnoj kontroli protoka mreže, ono što smo izbjegli bio je pošiljalac koji ispunjava predmemoriju prijemnika s podacima, ali nismo znali šta se događa u mreži. Računarske mreže obično su u zajedničkom okruženju. Kao rezultat toga, može postojati mreža mreže zbog komunikacije između ostalih domaćina.
Kada je mreža zagušena, ako se nastavlja veliki broj paketa, može prouzrokovati probleme poput kašnjenja i gubitka paketa. U ovom trenutku, TCP će povući podatke, ali ponovni pomicanje povećat će teret na mreži, što rezultira većim kašnjenjima i više gubitaka paketa. To može ući u začarani ciklus i nastaviti biti veći.
Dakle, TCP ne može zanemariti ono što se događa na mreži. Kada se mreža zaguše, TCP se žrtvuje smanjenjem količine podataka koje šalje.
Stoga se predlaže kontrola zagušenja koja ima za cilj izbjeći popunjavanje cijele mreže s podacima pošiljatelja. Za regulisanje količine podataka koje bi pošiljatelj trebao poslati, TCP definira koncept koji se naziva zagušeni prozor. Algoritam kontrole zagušenja prilagodio će veličinu zagušenja prozora prema zagušenom stupnju mreže, kako bi se kontrolirala količinu podataka koje šalje pošiljalac.
Šta je prozor zagušenja? Šta to ima veze sa prozorom za slanje?
Prozor zagušenja je državna varijabla koju je održao pošiljalac koji određuje iznos podataka koje pošiljalac može poslati. Prozor zagušenja se dinamički mijenja u skladu sa nivoom zagušenja mreže.
Prozor za slanje dogovoren je veličinama prozora između pošiljatelja i prijemnika koji označava količinu podataka koji primalac može primiti. Prozor zagušenja i prozor za slanje su povezani; Prozor za slanje obično je jednak minimalnoj zagušenosti i primanje prozora, tj. SWND = min (CWND, RWND).
Prozor zagušenja CWND se mijenja na sljedeći način:
Ako u mreži nema zagušenja, tj. Ne dolazi do prekida za prekršaj, prozor zagušenja povećava se.
Ako u mreži postoji zagušenje, prozor zagušenja opada.
Pošiljalac određuje je li mreža zagušena promatranjem da li se u određenom roku primi li paket ACK potvrde. Ako pošiljalac ne primi paket za potvrdu ACK u određeno vrijeme, smatra se da je mreža zagušena.
Pored prozora zagušenja, vrijeme je da razgovaramo o algoritmu kontrole zagušenja TCP-a. Kontrolni algoritam za kongestiju TCP sastoji se od tri glavna dijela:
SLOW Start:U početku je prozor CWND zagušenja relativno mali, a pošiljalac povećava prozor zagušenja kako se brzo prilagođava sposobnosti mreže.
Izbjegavanje zagušenja:Nakon prozora zagušenja prelazi određeni prag, pošiljalac povećava prozor zagušenja na linearni način da uspori rast prozora zagušenja i izbjegavajte preopterećenje mreže.
Brzi oporavak:Ako se dođe do zagušenja, pošiljalac prelazi prozor zagušenja i ulazi u stanje brzog oporavka da bi odredio lokaciju oporavka mreže kroz primljene duplikatne akse, a zatim i dalje povećava prozor zagušenja.
Spor početak
Kada se uspostavi TCP veza, CWND zagušenja CWND-a u početku je postavljen na vrijednost minimalne MSS (maksimalna veličina segmenta). Na ovaj način, početna stopa slanja govori o MSS / RTT bajtima / sekundi. Stvarna raspoloživa propusnost obično je mnogo veća od MSS / RTT-a, pa TCP želi pronaći optimalnu stopu slanja, što se može postići sporom.
U postupku sporog starta, vrijednost zagušenja CWND-a bit će inicijalizirana na 1 MSS, a svaki put kada se potvrdi prenosni segment paketa, vrijednost CWND-a bit će povećana za jedan MSS, odnosno vrijednost CWND-a postat će 2 MSS. Nakon toga vrijednost CWND-a udvostručena je za svaki uspješan prijenos paketnog segmenta, i tako dalje. Specifični proces rasta prikazan je na sljedećoj slici.
Međutim, stopa slanja ne može uvijek rasti; Rast se mora završiti nekad. Dakle, kada se povećava stopa slanja povećanja? Spor-Start obično završava povećanje stope slanja na jednom od više načina:
Prvi način je slučaj gubitka paketa tokom procesa slanja sporeg starta. Kada se dogodi gubitak paketa, TCP postavlja prozor za gužve pošiljatelja na 1 i ponovo pokreće postupak sporog starta. U ovom trenutku uveden je koncept praga SLTHREŠS-a Sslesthresh, čija je početna vrijednost polovina vrijednosti CWND-a koja generira gubitak paketa. Odnosno, kada se otkrije zagušenje, vrijednost Sstresh-a je polovina vrijednosti prozora.
Drugi način je direktno korelacije s vrijednošću praga Slow-Start Sslesthsh. Budući da je vrijednost Sstresh-a polovina vrijednosti prozora kada se otkrije zagušenje, gubitak paketa može se pojaviti sa svakom udvostručenom kada je CWND veća od ssthresh. Stoga je najbolje postaviti CWND u Sstreshsh, što će uzrokovati da TCP prebaci u režim zagušenja za zagušenje i usporeni početak završetka.
Posljednji način da se uspori početak može završiti je ako su otkrivene tri suvišne akse, TCP izvodi brzo prenošenje i ulazi u stanje oporavka. (Ako nije jasno zašto postoje tri ACK paketa, bit će objasnjeno odvojeno u mehanizmu za ponovno preusmjerenje.)
Izbjegavanje zagušenja
Kada TCP uđe u stanje kontrole zagušenja, CWND je postavljen na polovinu praga zagušenja Sslesthresh. To znači da se vrijednost CWND-a ne može udvostručiti svaki put kada se primi segment paketa. Umjesto toga, usvojen je relativno konzervativni pristup u kojem se vrijednost CWND povećava samo jednim MSS-om (maksimalna dužina segmenta paketa) nakon završetka svakog mjenjača. Na primjer, čak i ako se priznaju 10 paketnih segmenata, vrijednost CWND-a samo će se povećati za jedan MSS. Ovo je linearni model rasta i on ima i gornju granicu rasta. Kada se dogodi gubitak paketa, vrijednost CWND-a mijenja se u MSS, a vrijednost SSthresh postavljena je na polovinu CWND-a. Ili će se zaustaviti i rast MSS-a kada su primljeni 3 suvišnog ACK odgovora. Ako su tri suvišne akse još uvijek primljene nakon prepolovljenja vrijednosti CWND-a, vrijednost Sstresh-a bilježi se kao polovina vrijednosti CWND-a i unose se stanje brzog oporavka.
Brzi oporavak
U stanju brzog oporavka, vrijednost CGND-a zagušenja povećana je za jedan MSS za svaki primljeni suvišni ACK, odnosno ACK koji ne stiže u redoslijed. Ovo je korištenje paketnih segmenata koji su uspješno preneseni u mreži kako bi poboljšali efikasnost prenosa što je više moguće.
Kada stigne ACK izgubljenog paketnog segmenta, TCP smanjuje vrijednost CWND-a i zatim ulazi u stanje izbjegavanja zagušenja. Ovo je kontrolirati veličinu zagušenja prozora i izbjegavati daljnje povećanje zagušenja mreže.
Ako se taj trenutak dogodi nakon države zagušenja kontrole, mrežni uvjet postaje ozbiljniji, a TCP migrira iz stanja izbjegavanja zagušenja do države Slow-Start. U ovom slučaju vrijednost CWND-a zagušenja postavljena je na 1 MSS, maksimalna dužina segmenta paketa, a vrijednost praga Slow-Start Sslesthesh postavljena je na polovinu CWND-a. Svrha toga je ponovno postepeno povećavati veličinu zagušenja prozora nakon što se mreža oporavi da bi se uravnotežila brzinu prijenosa i stupanj zagušenja mreže.
Sažetak
Kao pouzdan transportni protokol, TCP implementira pouzdan transport po broju sekvence, potvrdu, kontrolu retarzisije, upravljanje povezivanjem i kontrolom prozora. Među njima mehanizam za kontrolu protoka kontrolira iznos podataka koje pošiljalac šalje po osnovu stvarnog primanje kapaciteta prijemnika, koji izbjegava probleme zagušenja mreže i degradacije performansi. Mehanizam za kontrolu zagušenja izbjegava pojavu zagušenja mreže podešavanjem količine podataka koje je poslao pošiljalac. Pojmovi prozora zagušenja i prozora za slanje povezani su jedni s drugima, a iznos podataka na pošiljatelju kontrolira se dinamički podešavanje veličine prozora zagušenja. Slow Start, izbjegavanje zagušenja i brzi oporavak su tri glavna dijela algoritma kontrole zagušenja TCP-a, koja prilagođavaju veličinu zagušenja kroz različite strategije za prilagodbu mreže prilagođavanja kapaciteta i zagušenja mreže.
U sljedećem odjeljku detaljno ćemo ispitati mehanizam za ponovno slanje TCP-a. Mehanizam za preusmjerenje važan je dio TCP-a za postizanje pouzdanog mjenjača. Osigurava pouzdan prijenos podataka preusmjeravanjem izgubljenih, oštećenih ili odloženih podataka. Princip provedbe i strategija prenošenja mehanizma uvesti će se detaljno u sljedećem odjeljku. Ostanite podešeni!
Vrijeme objavljivanja: Feb-24-2025