Netsukuku

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 26. října 2019; kontroly vyžadují 4 úpravy .
Netsukuku
Typ Decentralizovaná anonymní síť
Vývojář Vývojový tým Netsukuku
Zapsáno v Vala , C [1] a Python [1]
Operační systém linux
První vydání 2006
Nejnovější verze
Licence GNU GPL 3 [4]
webová stránka netsukuku.freaknet.org

NETSUKUKU  je projekt na vytvoření distribuované samoorganizující se peer-to- peer sítě schopné zajistit interakci velkého množství uzlů s minimální zátěží centrálního procesoru a paměti . V takové síti je možné zajistit zvýšenou odolnost proti chybám, anonymitu, nemožnost cenzury a úplnou nezávislost na internetu .

Projekt je založen na myšlence využití velkého potenciálu Wi-Fi komunikace : pokud počítače bezdrátových uživatelů fungují jako routery , pak je možné na jejich základě vytvořit samoorganizující se síť, která teoreticky může být i větší než internet.

Portování Vala je nyní dokončeno a je k dispozici beta verze. Vydání druhé verze je naplánováno na červenec-srpen 2017.

Implementace

NETSUKUKU  je síťová datová síť neboli p2p síť, která se automaticky generuje a udržuje se sama. Je navržen pro správu neomezeného počtu uzlů s minimální režií CPU a paměti. Díky tomu je v budoucnu možné vybudovat celosvětově distribuovanou, anonymní a neřízenou síť, oddělenou od internetu , bez podpory jakýchkoliv služeb, poskytovatelů a podobně. Taková síť se skládá z počítačů navzájem fyzicky propojených, takže není třeba přidávat stávající síť. NETSUKUKU vytváří pouze cesty, které spojují počítače do jediné sítě. Jinými slovy, NETSUKUKU nahrazuje vrstvu 3 současného modelu OSI jiným směrovacím protokolem.

Jako náhradu za DNS ( Domain Name System , systémy doménových jmen) navrhují autoři NETSUKUKU použít architekturu doménových jmen Netsukuku (ANDNA) .

NETSUKUKU se ovládá automaticky. Vytváří se sama a může fungovat autonomně. Když se nový uzel připojí k NETSUKUKU , síť se automaticky přepíše a všechny ostatní uzly znají nejrychlejší a nejefektivnější cestu k nově příchozímu uzlu. Uzly nemají žádná privilegia ani omezení ve srovnání s jinými uzly: jsou součástí stejné sítě.

S rostoucím počtem uzlů síť roste a stává se efektivnější. V NETSUKUKU není žádný rozdíl mezi LAN a WAN, takže mluvit o LAN nemá smysl.

Takovou síť nelze ovládat ani zničit, protože je zcela decentralizovaná a distribuovaná. Jediným způsobem, jak takovou síť zničit, je fyzicky deaktivovat každý signální uzel, který do ní vstoupí, nebo ji rozbít na nepropojené ostrůvky.

V rámci NETSUKUKU se může kdokoli, kdykoli a kdekoli připojit k síti bez jakékoli byrokracie nebo právního souhlasu. Navíc je každý uzel dynamický a není konstantní. IP adresa , která identifikuje počítač, je vybrána náhodně, takže ji nelze přiřadit skutečnému fyzickému umístění zdroje signálu. Navíc není kontakt s žádnými organizacemi.

Šířka pásma je omezena možnostmi současných síťových karet .

NETSUKUKU  je mesh síť, neboli p2p síť, postavená na dynamickém směrovacím protokolu Npv7_HT. V současné době existuje poměrně mnoho protokolů a algoritmů pro dynamické řízení, ale všechny se liší od Npv7_HT, protože se používají výhradně pro vytváření malých sítí. Internet governance je také řešena různými protokoly jako OSPF , RIP nebo BGP , které jsou založeny na klasických algoritmech schopných najít nejlepší cestu k dosažení uzlu v síti. Tyto protokoly vyžadují velké množství CPU a paměťových zdrojů. Z tohoto důvodu jsou pro takové účely určeny speciální počítače. Žádný z těchto protokolů nedokáže vytvořit a udržovat síť jako NETSUKUKU , ve které se každý uzel řídí sám, protože mapa trasy všech cest uložených na každém počítači v síti by vyžadovala asi 10 GB prostoru.

