Statystyki wydajności I2P

Przetestowałem i2p ...

Page content

Działa, ale wydajność, anonimowość i niezawodność są bardzo wątpliwe…

i2p+ desktop

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.

i2p ping times spread

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.

i2p overall ping delays spread

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.

i2p proxy type usability

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.

i2p service hosting usability

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.

Bardzo dobrze!

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.