Duomenų srautui tarp vartotojo ir serverio valdyti buvo sukurtas protokolas, vadinamas TCP Flow Control.
Ji užtikrina, kad duomenims siųsti ir gauti būtų skirtas tam tikras pralaidumas, kad apdorojimas galėtų vykti be jokių rimtų problemų.
Tam TCP protokolas naudoja metodą, žinomą kaip slankiojo lango protokolas.
Šiame straipsnyje mes išsamiai apžvelgsime TCP srauto valdymą, įskaitant jo veikimą ir, svarbiausia, slankiojo lango protokolą.
Kas yra TCP srauto valdymas?
TCP protokolas užtikrina patikimo ryšio kanalo nustatymą nenuspėjamame tinkle.
Duomenų paketai gali pasimesti, atvykti ne iš eilės, sukurti atsargines tinklo kopijas arba būti perkrauti priimančiame mazge, kai jie siunčiami iš vieno mazgo į kitą.
Tačiau kurdami programą paprastai neturime susidurti su šiuo sudėtingumu; vietoj to mes tiesiog siunčiame kai kuriuos duomenis į lizdą, o TCP užtikrina, kad paketai būtų sėkmingai pristatyti į gavėjo mazgą.
Srauto valdymas yra labai svarbi papildoma funkcija, kurią siūlo TCP.
Naudodamas srauto valdymą, TCP iš esmės užtikrins, kad siuntėjas nesiunčia imtuvui per daug paketų vienu metu.
Kaip veikia perdavimo valdymo protokolas – srauto valdymas?
Paprastai tai atsitinka, kai mums reikia perduoti duomenis tinkle.
Siuntėjo programa siunčia duomenis į lizdą, transporto sluoksnis (šiuo atveju TCP) supakuoja šiuos duomenis į segmentą, o tinklo sluoksnis (pavyzdžiui, IP) perduoda šį paketą priimančiam mazgui tam tikru maršrutu.
Tinklo sluoksnis perduos šiuos duomenis į TCP pokalbio gavimo pabaigoje, o TCP padarys juos prieinamus priimančiajai programai kaip identišką pateiktų duomenų dublikatą.
TCP nepristatys netvarkingų paketų ir lauks pakartotinio perdavimo, jei aptiks baitų srauto spragą.
Tai pamatysime, jei priartinsime.
Tiek perdavimo, tiek priėmimo buferiai TCP naudojami duomenims, kurie turi būti atitinkamai išsiųsti ir gauti, laikyti.
Tada programa nuskaitys duomenis iš priėmimo buferio, kai jie bus paruošti.
Pagrindinis srauto valdymo tikslas yra užtikrinti, kad nesiunčiame papildomų paketų, kol imtuvo priėmimo buferis jau pilnas, nes tai priverstų imtuvą atsisakyti papildomų paketų, kurių jis negalėjo apdoroti.
Imtuvas paskelbs savo priėmimo langą arba laisvą vietą priėmimo buferyje, kad apribotų duomenų, kuriuos gali perduoti TCP, kiekį.
Stumdomo lango protokolas
Stumdomo lango protokolas TCP yra vienas iš plačiausiai naudojamų srauto valdymo metodų. Tai kintamo dydžio, į baitus orientuota procedūra.
Taikant šį metodą, gavėjas siunčia siuntėjui imtuvo langą, kai tik siuntėjas ir gavėjas yra sujungti.
Imtuvo esamo buferio dydis vadinamas imtuvo langu.
Duomenų, kuriuos galima siųsti toliau be patvirtinimo, kiekį dabar apskaičiuoja TCP pagal turimą imtuvo langą.
Tačiau TCP sustabdo duomenų perdavimą, jei imtuvo lango dydis yra 0 ir laukia, kol jis padidės.
Imtuvo lango dydis yra TCP rėmo komponentas.
Maksimalus lango dydis yra 65,535 16 baitai, nes jo lango dydis yra XNUMX bitų.
Lango matmenis pasirenka gavėjas. Su kiekvienu patvirtinimo pranešimu imtuvas perduoda šiuo metu galimo imtuvo lango dydį.
Stumdomo lango protokolo procesas
Naudojant slankiojančio lango protokolo techniką, susijungiant siuntėjui ir gavėjui sukuriami du buferiai.
Šie du buferiai yra suskirstyti į dvi grupes: siuntimo langą, kuris priklauso siuntėjui, ir priėmimo langą, kuris priklauso gavėjui.
Gavimo langas grąžina likusią priėmimo buferio erdvę, kai siuntėjas perduoda duomenis gavėjui.
Dėl to siuntėjas apriboja duomenų kiekį, kuris gali tilpti į priėmimo buferį.
Siuntimo langas aukščiau pateiktame pavyzdyje perduoda duomenis į priėmimo langą.
Gavęs duomenis, priėmimo langas siunčia patvirtinimą, o tada perduodantis langas perduoda naują duomenų rėmelį.
Tačiau šį kartą gavimo langas papildomai siunčia pranešimą, kad laisva atmintis yra užpildyta be patvirtinimo, kurį gavo.
Siuntimo langas pristabdo duomenų perdavimą, kol gauna patvirtinimą iš priėmimo lango, kad atlaisvinta vieta, tada gali tęsti duomenų perdavimą.
Išvada
Apibendrinant galima pasakyti, kad duomenų ryšio sluoksnis ir transporto sluoksnis yra atsakingi už srauto valdymo problemų tvarkymą.
Pagrindinis srauto valdymo mechanizmo tikslas yra neleisti imtuvui perkrauti duomenis iš greičiau perduodančio siuntėjo.
Net jei siuntėjo perduodami duomenys yra be klaidų ir dėl galingo įrenginio siunčiami greičiau, gali būti, kad lėtesnio galo imtuvas nesugebės apdoroti didesnio duomenų perdavimo greičio ir dėl to praras dalį duomenų.
Palikti atsakymą