• Nie Znaleziono Wyników

Firewalle sprzętowe

W dokumencie Index of /rozprawy2/10323 (Stron 34-45)

Pojęcie „sprzętowy Firewall” w idealnym przypadku oznacza system realizujący funkcje zabezpieczania transmisji danych w sieciach teleinformatycznych przy wykorzystaniu wyłącznie dedykowanych układów elektronicznych, z pominięciem jakiegokolwiek kodu programu wykonywanego przez mikroprocesor. W praktyce wielu producentów posługuje się jednak tym terminem w odniesieniu do oferowanych produktów, będących tak naprawdę klasycznymi rozwiązaniami programowymi, uzupełnionymi jedynie o pewne funkcje wspomagające implementowane w sprzęcie. Przeważnie do takich celów używane są układy ASIC, obsługujące procesy szyfrowania i deszyfrowania pakietów w wirtualnych sieciach prywatnych VPN (ang. Virtual

Private Network) bądź akcelerujące proces wyszukiwania ciągów w urządzeniach IDS/IPS oraz

modułach antywirusowych [29, 36]. Nie sposób jest jednoznacznie stwierdzić, jak w rzeczywistości realizowana jest taka funkcjonalność, ponieważ producenci nie udostępniają szczegółowych

35 dokumentacji technicznych oferowanych urządzeń, zasłaniając się tajemnicą technologiczną i ochroną przed konkurencją. Użytkownikom pozostaje jedynie weryfikacja ogólnych parametrów technicznych w toku produkcyjnej eksploatacji. W niektórych przypadkach minimalizacja kosztów produkcji, w połączeniu z istniejącym zapotrzebowaniem w poszczególnych sektorach rynku, prowadzi do wycofywania się z wytwarzania zaawansowanych, a przez to drogich i adresowanych do wąskiego grona odbiorców, urządzeń. Przykładem opisanego zjawiska jest kampania marketingowa firmy Check Point Software Technologies Ltd. dyskredytująca korzyści płynące z zastosowania rozwiązań sprzętowych na rzecz nowych, wydajnych procesorów wielordzeniowych [14]. Pomimo tak silnego wpływu strategii biznesowych na kierunki rozwoju technologicznego wiele ośrodków badawczych prowadzi niezależne prace nad optymalizacją sprzętowych metod klasyfikacji pakietów. Historycznie początki aktywności badawczej w tym obszarze stymulowane były koniecznością przetwarzania coraz większych tabel trasowania pakietów w routerach brzegowych rozległych sieci WAN (ang. Wide Area

Network). Stąd też wynika wczesna dominacja metod dwuwymiarowych w grupie algorytmów

sprzętowej klasyfikacji danych (pierwotnie routery wykorzystywały do trasowania pakietów jedynie informacje o adresie źródłowym i docelowym protokołu IP).

Pierwszy i zarazem najbardziej popularny sposób sprzętowej klasyfikacji pakietów opiera się na wykorzystaniu trójwartościowej pamięci TCAM (ang. Ternary Content Addressable Memory). Jest to zmodyfikowana wersja pamięci adresowanej zawartością (ang. Content Addressable Memory), umożliwiająca przechowywanie również wartości nieistotnych (ang. don’t care). TCAM zapisuje pary wyszukiwanych ciągów skojarzonych z dedykowanymi im maskami. Dzięki temu idealnie wpasowuje się w prefiksowy schemat adresacji, obowiązujący w sieciach Ethernet. Przykładowo: zakres podsieci 192.168.1.*, gdzie „*” oznacza pozycję nieistotną, będzie zapisany w pamięci TCAM jako wartość „11000000 10101000 00000001 00000000” z maską „11111111 11111111 11111111 00000000”. Co najważniejsze, efektywność czasowa procesu wyszukiwania jest niezależna od liczby zapisanych wierszy i wynosi O(1), zatem już po jednym cyklu zegarowym pamięć zwraca wynik kwerendy [119, 139]. W zależności od potrzeb implementacyjnych może być on dostępny w postaci binarnej niekodowanej, w której każdemu wierszowi pamięci odpowiada dedykowana linia sygnałowa potwierdzająca trafienie albo w formie kodowanej, znacznie redukującej szerokość magistrali wyjściowej. Pomimo swych niewątpliwych zalet, praktyczne wykorzystanie pamięci TCAM w nowych obszarach zastosowań ogranicza kilka istotnych wad tej technologii [119, 137]:

 wysoki koszt produkcji,

 stosunkowo niska pojemność,

 niedostosowanie do przechowywania reguł zawierających przedziały wartości,

 duże zapotrzebowanie na energię,

 ograniczona skalowalność.

