Syndrom głupiego okna
Syndrom głupiego okna ( SWS ) to problem w sieciach komputerowych spowodowany źle zaimplementowaną kontrolą przepływu TCP . Poważny problem może pojawić się podczas przesuwanego okna , gdy wysyłający program użytkowy tworzy dane powoli, odbierający program użytkowy powoli zużywa dane lub jedno i drugie. Jeśli serwer z tym problemem nie jest w stanie przetworzyć wszystkich przychodzących danych, prosi swoich klientów o zmniejszenie ilości danych wysyłanych jednocześnie (ustawienie okna w pakiecie TCP ). Jeśli serwer nadal nie jest w stanie przetworzyć wszystkich przychodzących danych, okno staje się coraz mniejsze, czasami do tego stopnia, że przesyłane dane są mniejsze niż nagłówek pakietu, przez co transmisja danych jest wyjątkowo nieefektywna. Nazwa tego problemu wynika z kurczenia się rozmiaru okna do „ głupiej ” wartości.
Ponieważ z przetwarzaniem każdego pakietu wiąże się pewien narzut , zwiększona liczba pakietów oznacza zwiększony narzut związany z przetwarzaniem zmniejszającej się ilości danych. Efektem końcowym jest miażdżenie .
Rozwiązanie
W przypadku braku synchronizacji między nadawcą a odbiorcą w zakresie przepustowości przepływu danych lub rozmiaru pakietu powstaje problem syndromu okna. Kiedy nadawca tworzy syndrom głupiego okna, algorytm Nagle'a . Rozwiązanie Nagle'a wymaga, aby nadawca wysłał pierwszy segment, nawet jeśli jest mały, a następnie czekał, aż otrzyma potwierdzenie ACK lub zgromadzi się segment o maksymalnym rozmiarze (MSS).
Kiedy syndrom głupiego okna jest tworzony przez odbiorcę, stosuje się rozwiązanie Davida D. Clarka. [ potrzebne źródło ] Rozwiązanie Clarka zamyka okno, dopóki nie zostanie odebrany kolejny segment o maksymalnym rozmiarze segmentu (MSS) lub bufor będzie w połowie pusty.
Istnieją 3 przyczyny SWS:
- Gdy serwer ogłosi Puste miejsce jako 0
- Gdy klient jest w stanie wygenerować tylko 1 bajt na raz
- Kiedy serwer jest w stanie zużyć tylko 1 bajt na raz
Podczas SWS skuteczność komunikacji jest bliska zeru, dlatego czas trwania SWS powinien być jak najkrótszy.
Niemądre unikanie okna po stronie wysyłania
Metoda heurystyczna , w której wysyłający TCP musi zezwolić aplikacji wysyłającej na wykonywanie wywołań „zapisu” i zbieranie danych przesyłanych w każdym wywołaniu przed przesłaniem ich do dużego segmentu. Wysyłający TCP opóźnia wysyłanie segmentów, dopóki nie zgromadzi rozsądnej ilości danych, co jest znane jako zbijanie.
Głupie unikanie okna po stronie odbiorczej
Metoda heurystyczna używana przez odbiorcę do utrzymywania wewnętrznego zapisu dostępnego okna i opóźniania informowania nadawcy o zwiększeniu rozmiaru okna do momentu, gdy będzie on w stanie przesunąć znaczną kwotę. Ta ilość zależy od rozmiaru bufora odbiornika i maksymalnego rozmiaru segmentu. Dzięki tej metodzie zapobiega się reklamom w małych oknach, w których odbierane aplikacje powoli pobierają oktety danych .
- Przybysz, Douglas E. (2006). Praca w Internecie z protokołem TCP/IP (wyd. 5). Prentice Hall: Upper Saddle River, NJ.
-
Postel, J. (1981). Plan przejścia NCP/TCP . P. 6. doi : 10.17487/RFC0801 . RFC801 . _ Źródło 5 października 2016 r .
Niektóre implementacje TCP nie chroniły przed syndromem głupiego okna.
Linki zewnętrzne
- Wyjaśnienie syndromu głupiego okna
- Zalecane rozwiązania po stronie nadawcy i klienta dotyczące syndromu głupiego okna