|
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:
Opóźnienie propagacji to czas, w którym pakiet pokonuje drogę z jednego końca łączą do drugiego.
Opóźnienie przetwarzania (serialization delay) to czas niezbędny do przetworzenia pakietu na szeregowe bity transmisji. Czas ten możemy w prosty sposób obliczyć dzieląc rozmiar pakietu przez przepustowość łącza.
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ę.
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.
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:
dla 10Mbps 880/(10^7) = 88 us
dla 100Mbps 88-/(10^8) = 8,8 us
4. Zadania laboratoryjne
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
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ń.
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.
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).
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.
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.
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:
1,25pkt za wejściówkę w postaci testu wielokrotnego wyboru
0,75pkt za poprawne wykonanie wszystkich zadań oraz poprawne wypełnienie protokołu
~ 9 ~