Pomiar wydajności urządzeń sieciowych instrukcja


Laboratorium Sieci Ethernet

Mariusz Dzwonkowski

Tomasz Fabisiak

Michał Hoeft

[POMIAR WYDAJNOŚCI URZĄDZEŃ SIECIOWYCH]

PRZEŁĄCZNIKI I KONCENTRATORY

1. Cel ćwiczenia

Celem ćwiczenia jest zaznajomienie studentów z problemem wydajności urządzeń sieciowych. Podczas laboratorium pomierzone zostaną opóźnienia między stacjami, które pomogą w określeniu opóźnienia wprowadzanego przez sprzęt sieciowy. Tym samym, zostaną porównane różne typy sprzętu sieciowego, różnej klasy pod względem wydajnościowym.

Na zajęciach laboratoryjnych do pomiaru czasu RTT zastanie wykorzystane pakiet UDPmon. Jest to zestaw trzech programów z których jeden pełni rolę serwera (udpmon_resp), a pozostałe dwa odpowiednio służą do pomiaru czasu RTT (udpmon_req) oraz programu do pomiaru całego zestawu parametrów opisujących wydajność urządzeń sieciowych takich jak OWD, Jitter, współczynnika strat pakietów, zmiany kolejności pakietów (udpmod_bw_mon). Ponieważ wyniki podawane przez program udpmod_bw_mon są mało czytelne, a realizując program zajęć jesteśmy ograniczeni czasowo skupimy się jedynie na pomiarach RTT programem udpmon_req. Na stronie internetowej twórcy tego oprogramowania można znaleźć zestaw skryptów do pomiarów różnorodnych charakterystyk sieci oraz arkusz kalkulacyjny pozwalający na ich wizualizację.

2. Opis stanowiska pomiarowego

Narzędziem, które będzie wykorzystywane będzie skrypt eth.pl znajdujący się w katalogu /home/kompX/sbin (gdzie X oznacza numer komputera).

Zadaniem skryptu jest wyłączenie NetworkManager'a, zdjęcie adresów IP ze wszystkich interfejsów oraz ich wyłączenie, a następnie konfigurację sieci na interfejsie używanym w ćwiczeniach.

Przed przystąpieniem do ćwiczeń należy uruchomić skrypt przechodząc do jego folderu i uruchomić go poleceniem: ./eth.pl

Do urządzeń sieciowych przypisane zostaną adresy według schematu: 192.168.0.X, gdzie X to numer komputera.

Prędkość i duplex:

Aby poprawnie wykonać kalibrację oraz resztę pomiarów należy monitorować stan kart sieciowych za pomocą polecenia ethtool.

Aby sprawdzić stan karty należy wywołać polecenie: ethtool ethX, gdzie X to numer interfejsu

Aby ustawić ręcznie tryb pracy karty na 10Mbps-half duplex należy wydać polecenie:

ethtool -i ethX speed 10 duplex half autoneg on

Aby przywrócić opcję autonegocjacji należy wywołać polecenie:

ethtool -i ethX autoneg on

Obsługa UDPmon:

Podstawowym narzędziem pomiarowym będzie pakiet UDPmon. Na laboratorium bedziemy korzystać z dwóch aplikacji: udpmon_resp oraz ­udpmon_req. Są to odpowiednio serwer, który będzie odpowiadał na żądania oraz klient, który te żądania będzie wysłał.

Oba pliki znajdują się w katalogu /home/kompX/sbin

Na jednym z dwóch stanowisk powinien być uruchomiony serwer poleceniem: ./udpmon_resp

Natomiast na drugim stanowisku uruchmiamy program udpmon_req następującym poleceniem:

./udpmon_req -p64 -r64 -d192.168.0.X -l1000 -w 10000

p,r - rozmiar pakietów nadawanych oraz odbieranych

d - adres serwera

l - liczba wykonanych pomiarów

w - opóźnienie pomiędzy poszczególnymi pomiarami wyrażone w µs.

Obciążanie łącza:

Narzędziem wykorzystywanym do symulacji dużego ruchu na łączu podczas laboratorium będzie narzędzie Iperf.

Program ten uruchamiamy w jednym z dwóch trybów, na każdej maszynie w innym.

Na jednej maszynie uruchamiamy Iperf'a jako serwer poleceniem: iperf -su

s - uruchom jako serwer

u - nasłuchuj ruchu UDP

Drugi z komputerów będzie klientem generującym ruch. Iperf'a uruchamiamy w następujący sposób:

