Statystyki wydajności I2P
Przetestowałem i2p ...
Działa, ale wydajność, anonimowość i niezawodność są bardzo wątpliwe…
TL;DR
W skrócie
- Przetestowałem 3 typy wdrożeń, aby zmierzyć, jak działają jako proxy (bardzo podobne)
- Przetestowałem 3 typy wdrożeń usług ukrytych (i2p+ był najlepszy)
- Udział w przesyłaniu nie wpływa na wydajność sieci i2p, ale zwiększa zużycie zasobów.
I2P jest wolny. Jedno pingowanie trwa 5–10 sekund. I nie ma gwarancji, że nie wygaśnie, nawet jeśli masz dobre połączenie.
Krótko o tym, co to jest
I2P to protokół sieciowy na poziomie IP, wykorzystuje zarówno TCP, jak i UDP, zarówno IPv6, jak i IPv4.
Główna idea jest podobna do TOR – przesyłać pakiety sieciowe, szyfrując je na bieżąco, tak że
- węzeł przesyłający pakiet nie wie, co się w nim znajduje
- węzeł odbierający pakiet nie wie, kto był jego oryginalnym nadawcą.
I2P nie ma standardowego sposobu na przeglądanie “dużego internetu” (clearnet), są jednak outproxy, ale no cóż… TOR jest znacznie lepszy w tym. To, co ma I2P, to “ukryte usługi”. Teoretycznie te usługi nie wiedzą, kto je wywołuje, a użytkownicy nie wiedzą, który węzeł znajduje się za każdą usługą.
Usługi mogą być dowolnym standardowym programem internetowym – serwer IRC, serwer WWW z czymkolwiek, REST API, XMPP lub serwer pocztowy.
I nie ma tam zbyt wielu usług. Około 200 stron? Albo 300?
Cel, sposób, aspekty moralne i prawne.
Widzę dwa motywacje do hostowania ukrytej usługi
- Zmuszenie (upewnienie się) o własnej anonimowości i prywatności
- Ucieczka przed bezpośrednim spojrzeniem “Big Brothera” – nie wszyscy mieszkają w krajach demokratycznych, niektóre tyraniczne rządy prześladowają i przejmują, kogo tylko mogą. Ale do tej kategorii (“ucieczka”) wliczyłbym też dowolną działalność nielegalną. To tylko motyw.
Aspekty moralne i prawne są skomplikowane. Moje zdanie (nie jestem ekspertem prawnym, więc nie traktuj tego jako poradą):
Ludzie mają [moralne] prawo do prywatności. Mają [moralne] prawo powiedzieć „F.U. To nie twoja sprawa”. Mają [moralne] prawo być… no cóż… niezadowoleni, kiedy niektóre programy lub telefony komórkowe publikują ich lokalizację, satelity robią zdjęcia ich ogrodów i publikują je na Google Street View, a rządy ignorują tę aktywność i niezadowolenie. Jednocześnie rządy mają AFAIK [prawne] prawo inwazji na prywatność ludzi, są pewne warunki, czasem. Na przykład w Australii policjant może żądać, byś otworzył swój telefon komórkowy, co ma ogromne konsekwencje moralne. Zobacz historię Moniki Smith, która w jakiś sposób została poproszona, by otworzyła swój telefon, gdzie policja uzyskałaby kontakty protestujących za wolność. (To były czasy lockdownów w Melbourne, najtrudniejsze na świecie). Policja wycofała się, ale Monika potem ryzykowała czas na więzienie za brak posłuszeństwa.
Anonimowość to inny duży aspekt życia ludzi. Moje zdanie to, że nadzór i deanonimizacja są zbyt często używane tylko do doxxowania, inwazji na prywatność i przeklinania. Lepiej mieć jasne zasady i procedury, kiedy komuś wolno je używać.
Wydajność
OK. Tutaj idziemy.
Zmierzyłem, jak długo trwa ukończenie pingowania. (HEAD {site}.i2p)
Poniżej znajduje się rozkład opóźnień odpowiedzi.
Ten wykres rozkładu pokazuje, że oczekiwana długość wywołania wynosi około 5 sekund.
Ustawiłem czas timeout na 90 sekund, a jak widzisz, niektóre żądania wcale się nie ukończyły. 30 sekund i 60 sekund są prawdopodobnie timeoutami po stronie serwera lub routera.
Główne strony to dobrze ugruntowane strony http://idk.i2p/, http://zzz.i2p/, http://identiguy.i2p/, http://333.i2p/, http://i2pforum.i2p/ i podobne, łącznie 25 takich stron. Grupa Extra – zestaw innych 100+ stron.
Założyłem, że właściciele stron głównych wiedzą, co robią, i rzeczywiście ich strony mają lepszą wydajność niż strony z grupy Extra. Ale różnica nie jest ogromna – tylko 1 sekunda (~5 sekund vs ~6 sekund medianowy czas wywołania). I! Strony główne nadal czasami przekraczały czas limitu, jak widzisz na pierwszym wykresie (rozkład czasu wywołania).
Poniżej znajduje się wykres użyteczności typu proxy.
Zmierzone długości pingowania stron z grupy głównej z różnych proxy. I2P+ na jednym i I2Pd na dwóch różnych wdrożeniach pokazują bardzo podobne wyniki.
Teraz odpowiednie wdrożenie usług.
Gruba czerwona tutaj to I2P+.
Anonimowość
Było od 4000 do 10 000 routerów online, ich publiczne adresy IP są dobrze widoczne. Więc nie możemy mówić o dużej anonimowości tutaj.
Zużycie zasobów
W moich eksperymentach I2Pd zużywał ~130 MB RAM + ~7% CPU.
I2P+ zużywał ~350+ MB RAM + ~70+ % CPU.
W konfiguracji I2P+ lekko zwiększyłem pojemność RAM, licząc, że będzie lepiej działał. Więc, oto wyniki.
Udział w przesyłaniu w moich eksperymentach nie wpływał na wydajność sieci i2p, ale zwiększał obciążenie CPU około +20%.
Więc jeśli planujesz hosting I2Pd – 1vCPU + 512 MB wystarczy, myślę. A dla I2P+ – 2vCPU + 1 GB przynajmniej.
Wrażenie
To jak Fido, BBS i stare dobre czasy. Kiedy sieć jest taka mała, że prawie wszyscy znają się nawzajem, tylko przez nicki.
To wolne. I puste.
Ale wrażenie jest tak analogowe.