Rete ed2k

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

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

GOLDRAKE[ITA]

eMule, edonkey e molti altri client sfruttano la rete edonkey2000 (in breve 'rete eD2k') per connettere i vari client e consentire agli utenti di connettersi uno all'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 della rete eDonkey 2000 è connesso ad un server. Invia a questo server un elenco dei files che sta in quel momento condividendo. Quindi ogni server conserva un elenco di tutti i files condivisi dai clients connessi ad esso. Quando un client compie una ricerca invia la richiesta di ricerca al suo server principale. A questo punto il server esegue la ricerca nell'elenco dei files che conosce e restituisce i risultati al client.

{ Quando si fa una ricerca del tipo global server, eMule cerca prima sul server al quale si è connessi, ed interroga, chiedendo ai server gruppati ad esso quante fonti ci sono. Ad esempio nel caso si è connessi sul server [A], ed a questo sono gruppati i server -[C]-[D] e  nella propria lista server è presente anche il server [E], ma che non è gruppato al server [A] eMule non cercherà anche sul server [E], ma solo sui server [A]--[C]-[D].
E questo spiega anche il motivo perchè cambiando server si hanno differenti risultati del numero di fonti e talvolta capita che essendo collegati ad un server si trova un file, mentre essendo collegati ad un altro no.
Quindi non è detto che avere molti server in lista equivale per forza ad una più amplia ricerca; comunque le altri fonti vengono contattate anche tramite lo scambio fonti.
Facendo comunque una ricerca del tipo global server, nel caso si è connessi anche alla rete Kademlia, la ricerca viene effetuata anche su questa rete. }


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 (le fonti). Per prima cosa chiede al suo server principale l'elenco di tutti i clients che hanno il file desiderato. Quindi 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 richiederne  ad ognuno un pezzettino diverso. Continuerà a fare questo finché non avrà scaricato tutti i pezzettini (chunks) nel quale avrà decomposto il file originario.


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


CitazioneIl 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!'. I server ai quali notificano la loro presenza inviano una lista di tutti gli altri server che conoscono. In questo modo ogni server conserva una lista di tutti gli altri server in quel momento operativi ed online. Quando i clients si connettono ad un server ricevono un elenco aggiornato di server operativi. Ed ecco come i clients vengono a conoscenza di nuovi server.

{ Nota bene : questo accade solo se in Opzioni-Opzioni Generali-Server sono attive le opzioni "Aggiorna la lista server quando ti connetti ad un server" per quanto riguarda i server e l'opzione "Aggiorna la lista server quando contatti un Client" per quanto riguarda i client. Ma dopo l'avvento dei Server fake e Spy che falsano le ricerche ed il numero di utenti connessi ad essi (server fake) e che spiano le ricerche effettuate ed i files che si condividono (server spy), è altamente consigliato disattivare queste opzioni per evitare che qualche client con server fake e\o spy, "infetti" la vostra lista 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 dimensione, 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.

Fonte :   http://www.emule-italia.it
Modifiche/Aggiornamenti : Goldrake[ita]
La guida originale la trovate QUI
Contenuti Pubblicati con Licenza Creative Commons