iperf -c 192.168.0.X -b 100M -u -t 60 -i 1

c 192.168.0.X - adres serwera

b - przepływność z jaką chcemy przesyłać

u - generuj ruch UDP

t 60 - czas generowania ruchu równy 60s

i 1 - interwał wyświetlania informacji na ekranie ustawiony na 1s

Zalewanie przełącznika:

Do zalewania przełączników używany będzie program macof:

macof -i "ethX"

3. Wstęp teoretyczny

Zarządzanie wydajnością sieci to proces pozwalając na optymalizację wykorzystania oraz zwiększenia produktywności posiadanego sprzętu, jak również redukcji lub zmniejszenia kosztów jego wymiany. Aby mówić o zarządzaniu i określeniu wydajności musimy najpierw dokonać pomiarów odpowiednich parametrów, które w danym przypadku są istotne.

1. Parametry wydajności sieci

Do najważniejszych parametrów zaliczamy:

One-Way Delay
OWD (one-way delay) to czas jaki zajmuje pakietowi przejście od źródła do punktu docelowego. Parametr ten został szczegółowo opisany w dokumencie RFC 2679.

Na OWD istotne znaczenie mają dwa zjawiska występujące w połączeniach sieciowych:

W zależności od zastosowanych mechanizmów wykrywania, unikania kolizji oraz retransmisji do tego czasu w niektórych okolicznościach trzeba doliczyć czas wynikający z danego rozwiązania. W przypadku sieci Ethernet wykorzystujących mechanizm CSMA/CD do opóźnienia propagacji i opóźnienia przetwarzania doliczyć musimy niedeterministyczny czas oczekiwania na ponową transmisję.

0x08 graphic
Pomiar opóźnienia OWD może polegać na przesłaniu informacji o czasie wysłania pakietu, po jego otrzymaniu strona odbiorcza rejestruje czas odebrania. Metoda ta wymaga synchronizacji zegarów między stacjami (np. NTP).

Round-Trip Time
RTT (round-trip time) to czas w jakim pakiet pokonuje drogę od nadawcy do odbiorcy i z powrotem. Na wartość RTT składają się dwie wartości OWD (nadawca -> odbiorca, odbiorca -> nadawca) oraz czas odpowiedzi odbiorcy, który zależy od obciążenia jego zasobów. Wartość RTT odzwierciedla czas niezbędny do uzyskania potwierdzenia otrzymania pakietu, a jego predykcja jest wykorzystywana np. w protokole transportowym TCP i ma wpływ na maksymalną przepustowość.

W trakcie zajęć laboratoryjnych wydajność sieci zostanie określona na podstawie pomiaru wartości RTT z wykorzystaniem żądania Echo protokołu ICMP zaimplementowanego w popularnym narzędziu Ping, które zostało opisane w dalszej części opracowania.

Jitter

Jitter jest parametrem określającym zmienność opóźnienia. Ma on szczególne znaczenie w przypadku systemów czasu rzeczywistego oraz systemów telekomunikacyjnych oraz multimedialnych. W celu jego minimalizacji implementuje się bufory, które pozwalają płynne przekazywanie pakietów z stałym opóźnieniem. Przyczyną występowania jitter'a jest niesynchroniczny i niedeterministyczny charakter sieci.

Narzędzia pomiarowe pozwalające na wyznaczenie jittera najczęściej posiadają zaimplementowane rozwiązanie z dokumentu RFC 1889 opisującego protokół RTP, które przedstawia następujące wzory:

D(i-1, i) = (R(i)-S(i)) - (R(i-1) - S(i-1)) = OWD(i) - OWD(i-1)

J (i) = J(i-1) + ( |D(i-1, i)| - J(i-1)) / 16

Powyższe obliczenia są wykonywane w popularnych aplikacjach pozwalających na pomiar wydajności sieci np. mrt, czy iperf.

2. Pomiar RTT z wykorzystaniem protokołu ICMP

Protokół ICMP (Internet Control Message Protocol) dostarcza nam wielu funkcjonalności. Jedną z nich możemy wykorzystać do pomiaru czasu RTT tak jak zostało to zrobione w popularnym narzędziu Ping. W trakcie pomiaru stosowane są dwa typy komunikatów Echo Request (typ 8) oraz Echo Response (typ 0). Echo Request w polu danych może zawierać znacznik czasu (domyślnie pierwsze 8 bajtów) wygenerowania pakietu. Echo Replay kopiuje zawartość pola danych komunikatu Echo Request i przesyła je z powrotem do nadawcy. Strukturę komunikatów Echo Request i Repley przedstawia rysunek:

