Rozdział O pomiarach prędkości transmisji w sieciach komputerowych Maciej SZMIT Politechnika Łódzka,Katedra Informatyki Stosowanej mszmit@kis.p.lodz..pl Streszczenie W referacie przedstawiono kilka uwag odnośnie do sposobu prowadzenia pomiarów rzeczywistej prędkości transmisji informacji w sieciach komputerowych. 1. Wstęp Szybkość transmisji danych w sieciach komputerowych jest jednym z czynników decydujących o komforcie ich użytkowania, a w skrajnych przypadkach o użyteczności konkretnej technologii sieciowej. Współczesnie zagadnienia dotyczące tematyki pomiarów szybkości transmisji rozpatruje się zazwyczaj z dwóch punktów widzenia: teoretycznego, posługującego się matematycznymi modelami ruchu sieciowego (dyscyplina naukowa zajmująca się tworzeniem i analizą takich modeli nazywana jest inżynierią ruchu sieciowego, ang. network traffic engineering, a liczne publikacje z tego zakresu powstają również w Polsce por. np. [5], [6], [8]-[12]) oraz praktycznego bazującego na wynikach otrzymanych przy pomocy licznych serwisów internetowych (np. [1] czy [2]), ewentualnie na szybkości przesyłu plików za pomocą protokołu ftp czy przesyłania komunikatów typu ICMP echo request (ping). Wyniki rozważań modeli teoretycznych, jak i rezultaty tego rodzaju uproszczonych pomiarów są niewątpliwie interesujące, jednak w przypadku rzeczywistych sieci komputerowych, w których celem administratora jest zazwyczaj optymalizacja osiąganych prędkości rzeczywistych, konieczne jest posłużenie się wyspecjalizowanymi narzędziami, mierzącymi w miarę możliwości dokładnie i precyzyjnie rzeczywiste wielkości. W niniejszym referacie przedstawione zostaną pewne uwagi dotyczące sposobu prowadzenia tego rodzaju pomiarów i interpretacji otrzymanych wyników.
2 M. Szmit 2. Pojęcia podstawowe Teleinformatyka jest dycypliną stosunkowo młodą, w której panuje pewien chaos terminologiczny potęgowany jeszcze przez producentów sprzętu sieciowego, którzy niejednokrotnie w rozmaitych ulotkach reklamowych zamieszczają informacje mogące nieuważnego odbiorcę wprowadzić w błąd. Dlatego wydawało się wskazane zamieszczenie w ramach niniejszego referatu propozycji definicji najważniejszych pojęć dotyczących szybkości transferu danych w sieciach komputerowych (są to definicje stosowane np w [7]) Przepustowość (ang. throughput) jest szybkością z jaką system komputerowy wysyła lub otrzymuje dane, mierzoną w bitach na sekundę (bps). Dla określonych technologii sieciowych podaje się maksymalną teoretyczną przepustowość (na przykład dla standardu fast ethernet wynosi ona 100 Mbps). Opóźnienie (ang. latency) jest definiowane jako czas, który upłynął pomiędzy rozpoczęciem nadawania pakietu przez stację wysyłającą, a rozpoczęciem odbierania go przez stację odbiorczcą (tzw. opóźnienie jednostronne). Jako miernika opóźnienia w rzeczywistych sieciach używa się często wskaźnika RTT (ang. Round Trip Time) czasu jaki upływa od wysłania pakietu do otrzymania odpowiedzi nań. Szerokość pasma transmisyjnego (ang. bandwidth) wyrażona w Hz jest dla sygnału analogowego różnicą częstotliwości sygnału, dla których transformanta Fouriera jest różna od zera. Dla sygnału cyfrowego często używa się zamiennie pojęć szerokość pasma i przepustowość. Rzeczywista szybkość (albo mniej dokładnie: prędkość) transmisji (ang. bitrate) jest rzeczywistą prędkością mierzoną w bitach na sekundę lub czasem w ramkach lub pakietach na sekundę z jaką system komputerowy wysyła lub otrzymuje dane. Z oczywistych względów prędkość transmisji jest niewiększa od przepustowości jaką oferuje dana sieć. W rzeczywistych sieciach występuje obok siebie wiele zjawisk znanych z modeli teoretycznych: transmisja z potwierdzeniami i bez potwierdzeń, kolejkowanie pakietów w buforach urządzeń sieciowych, utrata pakietów, protokoły zarządzania dostępem do łącza itd. Powodują one, że rzeczywista szybkość transmisji danych różni się nieraz znacznie od spodziewanych wartości. 3. Efektywna prędkość transmisji niezawodnej a zakłócenia Autorzy modeli teoretycznych rozpatrują oczywiście wyłącznie uproszczony obraz rzeczywistości, koncentrując się na jej jednym, bądź co najwyżej kilku aspektach i ignorując wszelkie pozostałe. Dla przykładu w artykule [5] Autorka omawiając skutki zakłóceń w protokole z potwierdzeniami (TCP) posłużyła się najprostszą postacią wzoru opisujacego tzw. zależność odwrotnego pierwiastka (efektywna szybkość transmisji jest odwrotnie proporcjonalna do pierwiastka z prawdopodobieństwa utraty pakietów):
O pomiarach prędkości transmisji w sieciach komputerowych 3 1 2 v= (1) RTT p gdzie v oznacza średnią prędkość transmisji, p jest prawdopodobieństwem utraty pakietu, zaś RTT jest czasem wędrówki pakietu w obie strony. W książce [4] rozpatruje się bardziej zaawansowane modele opisujące zachowanie się protokołu dla różnych rozkładów utraconych pakietów, na przykład model okresowego okna zakłóceń, w którym prędkość dana jest wzorem: 1 3 v= (2) RTT 2 p źródło: [4] str. 159, czy jeszcze bardziej szczegółowy model uwzględniający stochastyczny charakter zakłóceń, który prowadzi do wzoru: 1 8 5 + p 3p 3 X ( t) = (3) 3 2 5 RTT + 2 3p 12 źródło: [4] str. 162. W rzeczywistej sieci charakterystyka procesu utraty pakietów może być w ogóle nieregularna, w zależności od wywołującego ją zjawiska. Biorąc pod uwagę mechanizm rozszerzającego się okna (ang. sliding window) oczywite jest, że bardziej szkodliwe z punktu widzenia rzeczywistej szybkości transmisji są regularnie powtarzające się błędy (np uszkodzony co trzeci segment) uniemożliwiające powiększenie się okna potwierdzeń, niż grupa błędów dotyczących kolejnych segmentów (obrazowy przykład pokazany został na rys. 1)
4 M. Szmit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 N 3,4 5 N 6 7 8 N 9,10 ACk 11 N 12 13 14 N 15,16 17 3 4 6 9 10 12 15 16 3 4,6 ACk 9,10 12,15, 16 Łącznie: 17 segmentów pierwotnej transmisji w tym 5 uszkodzonych 9 potwierdzeń, 5 zaprzeczeń N do pierwszej transmisji 8 segmentów retransmitowanych bez błędów 4 potwierdzenia w procesie retransmisji W sumie w procesie transmisji wymieniono 43 segmenty 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 N 1 N 2 N 3 4 5 6,7 8,9 10,11, 12,13 N 14,15, 16,17 1 2 3 14 15 16 17 1 2 3,14 15,16 17 Łącznie: 17 segmentów pierwotnej transmisji w tym 5 uszkodzonych 6 potwierdzeń, 5 zaprzeczeń N do pierwszej transmisji 7 segmentów retransmitowanych bez błędów 5 potwierdzeń w procesie retransmisji W sumie w procesie transmisji wymieniono 40 segmentów Segment prawidłowy Segment uszkodzony Rys. 1. Różne rozkłady uszkodzonych pakietów i ich wpływ na liczbę retransmitowanych segmentów Dla uproszczenia przyjęto, że transmisja rozpoczyna się od okna o rozmiarze równym 1 (potwierdzany jest każdy segment), że odebranie dwóch kolejnych poprawnych okien powoduje podwojenie rozmiaru okna, że retransmisja rozpoczyna się po zakończeniu wysyłania całej serii segmentów i że przebiega już bez błędów. W przypadku pierwszym regularne powtarzanie błędów uniemożliwia powiększenie okna potwierdzeń (czyli na niemal każdy nadchodzący segment musi być wysyłane potwierdzenie acknowledgement, lub informacja o błędzie negative acknowledgement, N), w przypadku dolnym po pierwszej serii błędów transmisja odbywa się poprawnie i okno może zostać rozszerzone (jakkolwiek po wystąpieniu kolejnego błędu retransmisja dotyczyć będzie wszystkich segmentów w oknie). Z powyższego przykładu dość jasno widać, że choć przepustowosć (szerokość pasma cyfrowego) sieci nie zmieniła się, to efektywna prędkość transmisji (bitrate) będzie o kilka procent większa w przypadku dolnym (wymiana 40 pakietów zajmie mniej czasu niż wymiana 43 pakietów). Błędy odpowiadające przykładowi górnemu charakterystyczne są dla sytuacji, w której w sieci występuje wąskie gardło któreś z urządzeń nie nadąża z obsługą nadchodzących ramek (np. z powodu przepełnienia bufora lub z powodu uruchamiania zasobochłonnych procesów) i część z nich odrzuca, błędy odpowiadające przykładowi dolnemu
O pomiarach prędkości transmisji w sieciach komputerowych 5 mogą świadczyć o złym stanie infrastruktury kablowej (zakłócenia prowadzące do uszkodzenia części ramek). Jak widać z powyższego przykładu, aby wykonany pomiar prędkości transmisji mógł być wykorzystany w praktyce do podania charakterystyki sieci nie wystarczy zbadanie samej efektywnej prędkości transmisji. Nie będzie również wystarczające podanie dopdatkowo informacji o liczbie błędów. Merytorycznie wartościowe olpracowania wyników pomiarów muszą koniecznie zawierać również choćby bardzo pobieżny opis statystyczny rozkładu występujących błędów. 4. Efektywna prędkość transmisji a mechanizmy dostępu do łącza Protokoły II warstwy modelu ISO/OSI określają, między innymi, zasady dostępu do medium (Media Access Control, MAC). W literaturze stosunkowo najwięcej miejsca poświęca się zagadnieniom związanym z protokołami ATM (ang. Asynchronous Transfer Mode) oraz z protokołami z rodziny ethernet. Współcześnie większość sieci (niektórzy szacują ją na ponad 80% w skali świata, włączając w to nie tylko sieci lokalne ale również miejskie i rozległe) działa w oparciu o różne wersje protokołów z rodziny ethernet, które to protokoły oferują również nieporównywalną z innymi przepustowość (np światłowodowy ethernet 10 gigabitów na sekundę) i zasięg wystarczający do budowy sieci rozległych. Z puktu widzenia wpływu rozwiązań II warstwy modelu referencyjnego ISO/OSI na efektywną prędkość transmisji danych najbardziej efektowych przykładów dostarczały archaiczne obecnie standardy 10base2 i 10base5 (dziesieciomegabitowy ethernet wykorzystujący przewód koncentryczny) oraz pozostałe standardy ethernetu pracujące w trybie half-duplex. W trybie tym dostęp do łącza regulowany był za pomocą mechanizmu wykrywania kolizji (Carrier Sense Multiple Access with Collision Detection, CSMA/CD), czego konsekwencją były między innymi zjawiska drastycznego spadku efektywnej prędkości transmisji w przypadku występowania dużej liczby kolizji (tzw. burze kolizyjne, ang. collision storm) czy błędów takich jak kolizje opóźnione (ang. late collision). Jakkolwiek sieci wykorzystujące przewody koncentryczne nie są już współcześnie budowane (wyjąwszy tzw. sieci amatorskie), to mechanizmy zarządzania dostępem do medium korzystające ze zjawiska kolizji fizycznych są stosowane również w sieciach radiowych (CSMA/CA Carrier Sense, Multiple Access with Collision Avoidance), stąd też niektóre wnioski (dotyczące na przykład nieumieszczania w jednym segmencie sieci zbyt wielu stacji nadawczych) pozostają w mocy. Współczesne sieci pracują zazwyczaj w trybie full-duplex, w którym zjawisko kolizji fizycznych nie występuje i w którym stosuje się bardziej technicznie zaawansowany protokół dostępu do łącza (MAC). Z punktu widzenia tematyki niniejszego refeatu warto zwrócić uwagę na jeden z elementów zarządzania dostępem do łącza, jakim jest stosowanie specjalnych grupowych (ang. multicast) ramek zwanych PAUSE, które wykorzystywane są przez urządzenia sieciowe do zatrzymania procesu nadawania.
6 M. Szmit W sieci półdupleksowej w przypadku, w którym urządzenie sieciowe (najczęściej działający w trybie store-and-forward przełącznik lub most) nie mogło nadążyć z obsługą nadchodzących ramek, wysyłało na wszystkie swoje porty ciąg naprzemiennych zer i jedynek (tak jak ma to miejsce w preambule ramki) żeby w ten sposób przez spowodowanie zajętości łącza powstrzymać nadawców. W sieciach pracujących w trybie pełnego dupleksu do tego celu używana jest wspomniana ramka PAUSE. Jedną z sytuacji, w której konieczne są takie zabiegi jest transmisja z kilku stacji na jeden z portów przełącznika (na przykład komunikacja kilku klientów z serwerem zobacz rys. 2) Server Switch Rys. 2. Wąskie gardło w sieci przełączanej Istnieje szereg rozwiązań tego rodzaju problemów: wykorzystanie przełącznika wyposażonego w port pracujący w szybszym standardzie i podłączenie serwera (czy innego urządzenia odpowiedzialnego za powstanie wąskiego gardła ) oczywiście wyposażonego w odpowiednią kartę sieciową do tego portu, wykorzystanie dwóch portów przełącznika do agregacji łącza (ang. trunc links) utworzenie kanału transmisyjnego o podwójnej przepustowości można to zrobić za pomocą specjalnych przełączników (obsługujących protokół STP) lub jeśli sieciowy system operacyjny serwera potrafi obsłużyć tego rodzaju rozwiązanie, w specjalne sterowniki do kart sieciowych jest wyposażony np system Novell NetWare, zastosowanie rozwiązań pracujących w warstwie trzeciej instalacja dwóch kart sieciowych i segmentacja sieci, a w przypadku sieci z wieloma routerami wykorzystaniu routingu dynamicznego z balansowaniem obciążeń (ang. load balancing) pomiędzy segmentami, co znajduje zastosowanie szczególnie przy łączeniu dwóch segmenów sieci (por. rys. 3) i jest rozwiązaniem
O pomiarach prędkości transmisji w sieciach komputerowych 7 najtańszym z opisanych (przy czym należy oczywiście pamiętac o zapewnieniu obsługi pakietów rozgłoszeniowych i grupowych). Oczywiście w przypadku zastosowania protokołów dynamicznego routingu część dostępnej przepustowości zostanie wykorzystana na przesyłanie komunikatów routingu, co spowoduje, że efektywna prędkość transmisji w rozwiązaniu tego rodzaju będzie mniejsza niż przy użyciu wyspecjalizowanych przełączników obsługujących agregację łączy. Net 2 Net 1 Serwer Router Rys. 3. Wykorzystanie routingu do budowy łącza pomiędy sieciami Zaletą rozwiązań wykorzystujących programowe routery jest możliwość wykorzystania pamięci RAM komputera do buforowania przychodzących ramek. W przeprowadzanych przez nas doświadczeniach, w których badaliśmy efektywną prędkość transmisji poprzez komputer z dwiema kartami sieciowymi (rysunek 4) odpowiednie zwiększenie rozmiarów buforów spowodowało zwiększenie efektywnej prędkości transmisji o nawet 10% linux, transmisja pakietów UDP Serwer NetWare 5.1, routing IP linux, sniffer Rys. 4. Pomiar efektywnej prędkości transmisji stacja nadawcza wykorzystuje bezpołączeniowy i zawodny protokół UDP. Prowadząc zatem badanie powinno się uwzględniać zjawiska zachodzące w II warstwie i dążyć do wyeliminowania spowodowanych przez nie fluktuacji. Niestety zarówno systemy operacyjne stacji roboczych i komputerów klienckich, jak i sieciowe systemy operacyjne serwerów nie oferują narzędzi wystarczających do analizy zjawisk II warstwy (porównaj: [3]) 5. Wnioski W pomiarach rzeczywistej prędkości transmisji sieciowych, w szczególności w pomiarach prowadzonych w celu optymalizacji wydajności sieci, należy uwzględnić szereg mechanizmów mających potencjalny wpływ na obserwowane wyniki. Do mechanizmów tych należą między innymi: obsługa błędów w protokołach
8 M. Szmit niezawodnych oraz algorytmy zarządzania dostępem do łącza w warstwie II. Rzetelne i szczegółowe badanie musi obejmować również charakterystykę związanych w tymi mechanizmami zjawisk zachodzących w obrębie badanej sieci. Prowadzone z punktu widzenia użytkownika końcowego pomiary szybkości transferu plików czy czasu opóźnień i szybkości transferu pakietów echo request w poważnych zastosowaniach mogą być traktowane jedynie jako rodzaj badania wstępnego a ich wyniki zawsze będą tylko orientacyjne (zobacz na przykład [2]). LITERATURA 1. Speedometer http://promos.mcafee.com/speedometer/test_0150.asp (odsyłacz sprawdzony 3 marca 2006) 2. Numion http://www.numion.com/yourspeed3 (odsyłacz sprawdzony 3 marca 2006) 3. Maceluch R., Kaprzyk P., Domański A.: Badania mechanizmów QoS w systemie linux, Studia Informatica Numer 2A (53) 2003, str. 335-344 4. Hassan M. i Jain R.: Wysoko wydajne sieci TCP/IP, Helion 2005 5. Zatwarnicka A.: Sposoby szacowania czasu transmisji pakietów przez Internet. Wysokowydajne sieci komputerowe. Zastosowania i bezpieczeństwo, Wydawnictwa Komunikacji i Łączności, Warszawa 2005, str. 157-166. 6. Karcewicz J.: Występowanie fluktuacji przepustowości łączy internetowych w Polsce. Wysokowydajne sieci komputerowe. Zastosowania i bezpieczeństwo, Wydawnictwa Komunikacji i Łączności, Warszawa 2005 7. http://en.wikipedia.org Wikipedia Wolna Encyklopedia, wersja anglojęzyczna, hasła bandwidth, Measuring_data_throughput, throughput (odsyłacz sprawdzony 3 marca 2006) 8. Juszczak M., Morawski M., Bartoszewicz A.: Multipath routing in MPLS networks a survey. Journal of Applied Computer Science, Vol. 14, No. 1, 2006. 9. Morawski M., Bartoszewicz A.: Applying routing information to the TCP sender logic. IADAT International Conference on Telecommunications and Computer Networks, Portsmouth, Wielka Brytania, 2005, str. 115-119. 10. Morawski M., Bartoszewicz A.: Problematyka wielościeżkowego rutowania w sieciach komputerowych z gwarancją jakości usług. Konferencja Technologie Internetowe w Zarządzaniu i Biznesie, Łódź, 2005, str. 148-157. 11. Juszczak M., Morawski M., Bartoszewicz A.: Wielożcieżkowe rutowanie w sieci MPLS - zestawianie kanałów. XIII Konferencja Sieci i Systemy Informatyczne, Łódź, 2005, str. 39-48. 12. Juszczak M., Morawski M., Bartoszewicz A.: Wielościeżkowe rutowanie w sieci MPLS - wykorzystanie wielu ścieżek dla poprawy jakości transmisji. XIII Konferencja Sieci i Systemy Informatyczne, Łódź, 2005, str. 49-56.