Koszt pojedynczego bitu przechowywanego w pamięci TCAM może być nawet do 30 razy większy niż w przypadku pamięci DDR SRAM [119], co wynika z faktu, że komórka elementarna

36 TCAM wymaga użycia od 10 do 12 tranzystorów, podczas gdy konwencjonalne pamięci SRAM potrzebują do tego celu jedynie od 4 do 6 tranzystorów [5]. Stale rosnąca liczba urządzeń wyposażonych w tego typu pamięć pozwala przypuszczać, że jej cena będzie sukcesywnie maleć, choć prawdopodobnie nigdy nie osiągnie poziomu powszechnych rozwiązań SRAM. Jednak to nie kwestia ekonomiczna jest największym ograniczeniem pamięci TCAM – główny problem wiąże się z brakiem bezpośredniej możliwości zapisywania reguł zawierających dowolne zakresy, szczególnie w odniesieniu do numerów portów [11]. Każdy zakres musi być najpierw poddany dekompozycji do postaci niezależnych prefiksów. W najgorszym przypadku dla W-bitowego numeru portu może istnieć

(2W-2)d prefiksów, stąd definicja pojedynczej reguły składającej się z dwóch 16-bitowych portów będzie wymagała aż 900 wpisów do pamięci [33, 119]. Fakt ten wpływa także niekorzystnie na efektywnie dostępną pojemność TCAM, szczególnie w połączeniu z dużymi rozmiarami komórek, wynikającymi z konieczności zastosowania dodatkowych tranzystorów przechowujących informacje o wartościach „*”.

Jednotaktowy czas wyszukiwania informacji w TCAM uzyskiwany jest dzięki zrównolegleniu architektury wewnętrznej pamięci. Każda komórka sygnalizuje specjalnym blokom logicznym, czy sygnał wejściowy jest zgodny z zapisaną w niej regułą. Duża liczba równocześnie aktywnych elementów powoduje jednak znaczne zużycie energii. Dostępne obecnie układy TCAM charakteryzują się poborem mocy rzędu 12-15W [64, 137, 138]. W przeliczeniu na pojedynczy bit jest to wartość 150 razy większa niż w wypadku klasycznych pamięci SRAM [119].

Atrakcyjność pamięci TCAM motywuje wiele zespołów naukowych na całym świecie do prowadzenia badań nad możliwymi sposobami redukcji zapotrzebowania energetycznego, jak również optymalnego implementowania obsługi wyszukiwania zakresów. Spitznagel et al. [97] proponują rozwiązanie E-TCAM (ang. Extended TCAM), modyfikujące konstrukcję elementarnych komórek pamięci, w sposób pozwalający na bezpośrednie wyszukiwanie zakresów na poziomie układu scalonego. Dodatkowa funkcjonalność zwiększa liczbę elementów wchodzących w skład pojedynczego wiersza pamięci o kolejne 32W tranzystorów. Pomimo tego E-TCAM ogranicza o ponad 90% pobór mocy układu poprzez redukcję ilości obszarów aktywowanych w trakcie trwania procesu wyszukiwania [11, 119]. Stało się to możliwe dzięki uzupełnieniu koncepcji partycjonowanej pamięci CoolCAM [138] dodatkowym blokiem indeksów, z którym skojarzone są segmenty przechowujące informacje. Na podstawie danych odczytanych z bloku indeksów realizowane jest równoległe wyszukiwanie w niewielkiej, ściśle określonej grupie bloków pamięciowych.

Optymalizacja sprzętowej architektury TCAM jest zadaniem czasochłonnym i niezwykle kosztownym. Z tego powodu bardzo dynamicznie rozwija się alternatywny kierunek badań, koncentrujący się na opracowaniu efektywnych algorytmów kodowania zakresów. W nurcie tym możemy wyróżnić metody zależne od kontekstu bazy danych reguł bądź od niego niezależne, określane jako DIRE (ang. Database Independent Range Encoding) [11, 53]. Gupta oraz McKeown [34] przeanalizowali 793 rzeczywiste systemy klasyfikacji pakietów funkcjonujące u 101 różnych

37 dostawców usług internetowych ISP (ang. Internet Service Provider). W sumie zawierały ponad 41 tysięcy reguł, co pozwoliło na wyciągnięcie kilku istotnych wniosków dotyczących charakterystyk polityk bezpieczeństwa. Do najważniejszych wniosków należą [34]:

 średnia liczba reguł w badanych systemach wynosiła około 50 (jedynie 0,7% wszystkich

klasyfikatorów posiadała bazy zawierające więcej niż 1000 wpisów),

 protokoły warstwy transportowej były ograniczone zwykle do niewielkiego zbioru

konkretnych elementów, np.: TCP, UDP (ang. User Datagram Protocol), ICMP (ang. Internet Control Message Protocol), itp.,

 tylko 10,2% klasyfikatorów wykorzystywało zakresy w definicji reguł dla warstwy

transportowej, w tym 9% przypadków był to przedział od portu 1023 do 65535,

 wiele reguł w tych samych klasyfikatorach wykorzystywało jednakowe definicje

poszczególnych pól,

 8% reguł było nadmiarowych.

Z kolei K. Lakshminarayanan et al. [53] wykazał, że w bazach danych list kontroli dostępu ACL, pochodzących z 2004 roku, na łączną liczbę około 215 tysięcy reguł, 25% procent wykorzystywało zakres w opisie jednego pola, zaś tylko 1,5% w dwóch polach. Dla pierwszego pola wyróżniono 270 unikalnych przedziałów, a dla drugiego jedynie 37. Na podstawie powyższych obserwacji H. Liu opracował metodę efektywnego mapowania przedziałów w pamięci TCAM [58]. Wykorzystuje ona translację klucza wyszukującego do wektora o zredukowanej długości, w którym

każdy z bitów składowych vi przyjmuje wysoką wartość logiczną jedynie wówczas, kiedy klucz

zawiera się w przedziale Ri. Translacja taka może być realizowana w oparciu o bezpośrednie

adresowanie pamięci konwencjonalnej (pojedyncze pole, zawierające 16-bitowy zakres, wymaga zarezerwowania około 64 tysięcy wpisów) [58]. Wektor wynikowy zapisywany jest do pamięci TCAM, zwracającej ostatecznie informację o regułach odpowiadających wyszukiwanemu kluczowi.

Odmienny wariant hierarchicznej minimalizacji liczby przedziałów proponuje J. Lunteren

et al. [62]. Schemat równoległej klasyfikacji pakietów P2C (ang. Parallel Packet Classification)

pozwala na jednoczesne, niezależne wyszukiwanie informacji w wielu polach, ograniczając znacznie

zapotrzebowanie na zasoby pamięciowe. Algorytm P2C występuje w trzech odmianach (stylach):

wariant I charakteryzuje się najlepszym czasem aktualizacji, natomiast warianty II i III najmniejszymi rozmiarami wektorów pośrednich kodujących zakresy. Styl kodowania może być jednolity dla całej bazy, jak również wybierany indywidualnie dla poszczególnych reguł. Wektor kodujący wyszukiwany klucz jest przechowywany w pamięci TCAM, przy czym dla stylów I i II każda reguła alokuje dokładnie jedną pozycję w pamięci, natomiast styl III może wymagać większej ilości wpisów [62].

Zarówno algorytm P2C, jak i metoda H. Liu, wymagają użycia dedykowanych rozwiązań sprzętowych

do wstępnego przetwarzania baz reguł, bądź dodatkowych zasobów pamięciowych przechowujących tablice kodujące zakresy, co znacznie ogranicza skalowalność tego typu rozwiązań [11].

38 Próbę usunięcia głównych wad algorytmów hierarchicznych podejmują metody z grupy DIRE, w których sposób kodowania przedziałów nie jest powiązany z ich rozkładem w bazie danych reguł bezpieczeństwa. Lakshminarayanan et al. [53] opracowali algorytm DIRPE (ang. Database

Independent Range PreEncoding), bazując na dwóch podstawowych zasadach:

 każdy przedział jest reprezentowany jako zbiór arbitralnych elementów trójwartościowych

a nie prefiksów,

 dodatkowe, wolne bity pamięci TCAM są używane do kodowania ciągów

trójwartościowych.

Dzięki temu, w porównaniu do standardowej reprezentacji prefiksowej, udało się znacznie zredukować liczbę wpisów identyfikujących poszczególne przedziały, kosztem zwiększenia długości poszczególnych słów. Jednak efektywność DIRPE spada w miarę zmniejszania liczby nadmiarowych bitów dostępnych w pamięci TCAM.

Alternatywną koncepcją algorytmu niezależnego od kontekstu bazy jest SRGE (ang. Short

Range Gray Encoding) [11], którym reprezentację krótkich zakresów zrealizowano w oparciu

o binarny refleksyjny kod Graya BRGC (ang. Binary-Reflected Gray Code). Granice poszczególnych przedziałów zostają zamienione z postaci binarnej na odpowiadające im kody Graya. Następnie dla każdego początku i końca danego zakresu obliczany jest najniższy wspólny przodek LCA (ang. Lowest Common Ancestor), czyli przodek najbardziej oddalony od korzenia drzewa. Stanowi on punkt podziału pierwotnego zakresu na dwie mniejsze części. Dla lewego poddrzewa generowane prefiksy pokrywają wszystkie wartości w nim zawarte. Dzięki własnościom kodu BRGC możliwa jest minimalizacja zbioru prefiksów poprzez zastąpienie wpisem nieistotnym „*” wszystkich pozycji odpowiadających krawędziom podziału LCA. Ciągi trójwartościowe wygenerowane przez algorytm SRGE mogą jednak w pewnych wypadkach zachodzić na siebie, powodując nieefektywne wykorzystanie zasobów pamięci TCAM. Z tego względu A. Bremler-Barr et al. [11] opracowali zmodyfikowaną wersję hybrydowego algorytmu H-SRGE (ang. Hybrid-SRGE), w którym do każdego przedziału kodowanego metodą SRGE, alokującego największą pojemność TCAM, przyporządkowywany zostaje jeden dodatkowy bit identyfikujący. Wstępny etap przetwarzania, zależny od kontekstu bazy danych reguł bezpieczeństwa, polega na utworzeniu hierarchicznej listy przedziałów nadmiarowych posegregowanej według częstości występowania. Dzięki takiemu podejściu współczynnik rozwinięcia liczby zakresów hybrydowego algorytmu H-SRGE dla referencyjnej bazy reguł wyniósł 1,03. Dla porównania algorytm DIRPE osiągnął wynik 1,12 przy większej o 40% liczbie wymaganych bitów dodatkowych, dostępnych w pamięci TCAM [11].

Lakshman i Stiliadis [52] zaproponowali algorytm Bitmap-intersection, wykorzystujący do procesu klasyfikacji pakietów standardowe pamięci SRAM. W metodzie tej zestaw reguł odpowiadający analizowanemu pakietowi stanowi część wspólną d-podzbiorów trafionych reguł, określanych dla każdego z wymiarów indywidualnie. Obliczanie części wspólnych zbiorów jest realizowane metodami sprzętowymi. W tym celu jednowymiarowe wynikowe zbiory są kodowane do

39 postaci N-bitowego wektora (bitmapy), w którym wysoki stan logiczny na danej pozycji odpowiada trafieniu w odpowiednią regułę. Iloczyn logiczny poszczególnych wektorów zwraca ostatecznie rezultat klasyfikacji. Ponieważ każda z map bitowych jest długości N oraz istnieje O(N) przedziałów

w każdym z d wymiarów, zapotrzebowanie na zasoby pamięciowe algorytmu wynosi O(dN2

).

Złożoność czasowa operacji wyszukiwania uzależniona jest od szerokości słowa pamięci

i wynosi [33].

Tab. 2.3. Porównanie złożoności obliczeniowej oraz zapotrzebowania na zasoby pamięciowe algorytmów klasyfikujących (na podstawie [33, 50]).

Algorytm Złożoność obliczeniowa dla najgorszego przypadku

Alokowane zasoby pamięciowe dla najgorszego przypadku

Wyszukiwanie liniowe O(N) O(N)

Przestrzeń krotek O(N) O(N)

Hierarchiczne drzewa trie O(Wd) O(NdW)

GOT O(Wd-1) O(NdW)

Cecilia (Set-pruning tries) O(dW) O(NddW)

Cross-producing O(dW) O(Nd)

BVL

Klasyfikacja 2D O(W log N) O(NW)

AQT O(αW) O(NW)

FIS-tree O((l+ 1)W) O(l N 1+1/l)

RFC O(d) O(Nd)

HiCuts O(d) O(Nd)

Bitmap-intersection O(dN2)

Ternary CAM O(1) O(N)

Zbiorcze zestawienie parametrów czasowo-pamięciowych omawianych algorytmów przedstawiono w tabeli 2.3. Część z przedstawionych algorytmów można bezpośrednio

implementować w układach programowalnych FPGA (np. P2C [62] bądź Bitmap-intersection [52]),

przy czym w grupie tej dominują metody oparte o dekompozycję oraz drzewa decyzyjne [44]. W niektórych przypadkach pierwotne algorytmy zostały wzbogacane o pewne funkcjonalności, polepszające własności klasyfikatorów. Takie podejście zastosował Song oraz Lockwood [93] w rozwiązaniu BV-TCAM, łączącym metodę równoległych wektorów bitowych BV (ang. Bit Vector) z pamięcią TCAM. Dzięki temu możliwym stało się sygnalizowanie wielu równoczesnych trafień.

40 Praktyczna implementacja algorytmu BV-TCAM w układzie FPGA Xilinx XCV2000E dla 222 reguł alokowała około 10% dostępnych zasobów sprzętowych oraz 20% pamięci BlockRAM [93].

Taylor i Turner [118] przedstawili algorytm DCFL (ang. Distributed Crossproducting Field

Labels) redukujący wykładniczą złożoność czasową, jak również zapotrzebowanie pamięciowe

występujące w oryginalnych metodach Cross-producing i RFC. Algorytm ten, bardzo podobny do

równoległej klasyfikacji pakietów P2C, należy do grupy metod bazujących na niezależnym

przeszukiwaniu poszczególnych pól, połączonym z kodowaniem i agregacją pośrednich wyników kwerend. DCFL składa się z trzech głównych elementów: zestawu równoległych bloków wyszukujących, sieci agregującej oraz dekodera priorytetu reguł. Poszczególne bloki wyszukujące stosują odmienne metody analizy, dostosowane do konkretnych typów pól nagłówków. I tak do weryfikacji adresów źródłowych i docelowych wykorzystano zmodyfikowaną wersję kompresowanych wielobitowych drzew typy trie (w algorytmie DCFL określanych jako Tree Bitmap). Każde wyszukiwanie dla takiej struktury danych wiąże się z koniecznością 6 odwołań do pamięci, zaś pojedynczy prefiks alokuje średnio 6 bajtów [118]. W przypadku portów sieciowych autorzy algorytmu przeprowadzili początkowo szereg analiz rzeczywistych systemów klasyfikatorów, na podstawie których zdecydowali się na wyodrębnienie pięciu typów zakresów:

 WC - dowolne,

 HI - porty wysokie od 1024 do 65535,

 LO - porty niskie od 0 do 1023,

 AR - zakresy arbitralne,

 EM - pojedyncze porty.

Dla pierwszych trzech typów (WC, HI i LO) układy wyszukujące zawierają jedynie flagi informujące o istnieniu filtrów, mieszczących się w tych zakresach portów oraz rejestry etykiet przedziałów, uzupełnione logiką wykrywającą, czy analizowane pole jest większe od wartości 1023 czy też nie. Pojedynczym portom EM dedykowano tablice funkcji skrótów, zaś do przeszukiwania zakresów arbitralnych AR wykorzystano algorytm FIS-tree. Sieci agregujące wyniki pośrednie uzyskiwane z opisanych bloków wyszukujących zbudowane zostały w oparciu o filtry Blooma, dzięki czemu, zdaniem twórców DCFL, jest on w stanie osiągnąć wydajność klasyfikacji na poziomie 100 Mpps (ang. Mega packets per second) [118]. Jednak takie podejście nie jest całkowicie optymalne przy implementacji w układach FPGA, głównie ze względu na opóźnienia wnoszone przez długie ścieżki logiczne [44]. Dyskusyjną kwestią pozostaje również efektywność zastosowanej metody wyszukiwania zakresu portów, bazującej na statystycznych własnościach niewielkiej grupy produkcyjnych klasyfikatorów.

Wielopoziomowe filtry Blooma zostały także wykorzystane w algorytmie B2PC (ang. Bloom

Based Packet Classification), opracowanym przez I. Papaefstathiou et al. [75] oraz jego sprzętowej

odmianie 2sBFCE (ang. Dual Stage Bloom Filter Classification Engine), zrealizowanej przez A. Nikitakis’a et al. [71]. Obydwie wersje algorytmów posługują się generalnymi charakterystykami

41 baz danych reguł bezpieczeństwa, dostępnymi w publikacji P. Gupta et al. [33]. Dzięki dekompozycji wielowymiarowych danych wejściowych poszczególne pola nagłówków są przetwarzane równolegle w niezależnych blokach klasyfikujących, bazujących na filtrach Blooma. Wynikiem pierwszej fazy weryfikacji jest 120-bitowy wektor, generowany przez blok permutacji, który trafia w kolejnym etapie do drugiego filtru Blooma, indeksującego tablice identyfikatorów trafionych reguł. Algorytm 2sBFCE pozwala na zapisanie bazy złożonej z 4 tysięcy definicji przy wykorzystaniu 178 kB pamięci SRAM. Złożoność czasowa operacji wyszukiwania wynosi 26 taktów zegara systemowego, stąd maksymalna przepustowość algorytmu osiąga wartość 5,86 Mpps [71]. Warto w tym miejscu zauważyć, że wszystkie omawiane metody wykorzystujące filtry Blooma, mogą w niektórych przypadkach zwracać niepoprawne wyniki klasyfikacji, tzw. false positive. Dyskwalifikuje to możliwość ich praktycznego zastosowania w obszarach wymagających zapewnienia całkowitej wiarygodności i autentyczności przesyłanych danych.

Odrębna grupa rozwijanych obecnie sprzętowych algorytmów klasyfikujących wykorzystuje struktury drzew decyzyjnych. Są to drzewa binarne, których łukom przyporządkowano etykiety T (tak) lub N (nie). Wewnętrzne węzły drzewa zawierają warunki bądź zapytania związane z etykietami łuków, natomiast liście reprezentują wszystkie możliwe uporządkowania sortowanej tablicy [24]. Lou et al. [63] zaproponowali metodę jawnego wyszukiwania zakresów ERS (ang. Explicite Range

Serach), bazującą na wyżej wymienionych strukturach danych, redukującą w znaczny sposób

(w porównaniu do standardowego algorytmu HiCuts) rozmiar drzewa przeszukiwań. Dla najgorszego przypadku w każdym liściu drzewa HiCuts znajdują się maksymalnie 4 reguły. Ostatecznie są one przeszukiwane liniowo w celu odnalezienia właściwej, odpowiadającej analizowanemu pakietowi. Algorytm ERS zmniejsza liczbę reguł w obszarach przeszukiwań liniowych do maksymalnie 3, kosztem zwiększonego zapotrzebowania na zasoby pamięciowe. Ze względu na zmienną liczbę odwołań do pamięci, niezbędnych do ustalenia ścieżki przeszukiwania drzewa dla każdego z jego węzłów wewnętrznych, algorytm ERS, zdaniem W. Jianga et al. [44], nie pozwala na zastosowanie potokowego przetwarzania danych. Co więcej, nie przeprowadzono praktycznej implementacji algorytmu w układach FPGA, więc nie ma możliwości oceny jego rzeczywistej wydajności i efektywności wykorzystania zasobów sprzętowych.

Próbę optymalizacji algorytmów HiCuts oraz HyperCuts podjął również Kennedy et al. [46, 47]. W celu lepszego dopasowania do specyfiki układów FPGA, a zarazem ograniczenia mocy pobieranej przez klasyfikator, w opracowanej modyfikacji Kennedy zrezygnował z implementacji dwóch elementów zawartych w pierwotnych wersjach algorytmów: zagęszczania regionów oraz przesuwania w górę podzbiorów wspólnych reguł. Pierwszy z nich, redukujący do niezbędnego minimum obszary skojarzone z poszczególnymi węzłami drzewa decyzyjnego, a dla realizacji sprzętowej wymagałby wykorzystania bardzo dużej ilości zasobów logiki reprogramowalnej, głównie ze względu na konieczność dokonywania operacji dzielenia zmiennoprzecinkowego. Przesuwanie do wyższych węzłów podzbiorów wspólnych reguł wiąże się z kolei z koniecznością przeszukiwania

42 węzłów pośrednich w trakcie przemieszczania się w strukturze drzewa, co wpłynęłoby negatywnie na wydajność sprzętowego akceleratora [46]. Praktyczna implementacja klasyfikatora w układzie Xilinx Virtex5SX95T alokowała 22% dostępnych bloków slice oraz 54% pojemności pamięci BlockRAM. Przy maksymalnej częstotliwość zegara wynoszącej 77 MHz klasyfikator pozwalał na przetwarzanie danych z wydajnością 77 Mpps (dla bazy złożonej z 60 reguł). Przy zwiększeniu liczby reguł do 1000 wydajność spadła do wartości około 46 Mpps dla algorytmu HiCuts oraz 53 Mpps dla algorytmu HyperCuts [46]. Dalsze prace optymalizacyjne, ukierunkowane na minimalizację pobieranej mocy oraz wzrost szybkości przetwarzania danych, doprowadziły do powstania kolejnej wersji algorytmu, wykorzystującej wiele równolegle pracujących bloków klasyfikujących. Zastosowanie 4 silników weryfikujących oraz układu FPGA Stratix3 firmy Altera pozwoliło uzyskać całkowitą przepustowość rzędu 169 Mpps [47] (pojedynczy silnik w tym wypadku osiągał efektywność około 42,25 Mpps).

Jiang i Prasanna [45] zaproponowali alternatywną metodę klasyfikacji wielowymiarowej, bazującą na zmodyfikowanej wersji algorytmu HyperCuts. W swej pracy zidentyfikowali dwa główne źródła duplikacji reguł w oryginalnym algorytmie HyperCuts, wpływające na wzrost wykorzystywanych zasobów pamięciowych:

 pokrywanie się obszarów wyznaczanych przez poszczególne reguły,

 dokonywanie równomiernych cięć przedziałów (bez analizy rozmieszczenia

poszczególnych reguł).

Redukcję pokrywania się obszarów osiągnięto dzięki zapisywaniu zestawu replikowanych reguł w dedykowanych tabelach, tzw. wewnętrznych listach reguł (ang. internal rule lists), przyporządkowanych wewnętrznym węzłom drzewa decyzyjnego. Z kolei równomierne cięcia przedziałów w odniesieniu do portów źródłowych i docelowych zastąpione zostały przez precyzyjne wyszukiwanie optymalnych punktów przecięć, minimalizujących liczbę wielokrotnych wystąpień reguł [45]. Testową implementację klasyfikatora przeprowadzono przy wykorzystaniu układu Xilinx Virtex-5 XC5VFX200T, osiągając alokację zasobów sprzętowych na poziomie 33%. Teoretyczna maksymalna częstotliwość pracy wynosząca 125,4 MHz, zdaniem autorów, pozwala na przetwarzanie danych z szybkością 80 Gb/s, przy czym brak jest informacji dla jakich rozmiarów pakietów wartość taką wyliczono. Z tego względu nie można jednoznacznie ocenić wydajności pracy klasyfikatora, wyrażonej liczbą pakietów przetwarzanych w ciągu pojedynczej sekundy. Niekorzystną cechą omawianego algorytmu jest także uzależnienie długości potoku analizy danych rzutującego na całkowitą efektywność czasową metody, od rozmiaru drzewa decyzyjnego, warunkowanego heurystyką bazy danych reguł bezpieczeństwa (algorytm nie będzie optymalny dla drzew decyzyjnych o różnych wysokościach) [44].

Wszystkie przedstawione metody weryfikacji pakietów skupiają się na optymalizacji

W dokumencie Index of /rozprawy2/10323 (Stron 34-45)

Powiązane dokumenty