Netsukuku
Netsukuku – nazwa eksperymentalnego systemu trasowania peer-to-peer opracowanego przez FreakNet MediaLab utworzonego w celu stworzenia rozproszonej sieci, anonimowej i wolnej od cenzury. W pełni niezależnej ale niekoniecznie oddzielonej od Internetu bez jakiegokolwiek wsparcia serwera, ISP bez władz centralnych. Do działania nie jest potrzebne nic więcej niż zwykłe karty sieciowe.
Podstawowa idea
edytujNetsukuku ma na celu stworzenie w pełni rozproszonej sieci. Główną ideą jest zbudowanie systemu który może być zbudowany i utrzymywany w sposób autonomiczny. Jest przeznaczony do obsługi bardzo dużej liczby węzłów z minimalnymi zasobami CPU i pamięci. Sieć może być zbudowana z wykorzystaniem istniejących komponentów infrastruktury sieci takich jak Wi-Fi.
Protokół trasowania Netsukuku buduje odpowiednie trasy które łączą wszystkie komputery w sieci zastępując poziom 3 modelu OSI innym protokołem trasowania zwanym QSPN (Quantum Shortest Path Netsukuku). Ponadto system nazw domen (DNS) jest zastąpiony przez zdecentralizowany i rozproszony system zwany ANDNA (A Netsukuku Domain Name Architecture). Sieć może przetrwać utratę węzła bez przerywania usług w sieci. Należy pamiętać, że dla kompletnie dynamicznej sieci wymaga to stałej aktualizacji tras i stoi w sprzeczności z wymaganiami Netsukuku dotyczącymi skalowalności i stabilności.
Ponieważ Nesukuku nie jest siecią P2P zbudowaną na Internecie, obsługuje trasy inaczej. To jest fizyczna sieć i jest dynamiczny system trasowania przeznaczony do obsługi 2128 węzłów bez serwerów lub systemów centralnych.
Zasada działania
edytujNetsukuku ma na celu być w stanie uruchomić się z minimalnym użyciem zasobów, więc zamiast rozwiązywać ciężkie problemy obliczeniowe dotyczące obliczeń tras i jeszcze być skalowalne do 2128 węzłów (używając IPv6), używa protokołu trasowania nazywany QSPN. Kiedy węzeł dołącza do osnowy sieci, Netsukuku automatycznie dopasowuje i wszystkie inne węzły aby poznały najszybsze i najbardziej efektywne trasy do komunikowania się z nowicjuszem. Węzły nie mają żadnych uprawnień lub ograniczeń w stosunku do innych węzłów; wszystkie one należą do sieci i przyczyniają się do jej rozwoju i efektywności będąc równymi. Ilekroć liczba jego węzłów rośnie, sieć zmienia swój kształt i trasy usprawniają się automatycznie usuwając zbędne połączenia używające rozłącznych tras. Zbyteczne trasy są usuwane ażeby zwolnic pamięć dla pozostałych. Utrzymywanie zbędnych tras w tablicy trasowania nie jest optymalne, bo jeśli jedna z dróg zawiedzie, jest duże prawdopodobieństwo że wszystkie inne zbędne trasy także zawiodą. Zwykłe protokoły i algorytmy do dynamicznego trasowania są zwykle używane do tworzenia małych i średnich sieci jak OSPF, RIP lub BGP i używają różnych algorytmów do znalezienia najlepszej drogi do osiągnięcia węzła w sieci. Protokoły te wymagają stosownego użycia procesora i pamięci i z tego powodu że routery internetowe są często specjalnie dedykowanymi komputerami. Byłoby niemożliwe do przyjęcia jednego z tych protokołów do tworzenia i utrzymania bardzo dużej sieci.
Topologia hierarchiczna
edytujTabele trasowania mają skłonność do przyjmowania dużych rozmiarów na ogromnych sieciach. Nawet jeśli będziemy trzymali tylko jedną trasę do osiągnięcia jednego węzła i nawet jeśli ta trasa kosztuje jeden bajt, będziemy potrzebowali 1 GB pamięci na sieć składająca się z 109 węzłów.
Z tego powodu konieczna jest dogodna topologia sieci. Netsukuku przyjmuje hierarchiczną strukturę. 256 węzłów (nodes) jest zgrupowane wewnątrz gnode (grupy węzłów), 256 gnodes jest zgrupowane w pojedyncze ggnode (grup grup węzłów), 256 ggnodes są zgrupowane w pojedyncze gggnode i tak dalej. Zalety topologii hierarchicznej są opisane w głównej dokumentacji teorii Netsukuku.
QSPN
edytujBieżącą wersją protokołu jest QSPNv2. QSPN zakłada dwie rzeczy:
- Mobilne węzły nie są obsługiwane przez obecną teorię. Wynika to z faktu że routery sieci WiFi nie zmieniają swojej lokalizacji bardzo często. Niemniej jest to ważne założenie, zwykle są one podłączone do anten zewnętrznych lub montowane na dachach.
- Sieć nie jest szybko aktualizowana. Może trwać kilka minut zanim wszystkie węzły dowiedzą się o zmianach w sieci, takich jak dołączone nowe węzły, by bardziej efektywne trasy stały się dostępne.
Jednak gdy węzeł dołącza do sieci, może dotrzeć do wszystkich innych węzłów od pierwszej chwili za pomocą połączenia ze swoimi sąsiadami. Algorytm trasowania musi być w stanie znaleźć trasy bez przeciążania sieci zasobów węzła. Ale ponieważ QSPN sam nie jest w stanie obsługiwać całej sieci ponieważ to nadal wymaga zbyt dużo pamięci, konieczna jest struktura sieci w dogodnej topologii. Ponieważ na każdym poziomie jest maksymalnie 256 (g)nodes, QSPN będzie zawsze działać na maksymalnie 256 (g)nodes. Po prostu musimy być pewni że algorytm działa zgodnie z oczekiwaniami na każdym przypadku grafu złożonego z mniej lub 256 węzłów.
A Netsukuku Domain Name Architecture
edytujArchitektura Nazw Domen Netsukuku (ANDNA) to rozproszony system nazewnictwa i zarządzania nazwami który odgrywa tę samą rolę co DNS. Baza danych ANDNA jest włączona do systemu Netsukuku, tak więc każdy węzeł zawiera taką bazę, a najgorszym scenariuszu może zająć 355 kilobajtów pamięci. Upraszając ANDNA działa w następujący sposób: Aby rozwiązać symboliczną nazwę, host stosuje funkcję Hash. Funkcja hash zwraca adres którym się host kontaktuje prosząc rozwiązanie generowane przez hasz. Węzeł z którym się kontaktujemy otrzymuje żądanie szukania jego w bazie danych ANDNA dla adresu związanego z nazwą i zwraca do zgłaszającego hosta. Zapisywanie odbywa się podobną drogą. Na przykład przypuśćmy, że węzeł X powinien zapisać adres FreakNet.andna, X oblicza hasz nazwy i uzyskuje adres 11.22.33.44 związany z węzłem Y. Węzeł X kontaktuje się z Y wymagając rejestracji dla 11.22.33.44 hasz jako jego własny. Y zapamiętuje żądanie w swojej bazie danych i żądanie rozwiązania hasza 11.22.33.44 będzie odpowiedzią z adresem X.
Node X ip: 123.123.123.123 hash(hostname: "FreakNet.andna" ) == 11.22.33.44 || || Node Y ip: 11.22.33.44 { [FreakNet.andna in the database of node Y] } {hash_11.22.33.44→ 123.123.123.123}
Protokół jest oczywiście bardziej złożony ponieważ system dostarcza klucz publiczny i prywatny w celu uwierzytelnienia hostów i zapobieganiu nieautoryzowanym zmianom w bazie ANDNA. Ponadto protokół dostarcza bazę nadmiarowości aby uczynić protokół odporny na awarie i reagujący na zmianę topologii. Protokół nie dostarcza możliwości cofnięcia symbolicznej nazwy, ta po pewnym okresie nieaktywności (obecnie 3 dni) jest po prostu usuwana z bazy. Protokół również zapobiega temu aby pojedynczy host zapisał zbyt dużą liczbę nazw symbolicznych (obecnie 256 nazw) aby spamerzy nie przechowywali dużej liczby powszechnie używanych terminów do wykonywania cybersquattingu.
Użycie
edytujCelem sieci Netsukuku jest realizacja infrastruktury która nie polegając na zwykłej infrastrukturze internetu jest bardziej ekonomiczna i niezależna umożliwiając dostęp do sieci użytkowników którzy nie są w stanie płacić regularnych rachunków ISP. Projektanci sieci zakładają współistnienie tej sieci równolegle z internetem opierając się głównie na sieciach bezprzewodowych które mają zasięg kilku kilometrów.