Wskaźnik utraty pakietów za pomocą iperf i tcpdump

10

Testowałem linię pod kątem jakości łącza iperf. Zmierzona prędkość (port UDP 9005) wynosiła 96 Mb / s, co jest w porządku, ponieważ oba serwery są połączone z Internetem z szybkością 100 Mb / s. Z drugiej strony wskaźnik utraty datagramów wyniósł 3,3-3,7%, co znalazłem trochę za dużo. Korzystając z szybkiego protokołu przesyłania, nagrałem pakiety po obu stronach tcpdump. Następnie obliczyłem utratę pakietów - średnio 0,25%. Czy ktoś ma wyjaśnienie, skąd ta wielka różnica może wynikać? Jaka jest Twoim zdaniem dopuszczalna utrata pakietów?

stefita
źródło
Z którego protokołu korzystałeś podczas wąchania za pomocą tcpdump? Czy był tcp czy udp?
PiL
Użyłem udp do obu testów.
stefita
Uhm ... mógłbyś spróbować z innym snifferem pakietów?
PiL
2
Wireshark użyje tego samego zaplecza co tcpdump do przechwytywania pakietów, więc nie zapewni różnych wyników (libpcap lub winpcap, w zależności od platformy).
Jed Daniels
1
Czy możesz zmierzyć utratę pakietów tcpdumppodczas iperfsesji? Jest to bardziej właściwe oszacowanie niż twoje. Po drugie monitoruj status serwera podczas testowania - czy może po prostu upuszcza pakiety?
lexsys

Odpowiedzi:

3

Doświadczyłem znacznej utraty danych z iPerf w trybie UDP, ponieważ procesor nie był w stanie nadążyć. Z jakiegoś powodu iPerf z UDP wydaje się być znacznie bardziej obciążający procesor niż iPerf z TCP. Czy odczuwasz te same odsetki strat po ustawieniu iPerf na połowę stawki?

Aby odpowiedzieć na drugie pytanie dotyczące dopuszczalnej utraty pakietów, tak naprawdę zależy to od uruchomionej aplikacji i natężenia ruchu. Naprawdę, nie powinno być żadnych strat, jeśli jesteś poniżej limitu przepustowości. W przypadku większości rzeczy prawdopodobnie nie narzekałbym zbytnio na 0,25%, ale to wciąż duża strata, jeśli masz naprawdę wysokie stawki.

[EDYCJA 1] Kilka innych przemyśleń na ten temat:

  1. Spróbuj zwiększyć stawki iPerf. Jeśli gdzieś jest problem systemowy, prawdopodobne jest, że doświadczysz tego samego procentu straty bez względu na stawkę. Jeśli jesteś na granicy swojego sprzętu lub twój dostawca robi coś w rodzaju RED , wtedy prawdopodobnie nie będzie strat do pewnego poziomu, a następnie przyrostowo gorsza strata, tym wyżej.
  2. Wykonaj pomiar tcpdump sesji iPerf, aby sprawdzić, czy Twoje testy są dokładne.
  3. Wypróbuj iPerf z TCP. Nie zgłosi to utraty, ale jeśli zostaniesz utracony, połączenie nie będzie w stanie skalować się bardzo wysoko. Ponieważ opóźnienie również na to wpłynie, pamiętaj o przetestowaniu do punktu końcowego z możliwie najmniejszym opóźnieniem.
  4. W zależności od tego, jaki sprzęt masz wewnątrz połączenia, upewnij się, że znajdujesz się jak najbliżej. Na przykład, jeśli masz wiele przełączników między systemem testowym a routerem brzegowym, przejdź do przełącznika bezpośrednio podłączonego.
  5. Jeśli masz zarządzany przełącznik, sprawdź statystyki na nim, aby upewnić się, że tam nie występuje utrata. Zetknąłem się z tańszymi przełącznikami, które zaczynają spadać, gdy zbliża się do nich ruch 100 Ub / s UDP (głównie stare i tanie niezarządzane przełączniki).
  6. Wypróbuj jednocześnie iPerf z dwóch różnych klientów i dwóch różnych hostów, aby mieć pewność, że limit nie jest wynikiem użycia procesora lub taniej lokalnej karty sieciowej.
Jed Daniels
źródło
To może być dobry powód. Niestety nie mogę teraz przetestować z powodu problemów z zaporą ogniową. Wrócę do twojej odpowiedzi, jak tylko przeprowadzę nowy test.
stefita
0

Cóż, z TCP istnieją mechanizmy maksymalizujące wykorzystanie jednego przepływu, z UDP nie ma. Tak więc każda aplikacja musi stworzyć własne mechanizmy, więc prawdopodobnie każda aplikacja używa do tego innego podejścia. Prawdopodobnie Iperf pozwoli na utratę większej liczby pakietów, ponieważ próbuje osiągnąć maksymalną dostępną przepustowość, nie dbając o to, czy informacja zostanie odebrana, czy nie. Druga aplikacja prawdopodobnie spróbuje nie stracić wielu pakietów i zmniejszy szybkość pakietów do dostępnej przepustowości połączenia.

Rura
źródło
0

Czy używałeś programu tcpdump do sprawdzenia utraty pakietów podczas korzystania z iPerf, aby upewnić się, że utrata pakietów obliczona za pomocą tcpdump pasuje do iperf?

Możesz odkryć, że twoje metody pomiaru nie są porównywalne.

Craig
źródło
0

czy iperf automatycznie odrzuca pakiety, które wychodzą poza kolejność z UDP? Być może patrzysz na odrobinę fluktuacji połączenia.

Lloyd Baker
źródło