Struktura Npv7 je síť jako fraktál . Pro výpočet všech nezbytných komunikačních cest uzlu se všemi ostatními uzly používá protokol speciální algoritmus nazvaný Quantum Shortest Path Netsukuku (QSPN). Fraktál  je matematická struktura se zlomkovou dimenzí, která má rekurzivní vlastnost: každá jeho část je zmenšenou kopií celku. Proto je možná velká kontrakce struktury, která se může neomezeně roztahovat. To znamená, že k uložení celé mapy trasy NETSUKUKU je potřeba pouze několik kilobajtů . Strukturu směrovací mapy NETSUKUKU lze také definovat jako vysoce seskupený graf uzlů.

Na druhou stranu je QSPN meta -algoritmus v tom smyslu, že se neřídí žádnými matematickými pravidly, ale využívá náhodnost a chaos, které nevyžadují složité výpočty. QSPN běží na skutečných sítích, uzly posílají pakety QSPN k vytvoření sítě. Z tohoto důvodu není vždy pravda, že určitý paket bude odeslán dříve než kterýkoli jiný.

NETSUKUKU se neomezuje pouze na vytváření sítí počítačů. Jedná se o protokol, který lze použít v každé situaci, kdy potřebujete spojit tečky dohromady.

Mobilní telefonní síť se skládá z tisíců uzlů připojených k jedinému uzlu, který distribuuje provoz a přenáší informace do cílového uzlu. NETSUKUKU by mohlo být použito v mobilních telefonech, takže by nemělo smysl existovat více mobilních operátorů.

NETSUKUKU lze zabudovat do jakéhokoli komunikačního systému, který se aktuálně používá.

Protokol Npv7

Protokol NETSUKUKU , první verze.

NETSUKUKU používá svůj vlastní protokol Npv7 , který se zrodil ze tří předchozích verzí. První byl velmi podobný současným protokolům dynamického řízení: síť byla efektivně rozdělena do několika skupin a každý signalizační uzel měl jasnou mapu kompletní sítě. Takový systém nemohl fungovat s NETSUKUKU , protože mapa sítě musela být neustále aktualizována a každá aktualizace vedla k zahlcení sítě. Navíc po každé aktualizaci sítě bylo nutné přepočítat všechny cesty.

Vyznamenání NETSUKUKU.

Základní definice:

src_node Zdrojový uzel. Uzel, který odesílá paket do cílového uzlu dst_node. dst_node Cílový uzel. Uzel, který přijímá paket ze zdrojového uzlu src_node. r_uzel Vzdálený uzel z uzlu X je jakýkoli uzel připojený k uzlu X. g_uzel Skupina uzlů nebo skupina skupin uzlů. b_uzel Hraniční uzel je uzel připojený ke dvěma (r_node) uzlům z různých (g_node) skupin uzlů. h_uzel Přilnavý uzel je uzel, který se připojuje k NETSUKUKU. int_map Vnitřní mapa. Vnitřní mapa uzlu X obsahuje informace o skupině uzlů (g_node), do které patří. ext_map Externí karta. Mapa obsahuje informace o skupinách uzlů. bmap/bnode_map Mapa hraničních uzlů. Mapa obsahuje informace o (b_node) hraničních uzlech.

Npv7 II Laserový přenos směrovaný na několik blíže nespecifikovaných přijímačů najednou.

Npv7 II je druhá verze punkce Npv7.

NETSUKUKU je rozděleno do mnoha malých skupin uzlů, až sto uzlů v každé skupině, a každý uzel má externí mapu trasy. Všechny skupiny jsou organizovány do více skupin nazvaných quadro group_node. Aby bylo možné vytvořit novou trasu a připojit se k danému uzlu, zdrojový uzel pomocí své externí mapy nejprve hledá nejlepší cestu k okrajovému uzlu skupiny, do které cílový uzel patří.

