|
Guida a Kademlia
Prima di proseguire è meglio che leggiate la pagina sull'utilizzo di kad.
Le versioni di eMule a partire dalla 0.40 hanno aggiunto
la possibilità di collegarsi anche alla rete "kademlia"
oltre che ai classici server.
Regna molta confusione sull’argomento, perciò facciamo un
passo indietro.
Il funzionamento di eMule può essere diviso in due parti: ricerca
delle fonti e scambio effettivo dei file tra i client.
La ricerca della fonti avviene cercando sui server presenti nella lista
server del vostro client e attraverso lo scambio fonti (source exchange)
con il quale in pratica si saltano i server e si ottiene una maggiore
velocità di ricerca: basta che un server vi dia almeno un client
valido ed ecco che chiedendo a lui la lista delle fonti conosciute le
trovate tutte in un colpo solo o quasi.
In seguito quando avete ottenuto dal server l’elenco dei client
che vi interessano, la richiesta di entrare nella loro coda di upload
viene fatta dal vostro eMule direttamente, così come il trasferimento
dei file avviene direttamente dal vostro pc al loro senza più disturbare
i server, che vengono usati solo come un elenco telefonico, in cui non
si cerca per nome e cognome ma per hash del
file che dovete scaricare.
Kademlia a cosa serve?
Kademlia cerca le fonti senza passare attraverso i server,
ma utilizzando solo una rete costituita dagli stessi client eMule di altri
utenti.
Ecco perciò che si parla di rete serverless, cioè
senza server: gli hash dei file non devono più essere depositati
sui server ogni volta che fate partire eMule, ma circolano tra i vari
client secondo certi criteri matematico/statistici che ne ottimizzano
il funzionamento.
Il nome Kademlia è quello dato a questo insieme di algoritmi dai
suoi inventori Petar Maymounkov e David Maziéres dell'università
di New York.
Detto questo si capisce come mai Kademlia NON
fa scaricare più velocemente e di solito NON
trova più fonti rispetto al collegamento ai soli
server (anche se potrebbero esserci client che utilizzano esclusivamente la rete kademlia), questo perché le code restano le stesse di sempre (e di
conseguenza anche i tempi di attesa), e lo scambio fonti rende quasi invisibile
la differenza fra le due reti una volta che avete ottenuto almeno qualche
client valido, perché lo scambio diretto salta sia i server che
Kademlia. Al massimo Kademlia vi fa trovare un po’ prima
tutte le fonti per quel file, ma lo scopo di questo sistema non è
accelerare la rete, bensì irrobustire la rete
contro il suo unico punto debole: i server.
Già in passato più volte il network è andato in crisi
per l’eccessivo numero di utenti o qualche difetto software e si
sono trovate soluzioni sempre nuove per alleggerire il carico dei server
(tra cui fondamentale l’evoluzione di eMule e dei server
modificati da Lugdunum, ora anche per windows, che riescono a reggere
300 mila utenti invece dei 10 mila della versione originale).
Oggi ancor più rischiosa diventa la posizione dei server con la
spada di Damocle di eventuali procedimenti legali dovuti alle nuove leggi
sui copyright in circolazione in vari Paesi del mondo.
I 30 server più grossi contengono oltre il 90% degli utenti, senza
di essi si ferma tutto.
Kademlia vuole essere una via alternativa ai server, svolgendone
le stesse funzioni ma distribuendo lo “sforzo” su
tutta la rete.
Perché attivare Kademlia?
Il nuovo Network per funzionare ha bisogno di client che facciano da “ponte”
fra la rete con i server e la nuova rete, in modo che coloro che si collegano
anche solo a kademlia possano trovare almeno una fonte
per ogni file esistente per iniziare a scaricarlo (e trovare tutte le
altre grazie allo scambio fonti). Ogni client collegato ad entrambe le
reti infatti tiene conto di quanti sono in coda per i vari file che si
stanno condividendo e contribuisce al numero di risposte per le ricerche
effettuate su kademlia, popolando di risultati la neonata rete.
Sembra proprio che almeno per questa volta non dobbiate domandarvi cosa
può fare la rete per voi, ma cosa potete fare voi per la rete.
Quali sono gli svantaggi di
collegarsi anche a kademlia?
In pratica nessuno. Una piccola quantità di banda
viene usata per comunicare con gli altri client ma non c’è
nessun incremento visibile rispetto al vecchio eMule (la banda persa è
misurata nel margine inferiore della finestra, tra parentesi tonde, dove
c’è scritto up e down; se non vedete le parentesi dovete
attivare Opzioni --> Connessione --> Mostra OverHead).
Procedura di configurazione e prima connessione
a kademlia (da farsi una volta sola)
Prima di tutto controllate che in Opzioni --> Connessione
--> Rete ci sia il segno di spunta sia su Kad che
eD2K.
Sempre in Opzioni --> Connessione c’è
la possibilità di cambiare la porta UDP che dovete aprire sul router
o sul firewall insieme all'altra (la TCP serve per i server) per non essere Firewalled
(equivalente ad ID Basso con i server).
Come prima volta dovete procurarvi gli indirizzi di client già collegati. A questo proposito, potete seguire questa guida, che vi farà scaricare una lista di contatti validi.
Procedura di bootstrap, secondo metodo:
deve essere eseguita mentre state già scaricando e siete collegati
ad un server quindi cercate un file a caso molto diffuso e iniziate a
scaricarlo, aspettando 5 minuti perché tutte le fonti vengano contattate.
Il metodo più semplice consiste nel premere
su Bootstrap nella finestra Kademlia, lasciando evidenziata
la seconda opzione ("from known clients" o
"dai client conosciuti"). In questo modo
eMule cercherà in automatico un client valido fra tutti i client
a cui si è collegati da cui iniziare il collegamento. |
|
Se avete eMule vecchio fino alla versione 0.41a10
(sconsigliata con win98/ME per una serie di bug) andate sulla
finestra Kademlia e premete Connetti, non succederà
nulla apparentemente ma in realtà avete abilitato una nuova
voce di menù.
Andate sulla finestra Trasferimenti e fate doppio
click col mouse su un file qualsiasi tra quelli che state scaricando
(prendete per esempio quello con più fonti, non serve che stia
trasferendo byte): si aprirà la lista fonti per quel file.
Cercate nella colonna “Fonti” un client con versione 40f
o superiore, fate tasto destro su quella
riga e premete sulla voce bootstrap, vedrete che
un po’ alla volta si riempirà la lista contatti di kademlia.
Se non succede nulla provate di nuovo con un client diverso. |
|
Non meravigliatevi se il primo collegamento con la rete sarà alquanto lento. Ciò le prime volte è perfettamente normale.
Come faccio a sapere che Kademlia
funziona veramente?
Per verificare che tutto funzioni correttamente controllare
le seguenti cose:
1) nella barra di stato all’estremo inferiore di
eMule vedrete il mondino con tutte e due le frecce verdi, se
così non è riprovate a fare il bootstrap da un altro client.
2) Nella finestra Kademlia vedete un
certo numero di contatti con il pallino verde a fianco,
se non vedete alcun contatto riprovate la procedura di bootstrap.
3) Nella finestra server --> Le mie informazioni
alla voce KAD Rete dovete vedere scritto Connesso
e NON Firewalled, se così non è
tornate alla finestra Kademlia e premete Ricontrolla Firewall.
Se il Firewalled permane potrebbe essere necessario riconfigurare il vostro router
o firewall aprendo la porta UDP
. Sempre in "Le mie informazioni" controllate alla voce ED2K
Rete di avere ID Alto (altrimenti eMule scaricherà
male, vedi ID basso).
4) Se fin qui è tutto ok testate la ricerca
su kademlia andando nella pagina “Cerca” e selezionando
in “metodoo di ricerca” (method in inglese), Kad Rete invece
di Server o Globale (Server). Mettete una parola chiave qualsiasi, per esempio di uno dei
file che state scaricando e avviate la ricerca: in al massimo 15-20 secondi
dovreste avere almeno 1 risultato (se il file non è troppo raro,
ecco perché bisogna collegarsi a tutte e 2 le reti, migliorando
di fatto anche kademlia).
Se la ricerca non funziona cambiate parola chiave oppure ricontrollate
i punti dall’uno al tre. Dovete avere "Connesso"
per non incorrere in problemi.
Ricordate che i contatti memorizzati da eMule sono altri client connessi
a Kademlia in giro per la rete, quindi se non usate la rete kademlia per
diverso tempo è possibile che nessuno di quei client quando fate
ripartire il mulo sia ancora attivo: dovete ripetere la procedura di bootstrap.
Procedura di connessione abituale
Per collegarvi simultaneamente sia alla rete server che a
quella Kademlia all’avvio di eMule premete il solito pulsante colorato
“Connetti” in alto a sinistra.
In Opzioni -- > Connessione potete anche settare l’opzione
“Connessione automatica all’avvio” così ogni
volta che parte il mulo si collega da solo. (Se dovesse faticare ad entrare
sui server potete sempre fare doppio click a mano nella lista server)
Se siete collegati ad entrambe le reti eMule userà
sia i server che kademlia per ottenere sempre le massime prestazioni,
non dovrete preoccuparvi di altro.
Per usare correttamente Kademlia potete fermarvi
a leggere qui.
Ciò che segue entra nel dettaglio tecnico e risponde a qualche
curiosità che spesso viene chiesta sul canale
#eMule-italian (vedi Esperti Online)
Quali altre differenze ci
sono nelle nuove versioni con Kademlia?
Oltre alle differenze già viste se andate alla estrema destra
della finestra file condivisi (trascinando la barra di
scorrimento orizzontale verso destra) noterete una nuova colonna
File eD2K|Kad che contiene di solito due icone: un computer e un mondino (se siete proprio orbi uno è quadrato, l'altro tondo)
La spiegazione è semplice: il primo (il computer) dice che avete dato
al server la lista dei vostri file condivisi quando vi siete collegati
(può essere assente solo se non usate i server ma solo Kademlia), il
secondo (il mondino) dice che il file che state condividendo viene visto anche dagli
utenti Kademlia.
La condivisione dei file sulla nuova rete infatti adesso
si chiama Publishing (pubblicazione) e non è istantanea
come con i server (per evitare di sovraccaricare gli altri client e la
vostra linea), e deve essere ripetuta ogni 5 ore per tutti i vostri file.
I file vengono pubblicati progressivamente comunicando il loro hash ad
altri client presenti nella vostra lista contatti. La scelta non è
casuale, voi pubblicate un file presso quegli eMule che hanno hash “vicino”
a quello del file, così chi cerca quel file manderà la richiesta
solo a quella precisa categoria di client il cui hash è “vicino”
a quello del file.
L’hash di un file o del vostro client (generato in modo casuale
alla prima apertura di eMule) viene infatti utilizzato per calcolare delle “distanze” virtuali.
Queste distanze sono calcolate con lo XOR (OR esclusivo)
dei bit degli hash che dovete confrontare es: 101101
XOR 110111 = 011010 cioè il risultato è 1 solo se uno dei
due bit è 1, non entrambi; per questo l’algoritmo Kademlia
è stato definito dagli autori “A peer-to-peer Information
System Based on The Xor Metric”. Questa distanza tra voi
e gli altri è quella che vedete nella finestra Kademlia con una
sfilza di 0 e 1 a fianco di ogni riga.
Se ordinate questa colonna “Distanza” vedrete che gli 0 a
sinistra generano una scaletta man mano che scorrete la lista verso il
basso: la cosa non è casuale.
Il vostro eMule cerca di collegarsi a client (circa 800) che abbiano
hash distribuiti in modo da coprire le distanze che gli servono in modo
uniforme, così da consentire una più rapida ricerca dei
risultati e una maggiore efficienza (il vostro client deve avere almeno
un contatto per ogni gruppo di sottoalberi diversi dal proprio se pensate
ai client come allocati in un virtuale albero binario di ricerca…
ma non spacchiamo il capello in 4, per i curiosi Kademlia
Description pagina 3) .
Dalla versione 0.44 di eMule è stato introdotto il supporto id basso per la rete kad. Ciò significa che un client con kad in stato firewalled sarà in grado di usufruire del network kad come se tale stato non fosse, ma a certe condizioni. In pratica, se kad risulta firewalled, eMule cercherà un altro client con kad non firewalled da utilizzare come compagno (buddy) per la ricerca delle fonti. Ad un client con kad firewalled è permesso appoggiarsi ad un client con userhash simile a quello opposto al nostro (esempio se 1010 siamo noi, cerchiamo qualcuno vicino a 0101), e tramite questo effettuare le ricerche di kad, come se firewalled non fosse. Ciò non vuol dire che non è più un problema avere kad in stato firewalled, ma semplicemente che nel caso lo fosse ci sarebbe la possibilità (non la certezza) di sfruttare un altro client. Chiaramente ci deve essere la disponibilità di un client non firewalled, con userhash opposto (o simile) e che non abbia già un altro client da supportare. Infatti, per ogni client con kad NON firewalled, può esserci un solo client con kad firewalled in supporto.
Nella finestra Kademlia la colonna “Tipo”
sta ad indicare il numero di mancate risposte di quel client ai nostri
collegamenti (analogo a “fallimenti” della finestra Server),
dopo 5 fallimenti il contatto viene cancellato, Tipo 0 significa che quel
client ci ha risposto sempre.
Un’altra differenza che potete apprezzare nella finestra
trasferimenti è la presenza nella colonna “Dimensione” dell’origine delle varie fonti ricevute (dovete
espandere la lista fonti con il doppio click sul file). Può comparire Ed2k Server (la fonte vi è arrivata in seguito
ad una richiesta ai server), Source Exchange (Scambio Fonte) (la fonte
vi è arrivata tramite richiesta diretta di scambio fonti con altri
client), Passive (Passivo) (la fonte aveva chiesto di entrare in
coda da voi per scaricare, voi non la conoscevate ed eMule l’ha
aggiunta automaticamente alla lista come fonte per quel file), kad (la fonte vi è arrivata tramite la ricerca di kademlia sulla nuova
rete).
E’ un modo per analizzare l’efficienza del sistema.
Buon Download ;)
|