|
LA Rete ed2K ( edonkey 2000 )
|
|
eMule, eMule Plus, edonkey e molti altri client
sfruttano la rete edonkey2000 per connettere i vari client e consentire
agli utenti di connettersi l'un l'altro e di vivere una fantastica
esperienza di file sharing.
La rete edonkey2000 ( in breve ed2k ) si
basa fondamentalmente sul protocollo Multisource File
Transfer Protocol (MFTP).
Ci sono due applicazioni che lavorando insieme dando vita alla rete
ed2k: il server ed il client.
Un server è quello al quale i client si connettono
per cercare e trovare altri utenti dai quali scaricare files. Il server
è come un elenco telefonico. I Cliens 'guardano' in esso per trovare
altri clients con i files che vogliono. Nessun files passa attraverso
il server.
|
Ricerca: Ogni client è connesso ad un
server come suo server principale. Informa questo server circa i files
che sta in quel momento condividendo. Ogni server conserva un elenco di
tutti i files condivisi da tutti i clients connessi ad esso. Quando un
client compie una ricerca invia la richiesta di ricerca al suo server
principale. A questo punto cerca corrispondenze in relazione alla
ricerca in tutti i files che conosce e restituisce i risultati al
client.
Quando clicchi su estendi ricerca o ricerca globale la tua ricerca
viene inviata al successivo server sull'elenco dei server. Queste
richieste ed i risultati vengono spediti via UDP per limitare la banda
e l'overhead di connessione per i servers.
Download: Quando un client sceglie di
scaricare un file selezionandolo dai risultati di ricerca, da
una collezione oppure guardando la lista dei files condivisi
di un amico cerca di raccogliere un elenco di tutti i clients che
possiedono il file. Per prima cosa chiede al suo server principale
l'elenco di tutti i clients che hanno il file desiderato. Quindi si
connetterà e interrogherà tutti gli altri server che conosce al fine di
reperire gli indirizzi IP dei clients che hanno quel file. Dopo aver
trovato tutti client con quel file andrà a richiedere a ciascun client
un pezzettino diverso di quel file. continuerà a fare questo finché non
avrà scaricato tutti i pezzettini (chunks) nel quale avrà decomposto il
file originario.

I diagramma mostra cosa viene trasferito nelle varie connessioni della
rete ed2k.

Il diagramma mostra alcune delle caratteristiche avanzate del
meccanismo di download della rete ed2k.
Il Client Z ha tutte le parti del File 1 ( le lettere in
minuscolo rappresentano parti del file).
I Client W,X e Y vogliono tutti scaricare il File
1. Poiché i Client X e Y hanno parti diverse del File 1 possono non
solo ottenere il file da Z, ma anche cominciare ad inviarsi parti di
files tra di loro. Questo consente al file di diffondersi in modo molto
più veloce senza usare solo la banda del Client Z. Il Client W può
cominciare a scaricare il file anche se la fonte del file ( Client Z )
non ha più banda sufficiente per inviare il file.
Connessioni tra i server. I servers comunicano poco tra di loro. Si
connettono solo periodicamente l'uno all'altro per dire 'hey sono qui'.
Quando fanno questo i server ai quali notificano la loro presenza gli
inviano una lista di tutti gli altri server che conoscono. In questo
modoogni server conserva una lista degli altri server operativi. Quando
i clients si connettono ad un server ricevono un elenco aggiornato di
server operativi. Ed ecco come i cliens vengono a conoscenza di nuovi
server.
Cos'è il MFTP (multiple file transmission
protocol)?
MFTP è basato sul familiare protocollo FTP per il trasferimento dei
files. Il vantaggio principale dell'MFTP è che permette di scaricare lo
stesso file da diverse fonti contemporaneamente consentendo quindi di
raggiungere alte velocità di trasferimento. In questo modo gli utenti
che uplodano lentamente ( diciamo a 4 KB/s ) possono essere raggruppati
insieme fino a fornire velocità di download accettabili ( diciamo
30KB/s).
Cos'è un 'chunk'?
I Chunks sono porzioni di files grandi 9500KB ( per files più piccoli
di questa dimesione, oppure per l'ultimo chunk di un file, sono usati
chunk più piccoli). Ad ogni chunk viene assegnato un codice
identificativo sulla rete ( Hash) calcolando tale codice con un
algoritmo ( MD4 ) che si assicura che il chunk non sia corrotto.

|