Čo je syndróm hlúpych okien - vysvetlenie a prevencia

Obsah:

Čo je syndróm hlúpych okien - vysvetlenie a prevencia
Čo je syndróm hlúpych okien - vysvetlenie a prevencia

Video: Čo je syndróm hlúpych okien - vysvetlenie a prevencia

Video: Čo je syndróm hlúpych okien - vysvetlenie a prevencia
Video: Top 8 Genius Woodworking Tools to Buy on Amazon - YouTube 2024, Marec
Anonim

Údaje sa prenášajú cez sieť a Internet pomocou Protokol TCP / IP, 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 napríklad model ISO OSI. Rovnako ako u všetkých technických vecí, TCP / IP má aj niektoré nedostatky a Syndróm hlúpych okien je vytvorenie jednej z týchto nedostatkov. Ak chcete pochopiť, čo je syndróm hlúpych okien alebo SWS, musíte najskôr pochopiť základný mechanizmus dátovej komunikácie v TCP / IP.

Syndróm hlúpych okien

Image
Image

Pochopenie okna a jeho veľkosti

Keď dva body komunikujú v rámci protokolu TCP / IP, ide o mechanizmus potvrdzovania. Tento uznaný mechanizmus spôsobuje syndróm hlúpeho okna, ako je vysvetlené ďalej. Body môžu odkazovať na dva počítače, klient 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č, napríklad A, odošle dátový paket do iného počítača B, ten musí potvrdiť a odpovedať, že prijal dátový paket. Spolu s potvrdením musí tiež poslať veľkosť vyrovnávacej pamäte rozdelenej pre danú komunikačnú niť. Toto je zvyčajne počet bajtov určených na komunikáciu.

Takže keď B hovorí, že 100B je k dispozícii pre ďalšiu správu, 100B je okno v Syndriu hlúpeho okna. To znamená, že je veľkosť vyrovnávacej pamäte. S vlastnou chybou mechanizmus TCP / IP môže znížiť veľkosť vyrovnávacej pamäte pre každú komunikáciu / dáta prichádzajúce od A. To znamená, že keď A odošle správu, B predpokladá zmenšenie veľkosti vyrovnávacej pamäte a odošle menšie číslo. Veľkosť okna sa teda zmenšuje a v určitom bode sa komunikácia zastaví, keď B posiela 0B ako veľkosť okna.

Ako funguje syndróm hlúpych okien

Podľa vyššie uvedeného príkladu A a B, ak B posiela 1000B ako veľkosť okna, A rozdelí ho do dvoch 500B a pošle dva pakety 500B. Po prijatí prvého paketu B pošle potvrdenie, že 500B je k dispozícii pre okno, pretože druhý paket ešte nebol prijatý. A predpokladá, že 500B je veľkosť okna a následne posiela dva pakety 250B. Zatiaľ čo pri B je použitá 500B a 500 je práve prijatá, posiela 0B ako je k dispozícii. V tomto momente sa A predpokladá, že nie je k dispozícii žiadne okno, aj keď by sa mohlo stať, že vyrovnávacia pamäť je prázdna, pretože procesor použil dáta tam. A bude stále posielať menší paket, aby zistil, či je k dispozícii nejaké okno. Ak obsah vyrovnávacej pamäte v B ešte nie je odstránený, bude stále dostávať 0 ako odpoveď / potvrdenie.

Veľkosť okna sa preto stále znižuje, pretože B pošle potvrdenie vždy, 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 v častiach. Nebolo by žiadnym problémom, ak by A mohol poslať paket dostatočne veľký na pokrytie veľkosti vyrovnávacej pamäte na B naraz. Ale to by si vyžadovalo ďalšie mechanizmy, a teda Syndróm hlúpeho okna. Komunikácia sa zastaví potom, ako A obdrží dve alebo trikrát.

Ako zabrániť syndrómu hlúpeho okna (SWS)

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

Inými slovami, ak je 1000B k dispozícii, B posiela 500B ako potvrdenie. V dôsledku toho A posiela 250B x 2 pakety. Za týmto účelom A prijíma 100B ako potvrdenie. Keď prijíma 50B paket, B posiela 1000B - 50B do A. Tým sa celá konverzácia opäť spustí. To môže vyvolať malé oneskorenie v spracovaní, ale zabráni tomu, aby sa vyskytol syndróm hlúpych okien a zastavil sa celý rozhovor.

Ak to zhrnieme, systém SWS je založený na veľkosti vyrovnávacej pamäte, ktorá je k dispozícii pre príjemcu a predpokladanej veľkosti vypočítanej odosielateľom. Aby sa zabránilo SWS, zaviedlo sa meškanie a zámerne sa zmenší veľkosť okna, kým sa veľkosť paketu nestane príliš malá. Potom príjemca zverejní skutočne dostupnú veľkosť okna. Celý proces sa opakuje až do ukončenia komunikácie.

Hoci pravdepodobne som použil okno slov a vyrovnávaciu pamäť. Nemám na mysli žiaden rozdiel medzi nimi. V SWS štúdiách je bufferom okno.

Ak potrebujete viac informácií, nájdete podrobné vysvetlenie tu na adrese tcpipguide.com.

Odporúča: