next up previous contents
Next: Analiza bezpieczeństwa protokołu Up: Implementacja Previous: Mechanizm wymiany kluczy prywatnych   Spis treści

Testy

Aby wyeliminować czynniki zewnętrzne cała testowa sieć miksów znajdowała się w jednej sieci lokalnej o przepustowości 100Mb, a zapytania dotyczyły statycznej strony umieszczonej na lokalnym serwerze WWW. Testowa sieć złożona była z czterech miksów, każdy z nich na odrębnym komputerze. Minimalna liczba komunikatów mieszanych przez miks w ramach jednego pakietu została ustawiona na 3, a maksymalny czas, po którym pakiet był wysyłany pomimo niepełności (mniej niż 3 komunikaty) wynosił 125 milisekund. Parametry te mają znaczenie przy badaniu opóźnień. Każdy z komputerów używanych podczas testów wyposażony był w procesor Pentium II o taktowaniu 350MHz oraz 64MB pamięci operacyjnej. W chwili przeprowadzania testów taka konfiguracja sprzętu uchodzi za przestarzałą, a rzeczywiste serwery wykorzystywane w Internecie posiadają kilkakrotnie większą moc obliczeniową.

W celu zmierzenia wydajności zaimplementowanego projektu zostały przeprowadzone dwa testy. W pierwszym została zmierzona liczba komunikatów jaka może być przetworzona przez miks w ciągu jednej sekundy, oddzielnie dla przypadku komunikatów pieczętowanym kluczem dzielonym i RSA. Test ten został zrealizowany poprzez generowanie przez klientów rozmieszczonych na różnych maszynach komunikatów dla pojedynczego miksu, w takiej liczbie, aby miks nie musiał czekać na odebranie kolejnego komunikatu. Następnie został policzony czas potrzebny na przesłanie określonej liczby komunikatów i odpowiednio przeskalowany. Ostateczny wynik stanowi uśrednioną wartość z kilku kolejnych powtórzeń testu.

Drugi z przeprowadzonych testów mierzy opóźnienie odpowiedzi w zależności od liczby miksów pośredniczących ścieżki i ogólnego obciążenia sieci miksów. W tym teście mierzony był średni czas, jaki upływa pomiędzy wysłaniem żądania HTTP do klienta sieci miksów, a otrzymaniem od niego odpowiedzi z żądanym zasobem HTTP. Test był przeprowadzany tylko dla zasobów mniejszych niż maksymalna długość danych w pakiecie (3KB). W obecnej implementacji w przypadku większych plików opóźnienie będzie tyle razy większe, na ile fragmentów o wielkości 3KB został podzielony dany plik.

Wyniki testów znajdują się odpowiednio w tabelkach 5.25.3. Podana w tabeli 5.2 wydajność w megabitach na sekundę dotyczy surowych pakietów. Ilość danych protokołu HTTP zawarta w przesyłanych komunikatach stanowi dla przyjętych w implementacji stałych maksymalnie 75 procent całkowitej ilości danych przesyłanych pomiędzy miksami, reszta to informacje o przebiegu ścieżki i wypełnienie.


Tabela 5.2: Wydajność pojedynczego miksu w przetwarzaniu komunikatów zapieczętowanych za pomocą kluczy publicznych (RSA) i dzielonych (Blowfish)
Typ komunikatu komunikatyś Mbś
RSA 17.30 0.55
Blowfish 434.78 13.91


Rezultaty testu wydajności pokazują, że jeśli klienci posiadają już klucze dzielone, to nawet słaby serwer jest w stanie obsłużyć łącze o stosunkowo wysokiej przepustowości (przepustowość łączy internetowych udostępniana komputerom końcowym nie przekracza zwykle 10Mbś). Nawet gdy wszystkie przetwarzane komunikaty są zapieczętowane za pomocą RSA uzyskiwana jest akceptowalna przepustowość.

W wynikach testu opóźnień widać specyfikę protokołu miksów. Początkowo zwiększanie obciążenia sieci powoduje zmniejszenie opóźnień. Dzieje się tak dlatego, że przy małej liczbie klientów miksy muszą czekać na kolejne komunikaty w ramach pakietu do wymieszania (ale tylko przez ustalony z góry czas, w tym wypadku 125ms). Zwiększanie liczby klientów zmniejsza czas potrzebny na zebranie pakietu, aż do momentu granicznego, w którym czas oczekiwania staje się zerowy, a istotnym czynnikiem jest już koszt przetworzenia komunikatu. Dalsze zwiększanie liczby klientów powiększa opóźnienia, gdyż komunikaty muszą oczekiwać w kolejkach odbiorczych miksów.

Niewielkie opóźnienia zanotowane w tym teście sugerują, że znaczącym składnikiem opóźnień generowanych w rzeczywistych zastosowaniach byłby raczej czas potrzebny na przesłanie komunikatów pomiędzy miksami, niż czas przetwarzania komunikatów przez miksy. Czas przesłania komunikatów w tym teście był pomijalny, ze względu na umieszczenie wszystkich miksów w jednej sieci lokalnej.


Tabela 5.3: Opóźnienie odpowiedzi w milisekundach
  Liczba klientów
Długość ścieżki 1 4 7 10 13 16 19
4 511 450 430 447 455 540 620
6 820 720 696 701 753 845 895
8 1141 996 965 906 1038 1146 1190



next up previous contents
Next: Analiza bezpieczeństwa protokołu Up: Implementacja Previous: Mechanizm wymiany kluczy prywatnych   Spis treści
Michal Szafranski 2003-11-13