Netsukuku

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 26. oktober 2019; checks kræver 4 redigeringer .
Netsukuku
Type Decentraliseret anonymt netværk
Udvikler Netsukuku udviklingsteam
Skrevet i Vala , C [1] og Python [1]
Operativ system linux
Første udgave 2006
nyeste version
Licens GNU GPL 3 [4]
Internet side netsukuku.freaknet.org

NETSUKUKU  er et projekt, der skal skabe et distribueret selvorganiserende peer-to- peer - netværk, der er i stand til at sikre interaktionen mellem et stort antal noder med minimal belastning af den centrale processor og hukommelse . I et sådant netværk er det muligt at give øget fejltolerance, anonymitet, umuligheden af ​​censur og fuldstændig uafhængighed af internettet .

Projektet er baseret på ideen om at bruge det store potentiale i Wi-Fi- kommunikation : Hvis trådløse brugeres computere fungerer som routere , så er det muligt at skabe et selvorganiserende netværk baseret på dem, som teoretisk set kan være endda større end internettet.

Porteringen af ​​Vala er nu fuldført , og en betaversion er tilgængelig. Udgivelsen af ​​den anden version er planlagt til juli-august 2017.

Implementering

NETSUKUKU  er et mesh-datanetværk, eller p2p -netværk, som automatisk genereres og vedligeholdes selv. Den er designet til at håndtere et ubegrænset antal noder med minimal CPU og hukommelsesomkostninger. Takket være dette er det i fremtiden muligt at opbygge et verdensomspændende distribueret, anonymt og ukontrolleret netværk, adskilt fra internettet , uden støtte fra nogen tjenester, udbydere og lignende. Et sådant netværk består af computere, der er fysisk forbundet med hinanden, så der er ingen grund til at tilføje oven på et eksisterende netværk. NETSUKUKU opretter kun stier, der forbinder computere til et enkelt netværk. Med andre ord erstatter NETSUKUKU lag 3 i den nuværende OSI-model med en anden routingprotokol.

Som en erstatning for DNS ( Domain Name System , domænenavnesystemer) foreslår forfatterne af NETSUKUKU at bruge A Netsukuku Domain Name Architecture (ANDNA) .

NETSUKUKU styres automatisk. Den skaber sig selv og kan fungere selvstændigt. Når en ny node opretter forbindelse til NETSUKUKU , omskriver netværket sig selv automatisk, og alle andre noder kender den hurtigste og mest effektive vej til den nyligt ankomne node. Noder har ingen privilegier eller begrænsninger sammenlignet med andre noder: de er en del af det samme netværk.

Efterhånden som antallet af noder stiger, vokser netværket og bliver mere effektivt. I NETSUKUKU er der ingen forskel mellem LAN og WAN, så det er meningsløst at tale om LAN .

Et sådant netværk kan ikke kontrolleres eller ødelægges, fordi det er fuldstændig decentraliseret og distribueret. Den eneste måde at ødelægge et sådant netværk på er fysisk at deaktivere hver signalknude, der kommer ind i det, eller opdele det i ikke-forbundne øer.

Inden for NETSUKUKU kan enhver, når som helst og hvor som helst oprette forbindelse til netværket uden noget bureaukrati eller juridisk samtykke. Desuden er hver node dynamisk og ikke konstant. IP-adressen , der identificerer computeren, er valgt tilfældigt, så den kan ikke matches med den reelle fysiske placering af signalkilden. Derudover er der ingen kontakt til nogen organisationer.

Båndbredden er begrænset af de nuværende netværkskorts muligheder .

NETSUKUKU  er et mesh-netværk, eller p2p -netværk, bygget på den dynamiske routingprotokol Npv7_HT. I øjeblikket er der en del protokoller og algoritmer til dynamisk kontrol, men de adskiller sig alle fra Npv7_HT, da de udelukkende bruges til at skabe små netværk. Internetstyring håndteres også af forskellige protokoller såsom OSPF , RIP eller BGP , som er baseret på klassiske algoritmer, der er i stand til at finde den bedste vej til at nå en node på netværket. Disse protokoller kræver mange CPU- og hukommelsesressourcer. Af denne grund er specielle computere designet til sådanne formål. Ingen af ​​disse protokoller kan oprette og vedligeholde et netværk som NETSUKUKU , hvor hver node styrer sig selv, fordi rutekortet over alle stier gemt på hver computer på netværket ville kræve omkring 10 GB plads.

Strukturen af ​​Npv7 er et netværk som en fraktal . For at beregne alle de nødvendige kommunikationsveje for en node med alle andre noder, bruger protokollen en speciel algoritme kaldet Quantum Shortest Path Netsukuku (QSPN). En fraktal  er en matematisk struktur med en brøkdimension, der har den rekursive egenskab: hver del af den er en reduceret kopi af helheden. Derfor er en stor sammentrækning af en struktur mulig, som kan udvide sig i det uendelige. Det betyder, at der kun er brug for nogle få kilobytes for at gemme hele NETSUKUKU- rutekortet . NETSUKUKU -rutekortstrukturen kan også defineres som en meget klynget nodegraf.

På den anden side er QSPN en meta -algoritme i den forstand, at den ikke følger nogen matematiske regler, men bruger tilfældigheder og kaos, der ikke kræver komplekse beregninger. QSPN kører på rigtige netværk, noder sender QSPN- pakker for at skabe et netværk. Af denne grund er det ikke altid sandt, at en bestemt pakke vil blive sendt før nogen anden.

NETSUKUKU er ikke begrænset til at skabe netværk af computere. Dette er en protokol, der kan bruges i enhver situation, hvor du skal forbinde prikker sammen.

Et mobiltelefonnetværk består af tusindvis af knudepunkter forbundet til en enkelt knude, der distribuerer trafik og videresender information til destinationsknuden. NETSUKUKU kunne bruges i mobiltelefoner, hvilket gør det meningsløst for flere mobiltelefonoperatører at eksistere.

NETSUKUKU kan indlejres i alle kommunikationssystemer, der er i brug.

Npv7 protokol

NETSUKUKU -protokol , første version.

NETSUKUKU bruger sin egen Npv7 -protokol , som blev født fra tre tidligere versioner. Den første var meget lig de nuværende dynamiske kontrolprotokoller: netværket var effektivt opdelt i flere grupper, og hver signalknude havde et klart kort over hele netværket. Sådan et system kunne ikke fungere med NETSUKUKU , da netværkskortet hele tiden skulle opdateres, og hver opdatering resulterede i netværksoverbelastning. Derudover var det efter hver netværksopdatering påkrævet at genberegne alle stier.

NETSUKUKU-udmærkelser.

Grundlæggende definitioner:

src_node Kilde node. Noden, der sender pakken til destinationsknuden dst_node. dst_node Destinationsknudepunkt. Noden, der modtager pakken fra kildenoden src_node. r_node En fjernknude fra knude X er enhver knude forbundet til knude X. g_node En gruppe af noder eller en gruppe af grupper af noder. b_node En grænseknude er en knude forbundet med to (r_node) knudepunkter fra forskellige (g_node) knudepunkter. h_node En hængende knude er en knude, der forbinder til NETSUKUKU. int_map Internt kort. Det interne kort over node X indeholder information om gruppen af ​​noder (g_node), som det tilhører. ext_map Eksternt kort. Kortet indeholder information om grupper af noder. bmap/bnode_map Kort over grænseknuder. Kortet indeholder information om (b_node) grænsenoder.

Npv7 II Lasertransmission rettet til flere uspecificerede modtagere på én gang.

Npv7 II er den anden version af Npv7-punkteringen.

NETSUKUKU er opdelt i mange små nodegrupper, op til hundrede noder i hver gruppe, og hver node har et eksternt rutekort. Alle grupper er organiseret i multigrupper kaldet quadro group_node. For at oprette en ny rute og oprette forbindelse til en given knude, søger kildenoden ved hjælp af sit eksterne kort først efter den bedste sti til kantknudepunktet for den gruppe, som destinationsknuden tilhører.

QSPN

For en person, der er bekendt med bølgefysik, vil det være let at forstå, hvordan qspn fungerer. Kaster man en sten i en vandpøl, kan man observere følgende: Bølger begynder at brede sig fra udgangspunktet, og hver bølge giver anledning til en ny bølge, som fortsætter med at brede sig og føder flere og flere bølger. Når en bølge rammer bassinets kanter eller en form for barriere, reflekteres den og begynder at forplante sig i den modsatte retning. Når den anvendes på qspn, er en sten en qspn_starter, en pool er en gnode, og hver bølge er en tracer_pkt. Hver ny bølge bærer information med sig om den bølge, der fødte den. Når tracer_pkt (bølge) når extreme_node (forhindringer eller pool grænser), er qspn_open (reflekteret bølge) født.

QSPN er baseret på det beskrevne princip. Ved at starte en nodesporing sender hver node en qspn_pkt kaldet qspn_close, og bliver dermed en qspn_starter. Qspn_pkt er en normal tracer_pkt, men dens udsendelsesmetode er lidt anderledes end de andre. Hver pakke, som qspn_close modtager, "lukker" linket til den node, hvorfra den modtog denne pakke, og sender pakker på alle dens andre links. Alle efterfølgende modtagne qspn_close-pakker vil blive videresendt på alle resterende ulukkede links. Efter et vist tidsrum vises noder, hvor alle links vil blive lukket. Sådanne noder bliver extreme_nodes og sender en anden qspn_pkt-pakke (qspn_open) som et svar. Med andre ord sendes en qspn_open-pakke, efter at qspn_close-pakker er modtaget fra alle noder. qspn_open-pakken indeholder al information indsamlet i den sidst modtagne qspn_close-pakke. Extreme_node sender en qspn_open-pakke på alle dens links, undtagen den node, hvorfra den modtog den sidste qspn_close; en tom pakke sendes til denne node. Med andre ord sendes en qspn_open-pakke, efter at en node har modtaget en qspn_close-pakke fra alle noder. Den node, der modtager qspn_open-pakken, åbner alle links. Noder med alle forbindelser åbne gør absolut intet. Dette sikrer, at udvekslingen af ​​qspn_close-pakker er fuldført. qspn_open-pakker har også et identifikationsnummer (sub_id), et nummer, der identificerer "extreme_node"-knuderne i eksterne maps, der genererede disse qspn_open-pakker. Sub_id'et, genereret i den allerførste pakke og ikke ændres i alle afledte (qspn_open) pakker, bruges til at administrere et stort antal qspn_pkt pakker, da hver node før eller siden vil generere en qspn_open pakke, og alle skal være uafhængige og adskilt fra hinanden. Faktisk er alle noder, der kun har én forbindelse, extreme_nodes, for når de modtager qspn_close, er de allerede lukkede. Efter at have sendt en qspn_open-pakke, kan noden ikke svare til nogen andre og eventuelle modtagne qspn_pkt-pakker, så den sender ikke andet.

Den qspn_starter-knude, der startede qspn, bliver en normal knude, men sender ikke en qspn_open-pakke, fordi den sendte den første qspn_close. For at opdatere sit eget kort vil en node desuden bruge alle modtagne qspn_close-pakker, undtagen dem, der sendes af de samme qspn_start-knuder. Dette bevarer stabiliteten i tilfælde af, at der er mere end én "qspn_starter" node.

Noter

  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/

Se også

Links