Rozdział STEROWANIE PRZEPŁYWEM RUCHU SIECIOWEGO Jarosław KARCEWICZ Politechnika Śląska, Wydział Organizacji i Zarządzania, Katedra Informatyki i Ekonometrii jarkarc@woiz.polsl.pl Adrian KAPCZYŃSKI Politechnika Śląska, Wydział Organizacji i Zarządzania, Katedra Informatyki i Ekonometrii adriank@woiz.polsl.pl Krzysztof T. PSUREK Politechnika Śląska, Wydział Organizacji i Zarządzania, Katedra Informatyki i Ekonometrii ktp@woiz.polsl.pl Streszczenie Niniejszy artykuł opisuje charakterystykę oraz badanie wpływu działania jednego z algorytmów kolejkowania kolejki HTB, na takie parametry działania sieci komputerowej jak przepustowość i jednorodność transferu. Analizie badawczej został także poddany wpływ różnic między wartościami EIR (maksymalna wartość transferu dla łącza) i CIR (minimalna wartość transferu dla łącza) na efektywność działania kolejki HTB. Omówiono również zbudowaną na Wydziale Organizacji i Zarządzania Politechniki Śląskiej testową sieć komputerową do celów badań mechanizmów QoS. 1. Wprowadzenie Dominującym w sieci Internet protokołem warstwy sieciowej modelu komunikacji ISO/OSI jest IP, natomiast podstawową jednostką przesyłanych danych jest pakiet. Protokół IP udostępnia wygodny mechanizm adresowania komputerów oraz ustalania trasy pakietów pomiędzy sieciami, brakuje mu jednak metod kontroli integralności przesyłanych informacji, czy też gwarantowania np. stałego opóźnienia związanego
2 J. Karcewicz, A. Kapczyński, K. Psurek z przebywaną drogą. Problem zawodnej transmisji rozwiązano projektując protokół TCP, funkcjonujący na poziomie warstwy transportowej. Omawiany protokół gwarantuje przy pomocy szeregu odpowiednio po sobie następujących potwierdzeń, że dane dotrą do miejsca docelowego. Jednak we współczesnych sieciach komputerowych sam fakt dostarczenia informacji z jednego węzła do drugiego przestał być wystarczający. Użytkownicy komputerów coraz częściej korzystają ze zdalnie uruchamianych aplikacji, żądają szybkiego dostępu do olbrzymich archiwów danych, przesyłają dźwięk i obraz w czasie rzeczywistym. To wszystko sprawia, że oprócz gwarancji dotarcia pakietów istotne stały się takie parametry jak przepustowość transferu, opóźnienie, jednorodność opóźnienia i transferu oraz utrata pakietów. Zbiór mechanizmów, które są w stanie zapewnić, że te parametry odpowiadać będą założonym wymaganiom nosi nazwę zapewniania jakości usług (ang. Quality of Service, w skrócie QoS) [4, 15] W niniejszym artykule zostaną opisane badania, których celem będzie ocena jednego z mechanizmów QoS jakim jest algorytm kolejkowania Hierarchical Tocken Bucket nazywany w skrócie HTB.. 2. Metodyka badań 2.1. Sprzęt użyty w badaniach Utworzone stanowisko badawcze zgodnie z rys. 1 składa się z następujących elementów: 2 ruterów programowych komputer PC z systemem operacyjnym GNU/LINUX DEBIAN wyposażony w procesor INTEL PENTIUM 400 MHz, 256 MB pamięci operacyjnej, dwie karty sieciowe Ethernet 10/100 Rys 1. Charakterystyka stanowiska badawczego
Sterowanie przepływem ruchu sieciowego 3 2 serwerów FTP/HTTP komputer PC z systemem operacyjnym GNU/LINUX DEBIAN wyposażony w procesor INTEL PENTIUM 400 MHz, 256 MB pamięci operacyjnej, i bazujący na serwerach Apache i ProFTPd pięciu stacji roboczych komputer PC z systemem operacyjnym GNU/LINUX KNOPPIX oraz MICROSOFT WINDOWS 2000 Proffessional, wyposażony w procesor INTEL PENTIUM III 800 MHz oraz 512 MB pamięci operacyjnej 2.2. Opis konfiguracji ruterów W stanowisku badawczym użyte zostały dwa rutery programowe oparte o system operacyjny GNU/LINUX DEBIAN. Na pierwszym ruterze wydziałowym zainstalowane zostało jądro 2.4.23 [6], w którym standardowo znajduje się obsługa kolejek HTB oraz SFQ. Drugi z ruterów posłużył do stworzenia symulacji sieci lokalnej podłączonej do sieci Internet. Na ruterze tym zainstalowane zostało jądro 2.4.25 [6], wraz z dodatkowo doinstalowanymi kolejkami WRR, ESFQ, HSFC [10, 11, 12] które nie są standardowo zawarte w jądrze oraz uzupełnieniami ipt_account, Patch-O-Matic i IPP2P, odpowiednio zainstalowany pakiet iproute2 z obsługą tychże kolejek oraz właściwie przygotowany pakiet iptables [7, 8, 9, 13]. Konfiguracja dwóch ruterów z zaimplementowanymi metodami kolejkowania pozwoliła na symulację różnych wartości EIR i CIR dla transmisji danych, co zostało uwidocznione na rys. 1. 2.3. Opis metodologii badań Przeprowadzone badania miały na celu ustalenie przepustowości oraz ciągłości transmisji w sieci wykorzystującej kolejkę HTB. W celu przeprowadzenia badań zasymulowano ruch sieciowy ze stacji klienckich w postaci ściągania danych w sesjach FTP lub WWW z serwerów FTP/HTTP (rys. 1) przy pomocy systemu operacyjnego LINUX oraz oprogramowania wspomagającego ściąganie plików D4X. W przedstawionej konfiguracji możliwy był pomiar transferu na stacjach klienckich oraz pomiar ilości ściągniętych danych przez stacje klienckie na obsługującym ruterze przy pomocy modułu ipt_account. Badania zostały przeprowadzone w dwóch etapach. Pierwszy etap obejmował badania z punktu widzenia podziału łącza między usługi, gdzie zasymulowano podział między dwie usługi FTP i WWW, następnie z punktu widzenia podziału łącza między użytkowników. 3. Charakterystyka algorytmu HTB Hierarchiczne Wiadro Żetonów (ang. Hierarchical Token Bucket, HTB) jest jednym z najnowszych algorytmów kolejkowania. Zostało zaprojektowane przez M. Devera dla ruterów opartych o system Linux i jest oparte o formalny aparat współdzielenia S. Floryda, opisany w [14]. Omawiana kolejka to hybryda algorytmu sprawiedliwego podziału pasma z uwzględnieniem wag i priorytetów oraz algorytmu filtru wiadra żetonów(ang. Tocken Bucket Filter, TBF). Algorytm ten może być wykorzystany zamiast
4 J. Karcewicz, A. Kapczyński, K. Psurek implementowanego w systemie Linux algorytmu TBF cechującego się silną złożonością oraz niską dokładnością. Algorytm HTB został zaprojektowany z myślą o zastąpieniu algorytmu CBQ (ang. Class Based Queuing) implementowanego w ruterach opartych o system Linux przy założeniu osiągnięcia precyzji oraz łatwości użycia. Podobnie jak dla algorytmu CBQ reguły podziału łącza muszą być wyspecyfikowane. Do silnych stron algorytmu HTB w porównaniu z algorytmem CBQ można zaliczyć: 1) Użycie algorytmu TBF w celu szacowania czasu spoczynku, tak więc tylko prędkość i liczba bajtów przypadająca na żeton muszą być określone. 2) Większa precyzja szacowania prędkości. 3) Możliwość precyzyjnej kontroli zapożyczania. 4) Możliwość międzyurządzeniowego dzielenia pasma. 5) Algorytm HTB jest zgodny z algorytmem TBF odnośnie limitu prędkości równego sumie limitów dla wszystkich źródeł i liczby bajtów przypadających na żeton równej sumie liczby bajtów przypadających na żeton w poszczególnych węzłach. 6) Aktualny limit prędkości dla wszystkich klas może być wykorzystany przez zaimplementowane reguły współdzielenia łącza. Algorytm HTB zakłada, że drzewo jest kompletne a ruch dzielony jest na strumienie. Opisowo w ramach algorytmu wykonywane są następujące kroki: po pierwsze wybierz wszystkie gałęzie, w których limit prędkości nie jest osiągnięty i wyślij przez nie pakiety z uwzględnieniem priorytetów rozpoczynając od tych z najwyższym priorytetem. Dla gałęzi z tym samym priorytetem wykorzystywany jest algorytm DRR. Jeżeli limity prędkości dla wszystkich gałęzi są przekroczone cały cykl jest powtarzany w zmodyfikowanej postaci: dla każdej z gałęzi wykonywany jest test mający na celu zidentyfikowanie, czy może nastąpić pożyczenie od rodzica klasy. Jeżeli warunek ten nie jest spełniony cykl jest powtarzany a zapożyczanie następuje od klasy starszej generacji [1]. Składnia polityki tc qdisc add... htb [default N] [r2q N] Parametry: default numer klasy do której trafią pakiety niesklasyfikowane do żadnej innej klasy r2q wielkość porcji danych do algorytmu DRR jest wyliczana jako rate podany w Bps / r2q. Domyślną wartością tego parametru jest 10. debug ciąg 16 cyfr - każda z przedziału 0-3 Składnia klasy tc class add... htb rate R1 burst B1 [prio P] [slot S] [pslot PS] [ceil R2] [cburst B2] [mtu MTU] [quantum Q]
Sterowanie przepływem ruchu sieciowego 5 Parametry: rate wartość prędkości przesyłu dla tej klasy w okolicach której kolejka będzie starała się utrzymywać. Dopuszczane są chwilowe przeciążenia w ramach których klasa może pożyczać przepustowość od innych klas, burst maksymalna liczba bajtów które może zaoszczędzić klasa jeśli akurat nie wykorzystuje swojej nominalnej przepustowości. Określa jak dużo potem klasa może pożyczyć w razie przeciążenia. Wartość ta domyślnie jest dobierana automatycznie, ceil twarde ograniczenie przepustowości; wartości tej klasa nie może przekroczyć; domyślnie ma taką samą wartość jak rate, cburst analogicznie jak burst dla twardego ograniczenia przepustowości, mtu maksymalny rozmiar pakietu. Domyślnie 1600, prio priorytet klasy. Klasy z mniejszym priorytetem są obsługiwane szybciej, quantum określa ile bajtów może wysłać kolejka za jednym razem [2, 5]. 4. Analiza wyników badań 4.1. Podział transferu między usługi W pierwszym badaniu weryfikacji poddano skuteczność działania kolejki HTB z punktu widzenia parametrów podziału transferu. Ustawione zostały za pomocą kolejki HTB limity ściągania danych na poziomie 120 [kbit/s] dla sesji WWW oraz 60 [kbit/s] dla sesji FTP. Na podstawie wyników zawartych w tabeli 1, można stwierdzić, że działanie kolejki HTB, której głównym założonym działaniem jest podział transferu według zadanych reguł, spełnia tu swoją rolę znakomicie. Kilka dokonanych pomiarów wskazało bardzo podobny wynik. Komputer 1 (sesja WWW) Komputer 2 (sesja FTP) Tabela 1. Efekt działania kolejki HTB na podział danych między dwie usługi Ilość ściągniętych Stosunek ściągniętych Przewidywana wartość danych [B] danych [%] [%] 203680 67 67 101800 33 33 Analizując wyniki ciągłości transferu uwidocznione na rys. 2, można stwierdzić, że ciągłość ta jest dosyć stabilna, aczkolwiek nie jest to idealnie równa wartość ciągłego transferu. Przesył danych osiąga wartości trochę powyżej zadanego limitu transferu,
6 J. Karcewicz, A. Kapczyński, K. Psurek o około 10-20 [kbit/s] i spada też nieznacznie poniżej tegoż limitu powodując pewną fluktuację. Jednak średni przesył danych odpowiada zdefiniowanym wartościom podziału transferu. 10 8 6 4 2 0 Rys. 2. Efekt działania kolejki HTB na ciągłość transferu danych (w kb/s) między dwie usługi W kolejnym badaniu zasymulowano różne wartości EIR oraz CIR dla łącza i jego wpływ na działanie kolejki HTB. Ustawiono za pomocą kolejki HTB na ruterze obsługującym stacje klienckie limity ściągania danych na poziomie 240 [kbit/s] dla sesji WWW oraz 120 [kbit/s] dla sesji FTP, natomiast dla tegoż rutera został następnie ustawiony limit transferu na ruterze nadrzędnym (rys. 1) za pomocą kolejki HTB na poziomie 120 [kbit/s], dzięki czemu uzyskano wartość EIR równą 400 [kbit/s] natomiast CIR równą 120 [kbit/s]. Tabela 2. Wpływ różnych wartości EIR i CIR na efekt działania kolejki HTB na podział danych między dwie usługi Komputer 1 (sesja WWW) Komputer 2 (sesja FTP) Ilość ściągniętych Stosunek ściągniętych Przewidywana danych [B] danych [%] [%] 252752 69 67 111612 31 33 wartość Jak można zauważyć na podstawie wyników w tabeli 2, różne wartości EIR oraz CIR nieznacznie wpływają na stosunek ściągniętych danych. Kolejka HTB wymaga dość sztywnego określenia wielkości posiadanego łącza i podziału jego transferu. Mimo tej statyczności w sytuacji niezgodności wprowadzonych wartości nominalnych (EIR) z wartościami aktualnie istniejącymi (CIR), ściągane dane są dzielone w stosunku procentowym zgodnie z wprowadzonym podziałem dla wartości nominalnych. Należy jednak wziąć pod uwagę fakt, że wyniki uzyskane zostały w warunkach laboratoryjnych, przy małej ilości klas podziału. Przy wzrastającej ilości klas podziału, na przykład ze względu na użytkowników, których może być w sieci dość duża liczba, wpływ różnych wartości EIR oraz CIR na parametr podziału transferu się zwiększa. Sytuacja wpływu wartości EIR oraz CIR na działanie kolejki HTB znacznie lepiej się uwidacznia przy spojrzeniu na ciągłość transferu danych. Jak można zaobserwować
Sterowanie przepływem ruchu sieciowego 7 na rys. 3. widoczna jest bardzo niestabilna wartość transferu w odstępach sekundowych, 20 15 10 5 0 Rys. 3. Wpływ różnych wartości EIR i CIR na efekt działania kolejki HTB na ciągłość transferu danych (w kb/s) przy podziale między dwie usługi z bardzo dużym odchyleniem, a także z chwilowymi całkowitymi zanikami transferu. 4.2. Podział transferu między użytkowników Analogicznie w pierwszym badaniu weryfikacji poddano skutek działania kolejki HTB z punktu widzenia parametrów podziału transferu. Ustawione zostały za pomocą kolejki HTB limity ściągania danych na poziomie 40 [kbit/s] dla każdego z pięciu komputerów oraz nominalna wartość łącza (EIR) wynikająca z sumy tych limitów 200 [kbit/s]. Tabela 3. Efekt działania kolejki HTB na równy podział danych między pięć komputerów Ilość ściągniętych Stosunek danych ściągniętych danych Przewidywana [B] [%] wartość [%] Komputer 1 (sesja WWW) 106384 20 20 Komputer 2 (sesja FTP) 109305 20 20 Komputer 3 (sesja WWW) 109800 20 20 Komputer 4 (sesja FTP) 113861 21 20 Komputer 5 (sesja WWW) 104360 19 20 Na podstawie wyników zawartych w tabeli 3 można zauważyć, że kolejka HTB przy założonym podziale łącza na 5 komputerów również dzieli transfer bardzo dokładnie. Stosunek ściągniętych danych nie odbiega od przewidywanej wartości wynikającej ze zdefiniowanego podziału. Kilka dokonanych pomiarów potwierdzało uzyskane wyniki. Również ciągłość transferu uwidoczniona na rys. 4 charakteryzuje się dość dobrą stabilnością z charakterystyczna fluktuacją transferu, podobnie jak w przypadku podziału transferu między usługi.
8 J. Karcewicz, A. Kapczyński, K. Psurek 7 6 5 4 3 2 1 0 1 1 29 43 1 8 99 113 12 141 1 169 183 19 211 22 239 2326 281 29 309 323 33 3136 39393 40 421 43 449 463 4 491 0 19 33 4 61 Rys. 4. Efekt działania kolejki HTB na ciągłość transferu danych (w kb/s) dla jednego z 89 komputerów przy równym podziale między pięciu użytkowników W kolejnym badaniu zasymulowano różne wartości EIR oraz CIR poprzez ustawienie na ruterze nadrzędnym ograniczenia transferu CIR na poziomie 100 [kbit/s] oraz limity ściągania danych na poziomie 40 [kbit/s] dla każdego z pięciu komputerów, dzięki czemu uzyskano wartość EIR równą 200 [kbit/s]. Tabela 4. Wpływ różnych wartości EIR i CIR na efekt działania kolejki HTB przy równym podziale danych między pięć komputerów Ilość ściągniętych Stosunek danych ściągniętych danych Przewidywana [B] [%] wartość [%] Komputer 1 (sesja WWW) 17460 6 20 Komputer 2 (sesja FTP) 59816 20 20 Komputer 3 (sesja WWW) 101120 34 20 Komputer 4 (sesja FTP) 86420 29 20 Komputer 5 (sesja WWW) 31312 11 20 Analizując wyniki zawarte w tabeli 4, łatwo można zauważyć jak bardzo różnica między wartościami EIR i CIR wpłynęły na efektywność działania kolejki HTB. Jak przy badaniu dla rozdziału transferu pomiędzy dwie usługi ta różnica transferu nominalnego i gwarantowanego miała nieznaczny wpływ na parametr podziału transferu tak już przy zwiększeniu klas o trzy można stwierdzić bardzo niekorzystny wpływ tej różnicy wartości na rozdział ściąganych danych. Niekorzystny efekt bardzo dobrze też widać na wykresie ciągłości transferu dla komputera, który ściągnął najwięcej danych (rys 5), a szczególnie na wykresie ciągłości transferu danych dla komputera, który ściągnął najmniej danych (rys. 6). Bardzo łatwo zauważyć można na obydwu wykresach bardzo dużą niestabilność ciągłości transferu
Sterowanie przepływem ruchu sieciowego 9 10 8 6 4 2 0 Rys. 5. Efekt działania kolejki HTB na ciągłość transferu danych (w kb/s) dla komputera o największej liczbie ściągniętych danych przy równym podziale między pięciu użytkowników jaką spowodowała zmiana wielkości realnego transferu względem wielkości wprowadzonego nominalnego transferu. 10 8 6 4 2 0 Rys. 6. Efekt działania kolejki HTB na ciągłość transferu danych (w kb/s) dla komputera o najmniejszej liczbie ściągniętych danych przy równym podziale między pięciu użytkowników 5. Podsumowanie Dzięki przeprowadzonej analizie można scharakteryzować następujące zalety i wady działania kolejki HTB: Zalety: Wady: Możliwość priorytezowania usług, poprzez przydzielenie konkretnej wartości transferu dla konkretnych grup usług, Możliwość zdefiniowania dowolnego podziału łącza pomiędzy użytkowników bądź usługi, Bardzo dobra dokładność ograniczania transferu, dokładność ta jednak zmniejsza się wraz z ilością zdefiniowanych klas dla których ustalono transfer i wraz z malejącą wielkością przydzielonego po podziale transferu dla danej klasy, Możliwość pożyczania łącza od klasy, która nie wykorzystuje swojego przydzielonego transferu. Możliwość podziału łącza pomiędzy użytkowników ogólnie istniejących w sieci, a nie aktualnie korzystających z sieci,
10 J. Karcewicz, A. Kapczyński, K. Psurek Możliwość zdominowania otrzymanej części łącza przez sesję bądź sesje dla danego użytkownika lub grupy usług, Dokładność działania tej kolejki poprzez statyczne definiowanie wartości transferu jest silnie uzależniona od różnicy pomiędzy EIR i CIR dla łącza, Brak efektu pamięci nie pozwala na dynamiczne sterowanie regułami kolejkowania na podstawie analizy ruchu z danego czasu, np. na podział transferu ze względu na ilość ściąganych danych w danym dniu, priorytezując użytkowników ściągających mniej danych. W kierunku dalszych prac planowane jest zbadanie pozostałych istotnych parametrów QoS jak opóźnienia oraz straty pakietów, a także zbadanie pozostałych istniejących metod kolejkowania ruchu sieciowego. Przeprowadzone badania pozwolą na zidentyfikowanie problemów i potrzeb dotyczących działania aktualnych systemów kolejkowania. LITERATURA 1. Rusu V., Subredu M., Sparela I., Vraciu V.: Implementing real time Packet Forwarding Policies using HTB. http://linux.dej.ro/docs/htb-diablopresentation.pdf 2. Brown M.: Traffic Control HOWTO. http://www.tldp.org/howto/traffic-control-howto/ 3. Maceluch R., Kasprzyk P., Domański A.: Badania mechanizmów QoS w systemie LINUX. ZN Pol. Śl. Studia Informatica Vol. 24, No 2A (53), Gliwice 2003 4. Kaszyński M, Lorek K.: Dynamiczny przydział pasma. http://rainbow.mimuw.edu.pl/sr/pracemgr/kaszynski/ 5. Maxwell G., van Mook R., van Oosterhout M.,Schroeder P., Spaans J.: Linux Advanced Routing & Traffic Control HOWTO, http://en.tldp.org/howto/adv-routing-howto/ 6. Linux Kernel - http://www.kernel.org 7. Iptables, Patch-O-Matic. http://www.netfilter.org/ 8. IPP2P. http://rnvs.informatik.uni-leipzig.de/ipp2p/downloads.html 9. Kuzniecow A.: Iproute2. ftp://ftp.icm.edu.pl/pub/linux/iproute 10. Mortensen C.: WRR. http://wipl-wrr.sourceforge.net 11. Eugene Ng T. S.: HFSC. http://trash.net/~kaber/hfsc/ 12. Atanasov A.: ESFQ. http://www.ssi.bg/~alex/esfq/ 13. Gasidło P. Ipt_account. http://www.barbara.eu.org/~quaker/ipt_account/ 14. Floyd S.: Link-sharing and resource management models for packet networks. IEEE/ACM Transactions on Networking. Vol.3, No. 4 (Aug. 1995) 15. Maceluch R., Kasprzyk P., Domański A.: Dynamiczny przydział pasma użytkownika sieci z wykorzystaniem usługi QoS w systemie LINUX. ZN Pol. Śl. Studia Informatica Vol. 24, No 2A (53), Gliwice 2003