0

31

Typ (8 Request, 0 Repley)

Kod = 0

Suma kontrolna

Identyfikator

Numer sekwencyjny

Dane

Odbiorca rejestrując czas otrzymania takiego pakietu oraz odczytując czas nadania komunikatu Echo Request z pola danych komunikatu Echo Reply może wyznaczyć czas RTT. Działanie tego mechanizmu obrazuje poniższy rysunek.

0x08 graphic

Należy zwrócić uwagę na różnicę funkcjonalności narzędzia ping dla różnych systemów operacyjnych. Domyślnie systemy z rodziny Linux pozwalają na rejestrację czasu z dokładnością rzędu mikrosekund natomiast z rodziny Windows jedynie z dokładnością do milisekund. Pomiaru rzędu milisekund nie zapewniają nam wystarczającej dokładności.

3. Opóźnienia spowodowane przez urządznia sieciowe

Urządzenia sieciowe takie jak huby czy switche zwiększają funkcjonalność sieci. Pozwalają połączyć więcej stanowisk, zwiększają zasięg sieci, ograniczają domeny kolizyjne. Niestety ich praca widocznie wpływa na pogorszenie wydajności naszej sieci. Aby zrozumieć przyczynę powstania dodatkowych opóźnień zamieszczamy opisy poszczególnych urządzeń sieciowych skupiając się głównie na koncentratorach i przełącznikach, które będą wykorzystywane w trakcie laboratorium.

3.1. Koncentrator

Jest urządzeniem sieciowym pracującym w pierwszej warstwie. Retransmituje odebrane bity z jednego portu na pozostałe porty. Nie analizuje odebranych informacji w związku z czym nie występuje w przypadku jego użycia opóźnienie związane z logicznym przetwarzaniem ramek. Koncentrator rozszerza niestety domenę kolizyjną, a zatem przy występowaniu zwiększonego natężenia ruchu kolizje będą stosunkowo częste, a wydajność sieci spadnie.

3.2. Przełącznik

Jest urządzeniem sieciowym pracującym w warstwie drugiej. Analizuje odebrane informacje na poziomie ramki ethernetowej. Na ich podstawie przesyła ramkę tylko na port gdzie znajduje się jej odbiorca. Proces przetwarzania nagłówka ramki ethernetowej wprowadza dodatkowe opóźnienia o różnej wartości w zależności od zaimplementowanego w switchu rozwiązania. Możemy wyróżnić trzy metody przełączania:

Store-and-forward

Przełącznik odbiera i zachowuje wszystkie bity tworzące ramkę, sprawdza poprawność odebranej sumy kontrolnej FCS i w przypadku jej poprawności transmituje ramkę na odpowiedni port. Rozwiązanie to wprowadza znaczne opóźnienia jednak pozwala ograniczyć transmisję uszkodzonych ramek.

Cut-through

Przełącznik przesyła ramkę tak szybko jak tylko jest to możliwe, czy po odebraniu adresu docelowego. Metoda ta wprowadza znacznie mniejsze opóźnienia, ale nie pozwala przełącznikowi na filtrowanie uszkodzonych ramek.

Fragment-free

Metoda stara się połączyć zalety powyższych. Przełącznik dokonuje transmisji dopiero po odebraniu pierwszych 64 bajtów ramki, co pozwala na uniknięcie transmisji ramek uszkodzonych w trakcie tzw. wczesnej kolizji.

Switch jako urządzenie sieciowe ograniczające domeny kolizyjne niweluje opóźnienia związane z ponowną transmisja ramki przewidziane w mechanizmie CSMA/CD.

Należy również pamiętać o ograniczonych zasobach przełączników, które najczęściej nie dysponują zasobami pozwalającymi na analizę ramek przychodzących na wszystkie porty jednocześnie.

4. Wpływ trybu połączenia na wydajność sieci

Wybrany w trakcie autonegocjacji albo ustawiony ręczenie tryb połączenia ma wpływ na wydajność sieci. Ustawienia związane z rodzajem transmisji wiążą się z częstszym (half-duplex) albo rzadszym (full-deplex) występowaniem kolizji, a co za tym idzie z opisanymi wcześniej dodatkowymi opóźnieniami związanymi z mechanizmem CSMA/CD.

