Tabel hash distribuit

Stilul acestui articol nu este enciclopedic sau încalcă normele din limba rusă.

DHT este o clasă de sisteme distribuite descentralizate care oferă un serviciu de căutare asemănător cu o tabelă hash care are structura unei matrice asociative. (cheie și valoare) stocate în DHT, iar fiecare nod participant poate căuta rațional pentru valoarea asociată cu această cheie. Responsabilitatea pentru menținerea legăturii dintre nume și valoare este distribuită între noduri, schimbarea setului de participanți este motivul pentru numărul minim de pauze. Acest lucru vă permite să scalați cu ușurință DHT și să monitorizați în mod constant adăugarea / eliminarea nodurilor și erorile în activitatea lor.







Cercetarea în domeniul DHT a fost inițial motivată, în special, de sistemele peer-to-peer, cum ar fi I2P. Napster. Gnutella. Freenet. care au folosit resursele distribuite pe Internet pentru a crea o singură aplicație. În special, au folosit internet de bandă largă și spațiu pe hard disk pentru a furniza un serviciu de distribuție a fișierelor. Aceste sisteme diferă în modul în care au găsit datele colegilor:

  • Napster avea un server de indexare central: fiecare nod, după înscriere, ar trebui să trimită o listă de fișiere stocate local pe serverul care trebuie să caute și să interogheze nodurile care conțin rezultatele. Această componentă centrală a făcut sistemul vulnerabil la atacuri și riscuri.
  • Gnutella și rețele similare s-au mutat la modelul de interogare avalanșă - în principiu, fiecare căutare ar duce la transmiterea unui mesaj către orice mașină din rețea. Evitând eșecul centralizat, această metodă a fost semnificativ mai puțin eficientă decât Napster.
  • În cele din urmă, Freenet a fost, de asemenea, distribuit pe deplin, dar rutarea funcționează pe baza unei chei euristice, în care fiecare fișier are o cheie asociată cu acesta, iar fișierele cu chei similare tind să se integreze într-un set similar de noduri. Cererea a fost trimisă cel mai probabil unor astfel de grupuri, fără a fi nevoie să interogați pe toți colegii. Cu toate acestea, Freenet nu a putut garanta că datele vor fi găsite.

DHT folosește rutarea bazată pe o cheie mai structurată pentru a realiza descentralizarea I2P. Gnutella și Freenet. precum și eficiența și rezultatele garantate ale Napster. Unul dintre deficiențele este că, ca și Freenet. DHT acceptă doar căutarea după potrivire exactă și nu prin cuvinte cheie, deși aceste caracteristici pot suprapune peste DHT.

DHT se caracterizează prin următoarele proprietăți:

  • Descentralizare. forma sistemului de noduri colective fără coordonare;
  • Scalabilitate. Sistemul va funcționa în mod egal pentru mii sau milioane de noduri;
  • Toleranța defecțiunilor. sistemul va fi la fel de fiabil (într-un sens) cu nodurile conectate permanent, deconectate și oferind erori.

Tehnica cheie pentru realizarea obiectivului este ca orice nod sa fie coordonat cu doar cateva noduri din sistem - de obicei O (logn), unde n este numarul participantilor (vezi mai jos) - astfel incat sa se faca doar o cantitate limitata de munca pentru fiecare schimbare numărul de participanți.

Unele proiecte DHT tind să ofere protecție împotriva utilizatorilor rău-intenționați și să permită participanților să rămână anonimi, deși acest lucru este mai puțin cunoscut decât în ​​multe alte sisteme P2P (mai ales atunci când distribuie fișiere); consultați rețelele anonime.

În cele din urmă, DHT trebuie să se ocupe de sisteme distribuite mai tradiționale, cum ar fi echilibrarea încărcăturii, integritatea și performanța datelor (în special, asigurarea rapidă a operațiunilor precum rutarea și stocarea datelor sau căutarea).

Structura DHT poate fi împărțită în mai multe componente principale. Se bazează pe un spațiu cheie abstract, cum ar fi un set de șiruri de 160 biți (numărul de biți poate varia). Schema de partiționare a spațiului-cheie distribuie proprietatea cheilor între nodurile participante. Apoi, rețeaua suprapusă conectează nodurile, ajutând la găsirea proprietarului oricărei taste din spațiul cheie.







Componentele partiționării spațiului-cheie și a rețelei suprapuse sunt descrise mai jos pentru a prezenta ideile de bază comune pentru majoritatea sistemelor DHT. Multe evoluții diferă în detaliu.

Împărțirea spațiului cheii

Majoritatea DHT-urilor folosesc versiuni diferite ale hash-ului consistent pentru a mapa cheile la noduri. Această metodă de partiționare se bazează pe funcție \ delta (k_1, k_2), Conceptul abstract al distanței dintre chei k_1 și k_2, care nu are nicio legătură cu distanța geografică sau cu întârzierea rețelei. Fiecărui nod i se atribuie o singură cheie, numită ID-ul său. Nod cu ID i_n deține toate cheile k_m, pentru care i_n - ID-ul cel mai apropiat calculat cu \ delta (k_m, i_n).

Un exemplu. Chord DHT tratează cheile ca puncte pe un cerc și \ delta (k_1, k_2) Distanța este traversată în sensul acelor de ceasornic de-a lungul circumferinței de la cheie k_1 la k_2. Astfel, cercul spațiului cheie este divizat în segmente adiacente, ale căror capete sunt identificatori de noduri. În cazul în care i_1 și I_2 ID adiacente, apoi nodul cu ID I_2 conține toate cheile care se află între i_1 și I_2.

Coordonarea hash are proprietatea principală: ștergerea sau adăugarea unui singur set de chei care aparțin nodurilor identificatorilor adiacenți nu afectează alte noduri.

DHT & BitTorrent

Harta de rețea DHT BitTorrent

Atât DHT cât și PEX îndeplinesc de fapt funcția de bază a tracker-ului BitTorrent - ele ajută participanții la partajarea de fișiere să învețe unul despre celălalt. Ei pot:

Cheia privată

În dispozitivele de urmărire publice (deschise), unde toată lumea poate descărca un torrent și poate participa la distribuție, DHT și PEX servesc în beneficiul tuturor participanților.

Apoi dezvoltatorii clienților au propus o nouă cheie în fișierul torrent: privat. Dacă este 1, atunci clientul este obligat pentru acest torrent să dezactiveze automat DHT / PEX indiferent de dorința utilizatorului. Un astfel de torent se numește Secure Torrent.

Aproape toate trackerele private moderne inserează forțat personal: 1 în toate torrentele expuse pe tracker și interzic, de asemenea, câteva versiuni învechite ale clienților care susțin DHT sau PEX, dar care încă nu știu cheia privată. Se crede că utilizatorii tracker pur și simplu nu pot utiliza DHT / PEX pe distribuții, și nu există nici o problemă. De fapt, pentru a nu lua în considerare ratingul, este suficient să înlocuiți parola cu oricare alta. Și nici nu trebuie să o furiți. Este suficient să vă înregistrați încă un cont pentru a lua o cheie de acces.

DHT și statistici

Această secțiune se aplică numai pentru trackerele închise, pe care cheia privată nu este forțată în torrente. și pe unele distribuții (în funcție de faptul dacă distribuitorul a introdus cheia privată în torrent), puteți utiliza DHT și PEX.

Se sugerează adesea că DHT inclus în client afectează urmărirea statisticilor clientului de către tracker, de exemplu "distribuită prin DHT, astfel încât statisticile au trecut trecutul tracker-ului". Acest lucru nu este adevărat.

Adică, "distribuit prin DHT" înseamnă de fapt "despre unii (sau despre toți) colegii au primit informații despre DHT și, probabil, și unele sărbători mi-au găsit prin DHT"

Clientul raportează tracker-ului datele totale privind volumul descărcărilor pe care le-a descărcat și le-a dat tuturor colegilor cu care a comunicat. indiferent dacă clientul a învățat despre sărbători individuale prin intermediul unui tracker, DHT sau PEX, sau acea sărbătoare a început, în general, conexiunea în sine. Asta este, chiar daca din cauza DHT / PEX pe mana va fi „stânga“ utilizatori (care nu a circulat la tracker), clientul va raporta în continuare la tracker tot ce au mai descărcat și plătit.

Înregistrarea corectă a statisticilor depinde numai de starea dispozitivului de urmărire: tracker-ul funcționează - statisticile sunt luate în considerare, nu funcționează - nu sunt luate în considerare. Numai în cazul unui tracker inactiv pe termen lung, DHT / PEX poate juca un rol indirect, permițând încetarea treptată a partajării de fișiere pe o astfel de "distribuție fără a ține seama de statistici".

Mecanismul DHT

Implementarea unei rețele distribuite în clienții BitTorrent se bazează pe versiunea DHT, numită Kademlia. În general, DHT (tabelul hash distribuit) înseamnă un sistem distribuit descentralizat pentru combinarea unui număr mare de noduri în continuă dispariție și emergente și transmiterea eficientă a mesajelor între ele. Pe baza structurilor DHT, sunt construite diverse sisteme mai complexe, cum ar fi partajarea de fișiere P2P, cache-ul web cooperant, serviciile DNS și așa mai departe.

DHT utilizează protocolul UDP. Clienții BitTorrent "ascultă" același număr de port UDP pe care îl utilizează pentru conexiunile TCP primite. Dacă utilizați în mod activ DHT, deschiderea acestui port UDP pentru accesul din exterior este de dorit, dar nu este necesară - DHT va funcționa la fel.

Fiecare client conectat este un nod separat în rețeaua DHT. Are propriul ID unic (identificator), selectat aleatoriu din același spațiu de 160 de biți ca și infohash's of torrents.

Fiecare nod stochează o tabelă de rutare care conține informații de contact despre multe dintre nodurile "cele mai apropiate" și câteva mai îndepărtate. "Apropierea" celor două noduri se calculează din "similitudinea" identității lor și nu are nimic de-a face cu proximitatea lor geografică.

deficiențe

  1. Există mai multe protocoale incompatibile care servesc diferite rețele.
  2. Activitatea clientului ca nod DHT creează o sarcină mare pe router (router).
  3. Hashi este publicat în mod deschis, ceea ce vă permite să urmăriți distribuțiile în mod interactiv (ceea ce folosesc titularii de drepturi).Cercetătorii spionează utilizatorii BitTorrent în timp real DHT Protocol Extensie pentru colegi pentru a trimite fișiere de metadate
  4. În implementarea existentă, DHT creează un trafic puternic parazitar la computerul clientului, deoarece mesajele DHT continuă să se adreseze modelului: Citarea trebuie trimisă clientului, chiar dacă computerul client nu mai acceptă acest trafic (când programul este oprit).

Articole similare

notițe







Articole similare

Trimiteți-le prietenilor: