Rôzne

Čo je to Syndróm hlúpeho okna - vysvetlenie a prevencia

Čo je to Syndróm hlúpeho okna - vysvetlenie a prevencia

Dáta sú prenášané cez sieť a internet pomocou TCP / IP protokol. TCP / IP nie je dokonalý, ale je ľahšie implementovateľný v porovnaní s inými protokolmi teoretizovanými pre dátovú komunikáciu ... ako je model ISO OSI. Ako každá technická vec, aj TCP / IP má niektoré chyby a Syndróm hlúpeho okna je výtvorom jednej z týchto chýb. Aby ste pochopili, čo je Silly Window Syndrome alebo SWS, musíte najskôr porozumieť základnému mechanizmu dátovej komunikácie v TCP / IP.

Syndróm hlúpeho okna

Pochopenie okna a jeho veľkosti

Keď dva body komunikujú pod TCP / IP, vyžaduje to potvrdzovací mechanizmus. Ako je vysvetlené ďalej, tento mechanizmus uznávania spôsobuje syndróm Silly Window. Body sa môžu vzťahovať na dva počítače, klienta a server atď.

SWS je spôsobený tým, že prijímač postupuje po pravej hrane okna, kedykoľvek má k dispozícii nejaký nový medzipamäť na príjem údajov, a tým, že odosielateľ použije akékoľvek prírastkové okno, bez ohľadu na to, aké malé je, na odoslanie ďalších údajov. Výsledkom môže byť stabilný vzorec odosielania malých dátových segmentov, aj keď odosielateľ aj prijímateľ majú pre pripojenie veľký celkový vyrovnávací priestor, tvrdí server MSDN.

Keď počítač, povedzme A, odošle dátový paket do iného počítača B, ten musí potvrdiť a odpovedať na to, že dostal dátový paket. Spolu s potvrdením musí tiež odoslať veľkosť vyrovnávacej pamäte nastavenú pre dané komunikačné vlákno. Toto je zvyčajne počet bajtov uvoľnených na komunikáciu.

Takže keď B hovorí, že 100B je k dispozícii pre ďalšiu správu, 100B je okno v Syndrome Silly Window Syndrome. To znamená, že je to veľkosť vyrovnávacej pamäte. S vlastnou chybou môže mechanizmus TCP / IP znížiť veľkosť vyrovnávacej pamäte pre každú komunikáciu / dáta pochádzajúce z A. To znamená, že kedykoľvek A pošle správu, B predpokladá, že veľkosť vyrovnávacej pamäte je zmenšená a pošle menšie číslo. Takto sa veľkosť okna stále zmenšuje a v určitom okamihu sa komunikácia iba zastaví, keď B pošle 0B ako veľkosť okna.

Ako funguje syndróm hlúpeho okna?

Podľa vyššie uvedeného príkladu A a B, ak B pošle 1 000 B ako veľkosť okna, A ju rozdelí na dve 500 B a odošle dva pakety po 500 B. Po prijatí prvého paketu B pošle potvrdenie s informáciou, že pre okno je k dispozícii 500 B, pretože druhý paket ešte stále nie je prijatý. A predpokladá 500B je veľkosť okna a následne pošle dva pakety 250B. Zatiaľ čo v B sa používa 500B a práve sa prijíma 500, pošle 0B ako dostupné. V tomto okamihu bude A predpokladať, že nie je k dispozícii žiadne okno, aj keď by sa mohlo stať, že medzipamäť bude prázdna, pretože procesor tam vyčerpal dáta. A stále pošle menší paket, aby zistil, či je nejaké okno k dispozícii. Ak obsah medzipamäte na B ešte nie je odstránený, bude stále dostávať 0 ako odpoveď / potvrdenie.

Veľkosť okna sa teda neustále zmenšuje, pretože B posiela potvrdenie zakaždým, keď dostane paket od A. Táto veľkosť je zvyčajne menšia ako predchádzajúce potvrdenie, pretože B prijíma dátové pakety po častiach. Nebol by problém, keby A dokázalo poslať paket dostatočne veľký na to, aby zakryl veľkosť vyrovnávacej pamäte na B súčasne. To by si však vyžadovalo ďalšie mechanizmy, a teda aj syndróm hlúpeho okna. Komunikácia sa zastaví po tom, čo A prijme 0 dvakrát alebo trikrát.

Ako zabrániť syndrómu Silly Window (SWS)

Aby sme sa zbavili SWS, je potrebné implementovať jednoduchý algoritmus. Po prijatí počiatočného paketu B pošle polovicu skutočne dostupného priestoru ako okno. Vďaka tomu bude A odosielať menšie pakety. Následne, keď sa pakety príliš zmenšia, potom B odošle celkovú veľkosť medzipamäte, takže A môže znova začať odosielať väčšie dátové bajty.

Inými slovami, ak je k dispozícii 1 000 B, B pošle 500 B ako potvrdenie. Podľa toho A pošle 250B x ​​2 pakety. Za to dostane A 100 B ako potvrdenie. Keď prijme paket 50 B, B pošle A 1 000 B - 50 B. Vďaka tomu bude celá konverzácia opäť funkčná. To môže spôsobiť malé oneskorenie pri spracovaní, ale zabránite tak výskytu syndrómu Silly Window a zastaveniu celej konverzácie.

Stručne povedané, SWS je založený na veľkosti vyrovnávacej pamäte dostupnej pre príjemcu a predpokladanej veľkosti vypočítanej odosielateľom. Aby sa zabránilo SWS, zavedie sa oneskorenie a zámerne sa zmenší veľkosť okna, kým sa veľkosť paketu nestane príliš malou. Potom príjemca zverejní skutočne dostupnú veľkosť okna. Celý proces sa neustále opakuje, kým nie je komunikácia dokončená.

Aj keď som možno použil slová okno a vyrovnávacia pamäť zameniteľne. Nemyslím tým žiadny rozdiel medzi nimi. V štúdiách SWS je nárazníkom okno.

Ak potrebujete viac informácií, tu je k dispozícii podrobné vysvetlenie na tcpipguide.com.

Hry Najlepšie hry na hranie s ručným sledovaním
Najlepšie hry na hranie s ručným sledovaním
Oculus Quest nedávno predstavil skvelú myšlienku ručného sledovania bez ovládačov. Vďaka stále sa zvyšujúcemu počtu hier a aktivít, ktoré vykonávajú p...
Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...