Rete Kad

Aperto da GOLDRAKE[ITA], 21 Marzo 2009, 21:22:39 PM

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

GOLDRAKE[ITA]

Connettersi alla rete
La sola cosa necessaria per connettersi a questa rete è l'IP e la porta di un qualsiasi client eMule già connesso. Questa operazione si chiama Boot Strap. Una volta che il client è sulla rete chiede agli altri client di determinare se può essere contattato senza problemi. Questo processo è molto simile alla verifica ID alto/ID basso di un client sui server. Se è possibile contattare il tuo client senza problemi ti verrà assegnato un ID (simile all'ID alto per i server eDonkey2000) e ti verrà dato lo stato open.



Se invece non sei liberamente raggiungibile ti verrà assegnato lo stato firewalled. Dalla versione 0.44a di eMule in poi, la rete Kademlia supporta una funzione 'Compagno' per gli utenti firewalled. Compagni sono altri utenti connessi alla rete Kademlia che hanno lo stato Open e fungono da tramite per le connessioni che gli utenti firewalled non possono gestire.
Cercare sulla rete Kademlia
In questa rete non ha importanza che cosa cerchi. Sia che cerchi per nome file, o per fonti di un download o per utenti, tutto funziona grossomodo alla stessa maniera. Non ci sono server per tenere traccia di client e dei file che questi condividono quindi le funzioni che effettuerebbero i server devono essere espletate da ogni client partecipante nella rete - in sintesi ogni client è anche un piccolo server.
Poiché ogni client è identificato da un valore di hash unico, l'idea di Kademlia è di associare una certa responsabilità a ciascun client basandosi appunto su questo hash. Ogni client nella rete Kademlia funziona come un server per alcune parole chiavi o fonti. L'hash del client determina le parole chiavi o le fonti specifiche. Dunque lo scopo di ogni tipo di ricerca è trovare quei client che hanno la responsabilità per l'argomento della ricerca in essere. Questo si realizza attraverso un calcolo molto complesso della possibile distanza dal client obiettivo cercando attraverso gli altri client di trovare la strada più breve per raggiungerlo.
Protocollo Kademlia in breve
Kademlia è un protocollo P2P di overlay (ovvero che si poggia su protocolli di più basso livello) progettato per reti decentralizzare peer to peer. Specifica la struttura della rete, regola la comunicazione tra i nodi e come deve aver luogo lo scambio di informazioni. I nodi Kademlia comunicano tra di loro usando il protocollo di trasporto UDP. Viene creata su una rete LAN/WAN (come Internet) una rete virtuale nella quale ogni nodo viene identificato da un numero ("ID di Nodo" 1). Questo numero serve non solo come identificativo ma viene usato dall'algoritmo Kademlia per altri scopi.


Un nodo che vuole unirsi alla rete, deve prima superare un processo di avvio (bootstrap) In questa fase il nodo deve conoscere l'indirizzo IP di un altro nodo (prelevato dall'utente stesso o da un elenco) che sta già partecipando alla rete Kademlia. Se il nodo che deve fare il bootstrap non ha mai partecipato alla rete, calcola un numero identificativo casuale che non sia ancora stato assegnato ad un altro nodo. Usa questo ID finché non lascia la rete.

L'algoritmo Kademlia si basa sul calcolo delle distanze tra due nodi (2). La distanza è calcolata usando la metrica dell'or esclusivo tra gli ID dei due NODI, ottenendo come risultato un numero intero.

Questa "distanza" non ha nulla a che vedere con condizioni geografiche, ma indica la distanza tra i range di ID. Così può e spesso accade che ad esempio un nodo Italiano ed uno Australiano siano vicini.

L'informazione sulla rete Kademlia è memorizzata nei così detti "valori", ad ogni valore viene assegnato una "chiave".

Quando si cerca una chiave, l'algoritmo esplora la rete in passi successivi ed ad ogni passaggio ci si avvicina sempre più alla chiave cercata finché il nodo contattato non restituisce il valore oppure non ci sono più nodi da interrogare. Il numero di nodi contattati durante la ricerca dipende solo marginalmente dalla dimensione della rete: se il numero dei partecipanti alla rete raddoppia, allora il nodo di un utente deve interrogare solo un nodo in più per ogni ricerca, non il doppio di quelli che ha contattato prima.

Ulteriori vantaggi si trovano in particolare nella struttura decentralizzata che chiaramente aumenta la resistenza contro attacchi dos. Anche se un intero insieme di nodi sono presi di mira si avranno effetti molto limitati sulla rete, che supererà automaticamente il problema isolando la rete intorno a questo nodi problematici.

Kademlia oltre che per la rete omonima di eMule è stata usata per altre reti di file sharing. Facendo ricerche per parole chiavi si possono trovare informazioni sulla rete di file sharing così da poterle scaricare. Poiché non c'è un riferimento centrale dove memorizzare un indice dei file esistenti, e' un compito che viene diviso parimenti tra tutti i clients: il nodo che possiede un file che vuole condividere, lo analizza e ne calcola un numero (hash) che identificherà quel file sulla rete di file sharing. Gli hash e gli ID devono avere la stessa lunghezza. Il client che avvia la ricerca userà Kademlia per cercare l'ID del client che ha la distanza minima dal filehash, quindi recupererà l'elenco dei contatti che sono memorizzati in quel nodo. I contatti memorizzati nella rete sono in continuo cambiamento poiché i nodi si connettono e si disconnettono. Grazie ad una intrinseca ridondanza dell'informazione su Kademlia questi contatti vengono replicati in diversi nodi.

Fonte : http://www.emule-italia.it
La guida originale,la trovate QUI
Contenuti Pubblicati con