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.2 i 5.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.
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.
|