Какво представлява Синдромът на глупавия прозорец - обяснение и превенция

Съдържание:

Какво представлява Синдромът на глупавия прозорец - обяснение и превенция
Какво представлява Синдромът на глупавия прозорец - обяснение и превенция

Видео: Какво представлява Синдромът на глупавия прозорец - обяснение и превенция

Видео: Какво представлява Синдромът на глупавия прозорец - обяснение и превенция
Видео: Установка не стандартного разрешения монитора,для Windows 8;8.1 и 10. - YouTube 2024, Април
Anonim

Данните се прехвърлят през мрежата и Интернет чрез Протокол TCP / IP, TCP / IP не е перфектен, но е по-лесен за изпълнение в сравнение с други протоколи, теоретизирани за комуникация на данни … като ISO OSI модел. Както при всяко друго техническо нещо, TCP / IP има и някои недостатъци и Синдром на глупавия прозорец е създаването на един от тези недостатъци. За да разберете какво е Синдром на глупавия прозорец или SWS, първо трябва да разберете основния механизъм за предаване на данни в TCP / IP.

Синдром на глупавия прозорец

Image
Image

Разбиране на прозореца и неговия размер

Когато две точки комуникират под TCP / IP, то включва механизъм за потвърждаване. Този признаващ механизъм е причината за синдрома на глупавия прозорец, както е обяснено по-долу. Точките могат да се отнасят до два компютъра, клиент и сървър и т.н.

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.

Когато компютър, да рече A, изпраща пакет данни на друг компютър Б, той трябва да потвърди и да отговори, че е получил пакета данни. Заедно с потвърждението, той също трябва да изпрати размера на буфера, отделен за тази комуникационна нишка. Това обикновено е броят на байтовете, освободени за комуникация.

Така че, когато B казва, че 100B е налице за следващото съобщение, 100B е прозорецът в синдрома на глупавия прозорец. Тоест, това е размерът на буфера. С неговия собствен недостатък механизмът TCP / IP може да намали размера на буфера за всяка комуникация / данни, идващи от А. Тоест, когато А изпраща съобщение, Б приема, че размерът на буфера е намален и изпраща по-малък номер. По този начин размерът на прозореца продължава да намалява и в една точка комуникацията просто спира, тъй като B изпраща 0Б като размер на прозореца.

Как работи синдромът на глупавите прозорци

Съгласно горния пример на А и Б, ако B изпраща 1000В като размер на прозореца, А ще го раздели на две 500Б и ще изпрати два пакета от 500Б. При получаване на първия пакет B ще изпрати потвърждение, че 500B е налице за прозореца, тъй като вторият пакет все още предстои да бъде получен. A приема, че 500B е размера на прозореца и следователно изпраща два пакета от 250В. Докато в B, 500B се използва и 500 е току-що получено, то ще изпрати 0B като налично. В този момент A ще приеме, че няма наличен прозорец, въпреки че може да се случи, че буферът е празен, тъй като процесорът използва данните там. A пак ще изпрати по-малък пакет, за да види дали е налице прозорец. Ако съдържанието на буфера при В още не е премахнато, то все пак ще получи 0 като отговор / потвърждение.

По този начин размерът на прозореца продължава да намалява, тъй като B изпраща потвърждение всеки път, когато получава пакет от А. Този размер обикновено е по-малък от предишното потвърждение, тъй като B получава пакети данни на части. Нямаше да има проблем, ако А можеше да изпрати пакет достатъчно голям, за да покрие буферния размер на B в даден момент. Но това ще изисква допълнителни механизми и следователно синдром на глупавия прозорец. Комуникацията спира, след като А получава 0 два или три пъти.

Как да се предотврати синдром на глупавия прозорец (SWS)

Има един прост алгоритъм, който трябва да се изпълни, за да се отървете от SWS. При получаване на първоначалния пакет B изпраща половината от действително наличното пространство като прозореца. Това ще направи A да изпрати по-малки пакети. Следователно, когато пакетите станат твърде малки, тогава B изпраща общия размер на буфера, така че А може да започне да изпраща по-големи байтове данни отново.

С други думи, ако 1000B е налице, B изпраща 500B като потвърждение. Съответно, А изпраща 250 б х 2 пакета. За това А получава 100Б като потвърждение. Когато получи 50B пакет, B изпраща 1000B - 50В на А. Това прави целия разговор отново работещ. Това може да предизвика малко забавяне в обработката, но ще предотврати появата на синдром на глупавия прозорец и спирането на целия разговор.

За да обобщим, SWS се основава на размера на буфера, който е на разположение на получателя, и предполагаемия размер, изчислен от изпращача. За да се предотврати SWS, се въвежда закъснение и умишлено по-малък размер на прозореца се повтаря, докато размерът на пакета стане твърде малък. След това получателят разкрива действително наличния размер на прозореца. Целият процес продължава да се повтаря, докато комуникацията завърши.

Въпреки че може да съм използвал прозореца на думите и буфера взаимозаменяемо. Не искам да кажа разлика между тях. В SWS проучванията буферът е прозорецът.

Ако имате нужда от повече информация, можете да намерите подробно обяснение тук на tcpipguide.com.

Препоръчано: