Netsukuku

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 26 octombrie 2019; verificările necesită 4 modificări .
Netsukuku
Tip de Rețea anonimă descentralizată
Dezvoltator Echipa de dezvoltare Netsukuku
Scris in Vala , C [1] și Python [1]
Sistem de operare linux
Prima editie 2006
ultima versiune
Licență GNU GPL 3 [4]
Site-ul web netsukuku.freaknet.org

NETSUKUKU  este un proiect de creare a unei rețele peer-to-peer distribuite, auto - organizată , capabilă să asigure interacțiunea unui număr mare de noduri cu încărcare minimă pe procesorul central și pe memorie . Într-o astfel de rețea, este posibil să se ofere o toleranță crescută la greșeală, anonimat, imposibilitatea cenzurii și independență completă față de Internet .

Proiectul se bazează pe ideea de a utiliza marele potențial al comunicării Wi-Fi : dacă computerele utilizatorilor fără fir acționează ca routere , atunci este posibil să se creeze o rețea de auto-organizare pe baza acestora, care teoretic poate fi chiar mai mare decât Internetul.

Portarea Vala este acum completă și este disponibilă o versiune beta. Lansarea celei de-a doua versiuni este programată pentru iulie-august 2017.

Implementare

NETSUKUKU  este o rețea de date mesh, sau rețea p2p , care este generată automat și auto-întreținută. Este proiectat pentru a gestiona un număr nelimitat de noduri cu o supraîncărcare minimă pentru CPU și memorie. Datorită acestui fapt, în viitor este posibil să se construiască o rețea distribuită la nivel mondial, anonimă și necontrolată, separată de Internet , fără sprijinul niciunui servicii, furnizori și altele asemenea. O astfel de rețea constă din calculatoare conectate fizic între ele, deci nu este nevoie să se adauge peste o rețea existentă. NETSUKUKU creează doar căi care conectează computerele într-o singură rețea. Cu alte cuvinte, NETSUKUKU înlocuiește stratul 3 al modelului OSI actual cu un alt protocol de rutare.

Ca înlocuitor pentru DNS ( Domain Name System , sisteme de nume de domeniu), autorii NETSUKUKU sugerează utilizarea A Netsukuku Domain Name Architecture (ANDNA) .

NETSUKUKU este controlat automat. Se creează singur și poate funcționa autonom. Când un nou nod se conectează la NETSUKUKU , rețeaua se rescrie automat și toate celelalte noduri cunosc calea cea mai rapidă și eficientă către nodul nou sosit. Nodurile nu au privilegii sau restricții în comparație cu alte noduri: fac parte din aceeași rețea.

Pe măsură ce numărul de noduri crește, rețeaua crește și devine mai eficientă. În NETSUKUKU , nu există nicio distincție între LAN și WAN, așa că a vorbi despre LAN nu are sens.

O astfel de rețea nu poate fi controlată sau distrusă deoarece este complet descentralizată și distribuită. Singura modalitate de a distruge o astfel de rețea este de a dezactiva fizic fiecare nod de semnal care intră în el sau de a-l sparge în insule neconectate.

În NETSUKUKU , oricine, oricând și oriunde se poate conecta la rețea fără nicio birocrație sau consimțământ legal. Mai mult, fiecare nod este dinamic și nu constant. Adresa IP care identifică computerul este aleasă la întâmplare, deci nu poate fi corelată cu locația fizică reală a sursei de semnal. În plus, nu există niciun contact cu nicio organizație.

Lățimea de bandă este limitată de capacitățile plăcilor de rețea actuale .

NETSUKUKU  este o rețea mesh, sau rețea p2p , construită pe protocolul de rutare dinamică Npv7_HT. În prezent, există destul de multe protocoale și algoritmi pentru controlul dinamic, dar toți diferă de Npv7_HT, deoarece sunt folosiți strict pentru crearea de rețele mici. Guvernarea internetului este gestionată și de diverse protocoale precum OSPF , RIP sau BGP , care se bazează pe algoritmi clasici capabili să găsească cea mai bună cale pentru a ajunge la un nod din rețea. Aceste protocoale necesită o mulțime de resurse CPU și memorie. Din acest motiv, calculatoarele speciale sunt concepute pentru astfel de scopuri. Niciunul dintre aceste protocoale nu poate crea și menține o rețea precum NETSUKUKU , în care fiecare nod se gestionează singur, deoarece harta rutelor tuturor căilor stocate pe fiecare computer din rețea ar necesita aproximativ 10 GB de spațiu.

Structura lui Npv7 este o rețea ca un fractal . Pentru a calcula toate căile de comunicare necesare ale unui nod cu toate celelalte noduri, protocolul folosește un algoritm special numit Quantum Shortest Path Netsukuku (QSPN). Un fractal  este o structură matematică cu o dimensiune fracțională care are proprietatea recursivă: fiecare parte a acesteia este o copie redusă a întregului. Prin urmare, este posibilă o contracție mare a unei structuri, care se poate extinde la infinit. Aceasta înseamnă că sunt necesari doar câțiva kiloocteți pentru a stoca întreaga hartă a rutei NETSUKUKU . Structura hărții de rută NETSUKUKU poate fi definită și ca un grafic de noduri extrem de grupate.

Pe de altă parte, QSPN este un meta -algoritm în sensul că nu urmează nicio regulă matematică, ci folosește aleatorietatea și haosul care nu necesită calcule complexe. QSPN rulează pe rețele reale, nodurile trimit pachete QSPN pentru a crea o rețea. Din acest motiv, nu este întotdeauna adevărat că un anumit pachet va fi trimis înaintea oricărui altul.

NETSUKUKU nu se limitează la crearea de rețele de computere. Acesta este un protocol care poate fi folosit în orice situație în care trebuie să conectați puncte între ele.

O rețea de telefonie mobilă este formată din mii de noduri conectate la un singur nod care distribuie trafic și transmite informații către nodul destinație. NETSUKUKU ar putea fi folosit în telefoanele mobile, ceea ce face lipsit de sens existența mai multor operatori de telefonie mobilă.

NETSUKUKU poate fi încorporat în orice sisteme de comunicații utilizate în prezent.

Protocolul Npv7

Protocolul NETSUKUKU , prima versiune.

NETSUKUKU folosește propriul protocol Npv7 , care s-a născut din trei versiuni anterioare. Primul a fost foarte asemănător cu protocoalele actuale de control dinamic: rețeaua a fost efectiv împărțită în mai multe grupuri, iar fiecare nod de semnalizare avea o hartă clară a întregii rețele. Un astfel de sistem nu putea funcționa cu NETSUKUKU , deoarece harta rețelei trebuia actualizată în mod constant, iar fiecare actualizare a dus la congestionarea rețelei. În plus, după fiecare actualizare de rețea, a fost necesar să se recalculeze toate căile.

distincții NETSUKUKU.

Definitii de baza:

src_node Nodul sursă. Nodul care trimite pachetul la nodul destinație dst_node. dst_node Nodul de destinație. Nodul care primește pachetul de la nodul sursă src_node. r_node Un nod la distanță de la nodul X este orice nod conectat la nodul X. g_node Un grup de noduri sau un grup de grupuri de noduri. b_node Un nod de frontieră este un nod conectat la două noduri (r_node) din grupuri de noduri diferite (g_node). h_node Un nod care se agață este un nod care se conectează la NETSUKUKU. int_map Harta interioara. Harta internă a nodului X conține informații despre grupul de noduri (g_node) căruia îi aparține. ext_map Card extern. Harta conține informații despre grupuri de noduri. bmap/bnode_map Harta nodurilor de frontieră. Harta conține informații despre nodurile de frontieră (b_node).

Npv7 II Transmisie laser direcționată către mai multe receptoare nespecificate simultan.

Npv7 II este a doua versiune a puncției Npv7.

NETSUKUKU este împărțit în multe grupuri mici de noduri, până la o sută de noduri în fiecare grup, iar fiecare nod are o hartă externă a rutei. Toate grupurile sunt organizate în mai multe grupuri numite quadro group_node. Pentru a crea o rută nouă și a se conecta la un nod dat, nodul sursă, folosind harta sa externă, caută mai întâi cea mai bună cale către nodul de margine al grupului căruia îi aparține nodul destinație.

QSPN

Pentru cineva familiarizat cu fizica valurilor, va fi ușor de înțeles cum funcționează qspn. Dacă arunci o piatră într-un bazin de apă, poți observa următoarele: valurile încep să se răspândească din punctul de plecare, iar fiecare val dă naștere unui nou val, care continuă să se răspândească și să nască tot mai multe valuri. Când un val lovește marginile piscinei sau un fel de barieră, acesta este reflectat și începe să se propagă în direcția opusă. Când este aplicată la qspn, o rocă este un qspn_starter, un bazin este un gnod și fiecare val este un tracer_pkt. Fiecare val nou poartă cu el informații despre valul care l-a dat naștere. Când tracer_pkt (undă) atinge extreme_node (obstacole sau limite de bazin), se naște qspn_open (undă reflectată).

QSPN se bazează pe principiul descris. Începând o urmă de nod, fiecare nod trimite un qspn_pkt numit qspn_close, devenind astfel un qspn_starter. Qspn_pkt este un tracer_pkt normal, dar metoda sa de difuzare este ușor diferită de celelalte. Fiecare pachet pe care qspn_close îl primește „închide” legătura nodului de la care a primit acest pachet și trimite pachete pe toate celelalte legături ale sale. Toate pachetele qspn_close primite ulterioare vor fi redirecționate pe toate legăturile neînchise rămase. După o anumită perioadă de timp, apar noduri în care toate legăturile vor fi închise. Astfel de noduri devin extreme_nodes și trimit un alt pachet qspn_pkt (qspn_open) ca răspuns. Cu alte cuvinte, un pachet qspn_open este trimis după ce pachetele qspn_close au fost primite de la toate nodurile. Pachetul qspn_open conține toate informațiile colectate în ultimul pachet qspn_close primit. Extreme_node trimite un pachet qspn_open pe toate legăturile sale, cu excepția nodului de la care a primit ultimul qspn_close; la acest nod este trimis un pachet gol. Cu alte cuvinte, un pachet qspn_open este trimis după ce un nod a primit un pachet qspn_close de la toate nodurile. Nodul care primește pachetul qspn_open deschide toate legăturile. Nodurile cu toate conexiunile deschise nu fac absolut nimic. Acest lucru asigură că schimbul de pachete qspn_close este complet. Pachetele qspn_open au și un număr de identificare (sub_id), un număr care identifică nodurile „extreme_node” din hărțile externe care au generat aceste pachete qspn_open. Sub_id-ul, generat chiar în primul pachet și care nu se modifică în toate pachetele generate (qspn_open), este folosit pentru a gestiona un număr mare de pachete qspn_pkt, deoarece mai devreme sau mai târziu fiecare nod va genera un pachet qspn_open și toate trebuie să fie independente. și distincte unele de altele. Într-adevăr, toate nodurile care au o singură conexiune sunt extreme_nodes, deoarece atunci când primesc qspn_close, sunt deja închise. După trimiterea unui pachet qspn_open, nodul nu poate răspunde nimănui altcuiva și la niciun pachet qspn_pkt primit, deci nu trimite nimic altceva.

Nodul qspn_starter care a pornit qspn devine un nod normal, dar nu trimite un pachet qspn_open deoarece a trimis primul qspn_close. În plus, pentru a-și actualiza propria hartă, un nod va folosi toate pachetele qspn_close primite, cu excepția celor trimise de aceleași noduri qspn_start. Aceasta menține stabilitatea în cazul în care există mai mult de un nod „qspn_starter”.

Note

  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/

Vezi și

Link -uri