QSPN

Pro někoho obeznámeného s vlnovou fyzikou bude snadné pochopit, jak qspn funguje. Pokud hodíte kámen do vodní tůně, můžete pozorovat následující: vlny se začínají šířit od výchozího bodu a každá vlna dává vzniknout nové vlně, která se dále šíří a rodí další a další vlny. Když vlna narazí na okraje bazénu nebo na nějakou bariéru, odrazí se a začne se šířit opačným směrem. Při aplikaci na qspn je kámen qspn_starter, pool je gnode a každá vlna je tracer_pkt. Každá nová vlna s sebou nese informaci o vlně, která ji zrodila. Když tracer_pkt (vlna) dosáhne extreme_node (překážky nebo hranice bazénu), zrodí se qspn_open (odražená vlna).

QSPN je založen na popsaném principu. Po spuštění trasování uzlu odešle každý uzel qspn_pkt s názvem qspn_close, čímž se stane qspn_starter. Qspn_pkt je normální tracer_pkt, ale jeho metoda vysílání se mírně liší od ostatních. Každý paket, který qspn_close přijme, „uzavře“ odkaz uzlu, ze kterého tento paket přijal, a odešle pakety na všechny své ostatní linky. Všechny následující přijaté pakety qspn_close budou předány na všech zbývajících neuzavřených linkách. Po určité době se objeví uzly, ve kterých budou všechny odkazy uzavřeny. Takové uzly se stanou extrémními uzly a pošlou jako odpověď další paket qspn_pkt (qspn_open). Jinými slovy, paket qspn_open je odeslán poté, co byly přijaty pakety qspn_close ze všech uzlů. Paket qspn_open obsahuje všechny informace shromážděné v posledním přijatém paketu qspn_close. Extreme_node odešle paket qspn_open na všechny své linky, kromě uzlu, ze kterého přijal poslední qspn_close; do tohoto uzlu je odeslán prázdný paket. Jinými slovy, paket qspn_open je odeslán poté, co uzel přijal paket qspn_close ze všech uzlů. Uzel, který přijme paket qspn_open, otevře všechny odkazy. Uzly se všemi otevřenými připojeními nedělají absolutně nic. To zajistí, že výměna paketů qspn_close bude dokončena. Balíčky qspn_open mají také identifikační číslo (sub_id), číslo, které identifikuje uzly "extreme_node" v externích mapách, které vygenerovaly tyto balíčky qspn_open. Sub_id, vygenerované v úplně prvním paketu a neměnící se ve všech vytvořených (qspn_open) paketech, se používá ke správě velkého počtu paketů qspn_pkt, protože dříve nebo později každý uzel vygeneruje paket qspn_open a všechny musí být nezávislé. a navzájem odlišné. Ve skutečnosti jsou všechny uzly, které mají pouze jedno připojení, extreme_nodes, protože když obdrží qspn_close, jsou již uzavřeny. Po odeslání paketu qspn_open nemůže uzel odpovědět nikomu jinému a na žádné přijaté pakety qspn_pkt, takže nic jiného nepošle.

Uzel qspn_starter, který spustil qspn, se stane normálním uzlem, ale neodešle paket qspn_open, protože odeslal první qspn_close. Navíc k aktualizaci své vlastní mapy uzel použije všechny přijaté pakety qspn_close, kromě těch, které odeslaly stejné uzly qspn_start. To udržuje stabilitu v případě, že existuje více než jeden uzel „qspn_starter“.

Poznámky

  1. 1 2 https://openhub.net/p/netsukuku
  2. http://pyntk.blogspot.com/2014/08/10-released.html
  3. http://netsukuku.freaknet.org/sourcecode.html
  4. https://savannah.nongnu.org/projects/netsukuku/

Viz také

Odkazy