Rozwiązywanie problemów z opóźnieniami sieciowymi za pomocą Wireshark

Opublikowany: 2021-10-07

Opóźnienie sieciowe to opóźnienie w przesyłaniu żądań lub danych ze źródła do miejsca docelowego w ekosystemie sieciowym. Zobaczmy, jak możesz rozwiązać problemy z opóźnieniami sieci.

Każda czynność wymagająca użycia sieci, taka jak otwieranie strony internetowej, klikanie łącza lub otwieranie aplikacji i granie w grę online, nazywana jest czynnością. Aktywność użytkownika to żądanie, a czas odpowiedzi aplikacji internetowej to czas odpowiedzi na to żądanie.

To opóźnienie obejmuje również czas potrzebny serwerowi na wykonanie żądania. W efekcie określa się ją jako podróż w obie strony – czas potrzebny na zarejestrowanie, przetworzenie, a następnie odebranie przez użytkownika żądania i jego dekodowanie.

Termin „niskie opóźnienie” odnosi się do opóźnień przesyłania danych, które są stosunkowo krótkie. Z drugiej strony duże opóźnienia lub nadmierne opóźnienia są niepożądane, ponieważ pogarszają wrażenia użytkownika.

Jak naprawić opóźnienie sieci?

W Internecie dostępnych jest wiele narzędzi i oprogramowania do analizy i rozwiązywania problemów z siecią. Niektóre są płatne, a niektóre są bezpłatne. Istnieje jednak narzędzie o nazwie Wireshark, które jest aplikacją o otwartym kodzie źródłowym i licencjonowaną na GPL, używaną do przechwytywania pakietów danych w czasie rzeczywistym. Wireshark to najpopularniejszy i powszechnie używany analizator protokołów sieciowych na świecie.

Pomoże Ci w przechwytywaniu pakietów sieciowych i wyświetlaniu ich w szczegółach. Możesz użyć tych pakietów do analizy w czasie rzeczywistym lub offline po przechwyceniu pakietów sieciowych. Ta aplikacja umożliwia badanie ruchu sieciowego pod mikroskopem, filtrowanie i drążenie go w celu znalezienia źródła problemów, pomoc w analizie sieci i ostatecznie w bezpieczeństwie sieci.

Co powoduje opóźnienie sieci?

Kilka głównych powodów powolnej łączności sieciowej, w tym:

  • Wysoka latencja
  • Zależności aplikacji
  • Utrata pakietów
  • Urządzenia przechwytujące
  • Nieefektywne rozmiary okien

W tym artykule zbadamy każdą przyczynę opóźnień w sieci i sposoby rozwiązania problemów z Wireshark.

Badanie za pomocą Wireshark

Wysoka latencja

Wysokie opóźnienie odnosi się do czasu potrzebnego na przesłanie danych z jednego punktu końcowego do drugiego. Wpływ dużych opóźnień na komunikację sieciową jest ogromny. Na poniższym diagramie przyjrzymy się jako przykład czasowi podróży w obie strony pobierania pliku na ścieżce o dużym opóźnieniu. Czas opóźnienia w obie strony może często przekraczać jedną sekundę, co jest niedopuszczalne.

wireshark4

  • Przejdź do statystyk Wireshark.
  • Wybierz opcję Wykres strumienia TCP.
  • Wybierz wykres czasu podróży w obie strony, aby dowiedzieć się, ile czasu zajmuje pobranie pliku.

Wireshark służy do obliczania czasu podróży w obie strony na ścieżce, aby sprawdzić, czy jest to przyczyną wadliwej wydajności sieci komunikacyjnej TCP (Transmission Control Protocol). TCP jest używany w różnych aplikacjach, w tym w surfowaniu online, transmisji danych, protokole przesyłania plików i wielu innych. W wielu przypadkach system operacyjny można dostosować, aby działał wydajniej na kanałach o dużych opóźnieniach, zwłaszcza gdy hosty korzystają z systemu Windows XP.