Prędkość transmisji bezpośrednio przekłada się na wartość opóźnienia przetwarzania. Przykładowo nadanie ramki zawierającej komunikat ICMP Echo Request, która zawiera 110 bajtów (łącznie z preambuła i sumą kontrolną) zajmuje odpowiednio:

4. Zadania laboratoryjne

  1. Kalibracja

W celu kalibracji stanowisk należy połączyć obydwa komputery bezpośrednio krosowanym kablem ethernetowym. Następnie wykonać 3 pomiary opóźnienia przekazywanych pakietów. W tym celu należy wydać polecenie: ./eth.pl IP-sąsiada

0x08 graphic
0x08 graphic

0x08 graphic

Dla każdego z 3 pomiarów zanotować wartość średnią opóźnienia.

UWAGA!

W momencie gdy wartość dewiacji bądź wartość maksymalnego opóźnienia będzie znacząco odbiegać od wartości średniej, pomiar należy powtórzyć. Tyczy się to także wszystkich następnych zadań.

  1. Połączenie z hubem

Ćwiczenie składa się z 3 części. W pierwszej części wszystkie stanowiska zostaną połączone w pary. Dla dwóch par przewidziane są huby firmy Olicom, natomiast dla pozostałych dwóch par huby firmy 3Com. Hub należy połączyć tak jak na poniższym rysunku i sprawdzić wprowadzane opóźnienie.

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Druga część ćwiczenia polega na utworzeniu 2 grup 4-osobowych. Każda grupa podłącza 4 stanowiska do jednego huba i pinguje się analogicznie jak w części pierwszej tego ćwiczenia. Zbadane zostanie w ten sposób opóźnienie wprowadzane przez hub przy generowaniu niewielkiego ruchu. Grupa powinna sporządzić 6 pomiarów (odpowiednio po 3 od każdej pary).

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Trzecia część ćwiczenia polega na wygenerowaniu dużego ruchu poprzez zalanie huba pakietami za pośrednictwem polecenia macof. Przy niezmienionej konfiguracji, dwa stanowiska, w obrębie jednej grupy 4-osobowej, dokonują zalewania. Na trzecim stanowisku należy wykonać 3 pomiary opóźnienia pingując stanowisko czwarte.

  1. Połączenie ze switchem

Ćwiczenia analogiczne do ćwiczenia drugiego, z tą różnicą, że wykorzystywanym urządzeniem sieciowym jest przełącznik. Na laboratorium dostępne będą dwa rodzaje przełączników: firmy Olicom i EdgeCore. Celem ćwiczenia będzie porównanie właściwości obydwu przełączników i wspólne omówienie zanotowanych wniosków.

Pierwsza część ćwiczenia zakłada podział grupy na dwa 4-osobowe zespoły, gdzie każdy zespół otrzyma inny switch. Każda grupa wykonuje (tak jak w przypadku połączenia z hubem) 6 pomiarów - po 3 na każdą parę w obrębie jednej grupy.

Przetestować wpływ dużego wygenerowanego ruchu na wartość opóźnienia. Na stanowiskach „Pary 1” wygenerować dodatkowy ruch używając iperf, natomiast na stanowiskach „Pary 2” przeprowadzić ponownie pomiar udpmon.

Sprawdzić dodatkowo podczas wykonywania iperf'a wpływ zmienności obciążenia na generowane opóźnienie. Zakres zmian pasma BW przyjąć w oparciu o poniższa tabelkę. Na podstawie uzyskanych wyników sporządzić wykres opóźnienia (dla kalibracji i switcha) w funkcji pasma BW.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Druga część ćwiczenia polega na zalaniu przełączników poleceniem macof. Tutaj także analogicznie jak w poprzednim podpunkcie: dwa komputery dokonują zalewania, a trzeci pinguje czwartego.

Następnie dla przełącznika EdgeCore należy przeprowadzić pomiary opóźnienia dla zmiennej długości ramki ethernetowej. W tym celu należy każdorazowo dla danej długości przeprowadzić dodatkowo kalibrację. Długości ramek przyjąć według poniższej tabeli. W oparciu o uzyskane wyniki narysować wykres opóźnienia (dla kalibracji i switcha) w funkcji długości ramki.

Część trzecia to wspólne omówienia zanotowanych wniosków dotyczących opóźnienia wprowadzanego przez przełączniki obydwu firm.

5. Punktacja za laboratorium

Za laboratorium można maksymalnie uzyskać 2pkt. Punkty przydzielane będą zgodnie z podziałem:

~ 9 ~



Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron