Různé

Co je Syndrom hloupého okna - vysvětlení a prevence

Co je Syndrom hloupého okna - vysvětlení a prevence

Data jsou přenášena po síti a internetu pomocí Protokol TCP / IP. TCP / IP není dokonalý, ale je snadnější jej implementovat ve srovnání s jinými protokoly teoretizovanými pro datovou komunikaci ... jako je model ISO OSI. Stejně jako u jiných technických věcí má TCP / IP také některé nedostatky a Syndrom hloupého okna je výtvorem jedné z těchto chyb. Abyste pochopili, co je Silly Window Syndrome nebo SWS, musíte nejprve pochopit základní mechanismus datové komunikace v TCP / IP.

Syndrom hloupého okna

Porozumění oknu a jeho velikosti

Když dva body komunikují pod TCP / IP, zahrnuje to potvrzovací mechanismus. Jak je vysvětleno dále, tento mechanismus uznávání způsobuje syndrom Silly Window. Body mohou odkazovat na dva počítače, klienta a server atd.

SWS je způsoben tím, že přijímač postupuje po pravé hraně okna, kdykoli má k dispozici nějaký nový vyrovnávací prostor pro příjem dat, a odesílatel pomocí jakéhokoli přírůstkového okna, bez ohledu na to, jak malé, odesílá více dat. Výsledkem může být stabilní vzor odesílání drobných datových segmentů, i když odesílatel i příjemce mají pro připojení velký celkový vyrovnávací prostor, říká MSDN.

Když počítač, řekněme A, odešle datový paket do jiného počítače B, ten musí potvrdit a odpovědět, že obdržel datový paket. Spolu s potvrzením musí také odeslat velikost vyrovnávací paměti nastavenou odděleně pro toto komunikační vlákno. Toto je obecně počet bajtů uvolněných pro komunikaci.

Takže když B říká, že 100B je k dispozici pro další zprávu, 100B je okno v Syndromu hloupého okna. To znamená, že se jedná o velikost vyrovnávací paměti. Se svou vlastní chybou může mechanismus TCP / IP snížit velikost vyrovnávací paměti pro každou komunikaci / data pocházející z A. To znamená, že kdykoli A pošle zprávu, B předpokládá, že je velikost vyrovnávací paměti zmenšena a odešle menší číslo. Velikost okna se tedy zmenšuje a v určitém okamžiku se komunikace jen zastaví, protože B pošle 0B jako velikost okna.

Jak funguje syndrom hloupého okna

Podle výše uvedeného příkladu A a B, pokud B pošle 1000B jako velikost okna, A to rozdělí na dvě 500B a pošle dva pakety 500B. Po přijetí prvního paketu B pošle potvrzení, že pro okno je k dispozici 500B, protože druhý paket ještě není přijat. A předpokládá, že 500B je velikost okna a následně pošle dva pakety po 250B. Zatímco v B je 500B použito a 500 je právě přijato, pošle 0B jako dostupné. V tomto okamžiku bude A předpokládat, že není k dispozici žádné okno, i když by se mohlo stát, že je vyrovnávací paměť prázdná, protože procesor tam vyčerpal data. A stále pošle menší paket, aby zjistil, zda je nějaké okno k dispozici. Pokud obsah vyrovnávací paměti na B ještě není odstraněn, bude stále dostávat 0 jako odpověď / potvrzení.

Velikost okna se tedy neustále zmenšuje, protože B odesílá potvrzení pokaždé, když obdrží paket od A. Tato velikost je obvykle menší než předchozí potvrzení, protože B přijímá datové pakety po částech. Nebyl by problém, kdyby A mohl poslat paket dostatečně velký, aby pokryl velikost vyrovnávací paměti na B najednou. To by však vyžadovalo další mechanismy, a tedy syndrom hloupého okna. Komunikace se zastaví poté, co A obdrží dvakrát nebo třikrát 0.

Jak zabránit syndromu hloupého okna (SWS)

Abychom se SWS zbavili, je třeba implementovat jednoduchý algoritmus. Po obdržení počátečního paketu B odešle jako okno polovinu skutečně dostupného prostoru. Díky tomu bude A posílat menší pakety. V důsledku toho, když se pakety stanou příliš malými, pak B pošle celkovou velikost vyrovnávací paměti, takže A může začít znovu odesílat větší datové bajty.

Jinými slovy, pokud je k dispozici 1000B, B pošle 500B jako potvrzení. V souladu s tím A pošle 250B x ​​2 pakety. Za tímto účelem obdrží A 100 B jako potvrzení. Když obdrží paket 50B, B pošle A 1 000B - 50B. Díky tomu je celá konverzace opět funkční. To může vyvolat malé zpoždění ve zpracování, ale zabráníte tomu, aby se syndrom Silly Window objevil a zastavil celou konverzaci.

Stručně řečeno, SWS je založen na velikosti vyrovnávací paměti dostupné pro příjemce a předpokládané velikosti vypočítané odesílatelem. Aby se zabránilo SWS, je zavedeno zpoždění a záměrně menší velikost okna je oplácena, dokud se velikost paketu nestane příliš malou. Poté příjemce zveřejní skutečně dostupnou velikost okna. Celý proces se neustále opakuje, dokud není komunikace dokončena.

I když jsem možná použil slova okno a vyrovnávací paměť zaměnitelně. Nemyslím tím žádný rozdíl mezi nimi. Ve studiích SWS je nárazníkem okno.

Pokud potřebujete více informací, je zde k dispozici podrobné vysvětlení na tcpipguide.com.

Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...