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

Dáta(Data) sa prenášajú cez sieť a internet pomocou TCP/IP Protocol . TCP/IP nie je dokonalý, ale jeho implementácia je jednoduchšia v porovnaní s inými protokolmi teoretizovanými pre dátovú komunikáciu... ako napríklad model ISO OSI . Ako každá technická vec, aj TCP/IP má nejaké chyby a Syndróm hlúpeho okna(Silly Window Syndrome) je výtvorom jednej z týchto chýb. Aby ste pochopili, čo je syndróm hlúpeho okna(Silly Window Syndrome) alebo SWS , musíte najprv pochopiť základný mechanizmus dátovej komunikácie v TCP/IP .

Syndróm hlúpeho okna

syndróm hlúpeho okna

Pochopenie okna a jeho veľkosti

Keď dva body komunikujú pod TCP/IP , zahŕňa to mechanizmus potvrdenia. Tento mechanizmus potvrdenia spôsobuje syndróm hlúpeho okna(Silly Window Syndrome) , ako je vysvetlené ďalej. Body sa môžu vzťahovať na dva počítače, klienta a server atď.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Keď počítač, povedzme A, pošle dátový paket inému počítaču B, tento musí potvrdiť a odpovedať, že dátový paket prijal. Spolu s potvrdením musí odoslať aj veľkosť vyrovnávacej pamäte nastavenej pre dané komunikačné vlákno. Vo všeobecnosti je to počet bajtov uvoľnených na komunikáciu.

Takže keď B hovorí, že 100B je dostupných pre ďalšiu správu, 100B je okno v syndróme hlúpeho okna(Silly Window Syndrome) . To znamená, že ide o veľkosť vyrovnávacej pamäte. TCP/IP môže so svojou vlastnou chybou zmenšiť veľkosť vyrovnávacej pamäte pre každú komunikáciu/dáta prichádzajúce z A. To znamená, že kedykoľvek A pošle správu, B predpokladá, že veľkosť vyrovnávacej pamäte je znížená a pošle menšie číslo. Veľkosť okna sa teda stále zmenšuje a v určitom bode sa komunikácia 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 1000B ako veľkosť okna, A rozdelí ho na dva 500B a pošle dva pakety po 500B. Po prijatí prvého paketu B pošle potvrdenie, že pre okno je k dispozícii 500B, pretože druhý paket ešte nie je prijatý. A predpokladá, že 500B je veľkosť okna a následne odošle dva pakety po 250B. Zatiaľ čo v B sa použije 500B a práve sa prijme 500, odošle 0B podľa dostupnosti. V tomto bode bude A predpokladať, že nie je dostupné žiadne okno, aj keď sa môže stať, že vyrovnávacia pamäť je prázdna, keďže tam procesor spotreboval dáta. A stále odošle menší paket, aby zistil, či je dostupné nejaké okno. Ak obsah vyrovnávacej pamäte v B ešte nie je odstránený, stále dostane 0 ako odpoveď/potvrdenie.

Veľkosť okna sa teda neustále zmenšuje, pretože B posiela potvrdenie zakaždým, keď prijíma 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 mohol poslať paket dostatočne veľký na to, aby pokryl veľkosť vyrovnávacej pamäte na B naraz. To by si však vyžadovalo ďalšie mechanizmy, a teda Syndróm hlúpeho okna(Silly Window Syndrome) . Komunikácia sa zastaví potom, čo A dostane 0 dvakrát alebo trikrát.

Ako predchádzať syndrómu hlúpeho okna(Silly Window Syndrome) ( SWS )

Existuje jednoduchý algoritmus, ktorý sa má implementovať na zbavenie sa SWS . Po prijatí počiatočného paketu B odošle polovicu skutočne dostupného priestoru ako okno. To spôsobí, že A bude posielať menšie pakety. V dôsledku toho, keď sa pakety príliš zmenšia, potom B odošle celkovú veľkosť vyrovnávacej pamäte, takže A môže znova začať posielať väčšie dátové bajty.

Inými slovami, ak je k dispozícii 1000B, B pošle 500B ako potvrdenie. Podľa toho A odošle 250 B x 2 pakety. Za to A dostane 100B ako potvrdenie. Keď prijme 50B paket, B pošle 1000B – 50B do A. Tým sa celá konverzácia opäť spustí. To môže spôsobiť malé oneskorenie v spracovaní, ale zabráni výskytu syndrómu hlúpeho okna(Silly Window Syndrome) a zastaví celú konverzáciu.

Stručne povedané, SWS je založený na veľkosti vyrovnávacej pamäte dostupnej pre príjemcu a na predpokladanej veľkosti vypočítanej odosielateľom. Aby sa predišlo SWS , zavedie sa oneskorenie a zámerne menšia veľkosť okna sa vráti, 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 sa komunikácia nedokončí.

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



About the author

Mám vzdelanie v oblasti počítačového inžinierstva a informačných technológií, čo mi dalo jedinečný pohľad na platformy Windows 10 a 11. Najmä mám skúsenosti s Windows 10 " Desktop Experience " a prehliadačom Microsoft Edge. Moje skúsenosti s týmito dvoma platformami mi umožňujú hlboko pochopiť, ako fungujú, a moje odborné znalosti v týchto oblastiach mi umožňujú poskytovať spoľahlivé rady, ako ich zlepšiť.



Related posts