Zależności aplikacji

Niektóre aplikacje są zależne od innych aplikacji, procesów lub komunikacji z hostem. Załóżmy na przykład, że aplikacja bazy danych polega na łączeniu się z innymi serwerami w celu pobrania elementów bazy danych. W takim przypadku niska wydajność na tych innych serwerach może pogorszyć czas ładowania aplikacji lokalnej.

Weźmy na przykład przeglądanie stron internetowych, w którym serwer docelowy odwołuje się do kilku innych witryn. Na przykład, aby załadować stronę główną witryny, www.espn.com, musisz najpierw odwiedzić 16 hostów, które dostarczają reklamy i treści dla głównej strony www.espn.com.

wireshark-3

Na powyższym rysunku okno dystrybucji obciążenia HTTP w Wireshark wyświetla listę wszystkich serwerów używanych przez stronę główną www.espn.com.

Utrata pakietów

Jednym z najczęstszych problemów, jakie napotykam w sieciach, jest utrata pakietów. Utrata pakietów ma miejsce, gdy pakiety danych nie są prawidłowo dostarczane od nadawcy do odbiorcy przez Internet. Gdy użytkownik odwiedza witrynę i zaczyna pobierać elementy witryny, pominięte pakiety powodują ponowne transmisje, zwiększając pewność pobrania plików internetowych i spowalniając cały proces pobierania.

Ponadto, gdy aplikacja korzysta z protokołu TCP, brakujące pakiety mają szczególnie negatywny wpływ. Gdy połączenie TCP wykryje upuszczony pakiet, przepustowość automatycznie spada, aby zrekompensować problemy z siecią.

Stopniowo poprawia się do bardziej akceptowalnego tempa, aż do odrzucenia następnego pakietu, co powoduje znaczne zmniejszenie przepustowości danych. Pobierane duże pliki, które w innym przypadku powinny łatwo przepływać przez sieć, znacznie cierpią z powodu utraty pakietów.

Jak to wygląda w przypadku utraty pakietu? To jest dyskusyjne. Utrata pakietów może przybrać dwie formy, jeśli program działa przez TCP. W jednym przykładzie odbiornik monitoruje pakiety na podstawie ich numerów sekwencyjnych i wykrywa brakujący pakiet. Klient wysyła trzy żądania dotyczące brakującego pakietu (podwójne potwierdzenia), co skutkuje ponownym wysłaniem. Gdy nadawca zauważy, że odbiorca nie potwierdził odbioru pakietu danych, limit czasu nadawcy i retransmisja pakietu danych.

Wireshark

Wireshark wskazuje, że wystąpiło przeciążenie sieci, a wielokrotne potwierdzenia powodują ponowną transmisję problematycznego ruchu poprzez kodowanie go kolorami. Duża liczba zduplikowanych potwierdzeń wskazuje na utratę pakietów i znaczne opóźnienie w sieci.

Aby poprawić szybkość sieci, kluczowe jest dokładne określenie miejsca utraty pakietów. Gdy nastąpi utrata pakietów, przesuwamy Wireshark w dół ścieżki, aż utrata pakietów nie będzie widoczna. W tej chwili jesteśmy „na górze” od punktu zrzutu pakietów, więc wiemy, na czym skoncentrować nasze wysiłki związane z debugowaniem.

Urządzenia przechwytujące

Policjanci ruchu sieciowego to urządzenia łączące, które dokonują wyboru przekazywania, takie jak przełączniki, routery i zapory. W przypadku utraty pakietów należy zbadać te urządzenia jako prawdopodobną przyczynę.

Te łączące urządzenia mogą dodać opóźnienia do ścieżki. Na przykład, jeśli włączona jest priorytetyzacja ruchu, możemy zaobserwować dodatkowe opóźnienie wstrzykiwane do strumienia o niskim poziomie priorytetu.

Nieefektywne rozmiary okien

Oprócz systemu operacyjnego Microsoft istnieją inne „okna” w sieci TCP/IP.

  • Okno przesuwne
  • Okno odbiornika
  • Okno kontroli zatorów

Te okna razem tworzą wydajność komunikacji sieciowej opartej na protokole TCP. Zacznijmy od zdefiniowania każdego z tych okien i ich wpływu na przepustowość sieci.

Okno przesuwne

Gdy dane są potwierdzane, przesuwane okno jest wykorzystywane do rozgłaszania kolejnych segmentów TCP w sieci. Nadawca otrzymuje potwierdzenia za przesłane fragmenty danych, przesuwane okno się rozszerza. Dopóki nie ma utraconych transmisji w sieci, można przesyłać większe ilości danych. Gdy pakiet zostanie utracony, przesuwane okno kurczy się, ponieważ sieć nie może zarządzać zwiększoną ilością danych na linii.

Okno odbiornika

Okno odbiornika stosu TCP to przestrzeń bufora. Otrzymane dane są przechowywane w tej przestrzeni buforowej, dopóki aplikacja ich nie odbierze. Okno odbiornika wypełnia się, gdy aplikacja nie nadąża za szybkością odbioru, co ostatecznie prowadzi do scenariusza „okna zerowego”. Cała transmisja danych do hosta musi zostać zatrzymana, gdy odbiornik ogłosi stan zerowego okna. Przepustowość spada do zera. Metoda znana jako Window Scaling (RFC 1323) umożliwia hostowi zwiększenie rozmiaru okna odbiornika i obniżenie prawdopodobieństwa scenariusza z zerowym oknem.

wireshark2

Powyższy rysunek przedstawia 32-sekundowe opóźnienie w komunikacji sieciowej ze względu na scenariusz z zerowym oknem.

Okno zatoru

Okno przeciążenia określa maksymalną ilość danych, jaką może obsłużyć sieć. Na tę wartość składają się szybkość transmisji pakietów nadawcy, szybkość utraty pakietów w sieci oraz rozmiar okna odbiorcy. Okno przeciążenia zwiększa się stopniowo podczas prawidłowej komunikacji sieciowej, aż do zakończenia przesyłania lub osiągnięcia „pułapu” ustalonego przez stan sieci. Możliwości transmisji nadawcy lub rozmiar okna odbiorcy. Każde nowe połączenie rozpoczyna od nowa procedurę negocjacji rozmiaru okna.

Wskazówki dotyczące zdrowej sieci

  • Dowiedz się, jak wykorzystać Wireshark jako zadanie pierwszej odpowiedzi, aby szybko i skutecznie wykryć źródło niskiej wydajności.
  • Zidentyfikuj źródło opóźnienia ścieżki sieciowej i, jeśli to możliwe, zmniejsz je do akceptowalnego poziomu.
  • Znajdź i rozwiąż źródło utraty pakietów.
  • Sprawdź rozmiar okna transmisji danych i, jeśli to możliwe, zmniejsz go.
  • Sprawdź wydajność urządzeń przechwytujących, aby sprawdzić, czy powodują one opóźnienia lub odrzucają pakiety.
  • Zoptymalizuj aplikacje, aby mogły dostarczać większe ilości danych i, jeśli to możliwe, pobierać dane z okna odbiornika.

Zawijanie

Przeanalizowaliśmy główne przyczyny problemów z wydajnością sieci, ale jednym z czynników, których nie można pominąć, jest brak zrozumienia zachowania komunikacji sieciowej. Wireshark zapewnia widoczność sieci, podobnie jak zdjęcia rentgenowskie, a skany CAT zapewniają wgląd w ludzkie ciało w celu uzyskania dokładnych i szybkich diagnoz. To narzędzie stało się niezbędnym narzędziem do lokalizowania i diagnozowania problemów z siecią.

Powinieneś teraz zbadać i rozwiązać wydajność sieci za pomocą kilku filtrów i narzędzi za pomocą Wireshark.