Privacy Policy Cookie Policy Terms and Conditions EMule - Wikipedia

EMule

Da Wikipedia, l'enciclopedia libera.

Il titolo di questa voce non è corretto per via delle caratteristiche del software MediaWiki. Il titolo corretto è eMule.
 eMule
eMule 0.47b su Windows XP
eMule 0.47b su Windows XP
Sviluppatore Open source
Ultima versione 0.47c / 14 settembre 2006
OS Microsoft Windows
Genere File sharing
Licenza GPL
Sito web emule-project.net

eMule è un programma di file sharing che utilizza i network eDonkey e Kad (quest'ultimo basato su un'implementazione di Kademlia) per la condivisione di file. È open source sviluppato in C++ per la piattaforma Windows. eMule ha tra i suoi punti di forza la semplicità e pulizia dell'interfaccia grafica, la localizzazione in più di 40 lingue, una vasta ed attiva comunità di utenti che porta avanti il progetto con l'uscita continua di nuove versioni.

Indice

[modifica] Il nome

La scelta di eMule come nome del progetto sottolinea sia le somiglianze che le diversità con il programma eDonkey2000:

Donkey significa asino
Mule significa mulo

Il mulo è molto simile all'asino.

L'aggiunta della "e" sta a significare electronicMule: mulo elettronico.

[modifica] Storia

[modifica] La nascita

eMule v0.01
Ingrandisci
eMule v0.01

Il progetto eMule nasce il 13 maggio 2002 grazie al programmatore tedesco Hendrik Breitkreuz, conosciuto come Merkur, perché insoddisfatto del client eDonkey2000. Merkur radunò intorno a se altri sviluppatori con lo scopo di creare un programma eDonkey-compatibile ma con molte più funzioni. Il programma si afferma rapidamente come client di punta sulla rete grazie alle sue caratteristiche innovative.

[modifica] I network

Il network è un protocollo di comunicazione attraverso la quale un programma p2p una volta interfacciato riesce ad eseguire delle operazioni in rete come la ricerca o il download di un file.

[modifica] Il network eDonkey

Per approfondire, vedi la voce eDonkey.

La rete eDonkey, o anche ed2k, è stato il primo network supportato da eMule fin dalla prima versione. La struttura della rete è composta da client e server.

[modifica] I server

Nella rete non è presente un unico grande server ma molti che si distribuiscono il carico e comunicano fra loro. I server sono gestiti da volontari che li mantengono a proprie spese. I server sono solo dei database che indicizzano i file e gestiscono le connessioni tra gli utenti.

Quindi:

  1. I file condivisi presenti nel network non risiedono nei vari server ma lo scambio avviene sempre tra client e client.
  2. L'indice dei file condivisi da un client viene inviato al server durante la connessione tra i due.

Non esiste quindi un server migliore o più veloce degli altri, sono però avvantaggiati quelli con molti utenti, perché comunque comunicano fra di loro.

[modifica] I client

Con client si intende un qualsiasi programma in grado di interfacciarsi con la rete server di eDonkey. Non esiste solo eMule ma anche molti altri, tra i più famosi vi sono eDonkey2000 e Shareaza.

Un client si connette ad un solo server alla volta sufficiente per eseguire una ricerca su tutti i server presenti nella rete, in quanto comunicano fra di loro.

Il programma riprende i download/upload che erano in corso, non appena è di nuovo disponibile una connessione Internet. Se il nodo ha una connessione always-on, è necessario prolungare (o eliminare) l'intervallo di tempo prima dell'entrata in stand-by, che interrompe la connessione.

[modifica] Il FileHash

Il FileHash serve ad identificare in modo univoco un file nel network e viene calcolato da eMule utilizzando l'algoritmo MD4. Per i file di dimensione minore di 4 Gigabyte il FileHash è di 32 cifre esadecimale mentre i file di dimensione maggiore hanno un FileHash esteso.

[modifica] I link eD2K

Il link eD2K è un link utilizzato dai client eDonkey per il download di un file. Questa è la sua struttura di base

ed2k://|file|nome_del_file|lunghezza_in_byte|fileHash_di_32_cifre_esadecimali|/

L'univocità di un file nella rete è garantita dalla coppia Lunghezza in byte - FileHash.

[modifica] Il network KAD

Per approfondire, vedi la voce Kademlia.

Il network KAD è un'implementazione di Kademlia, è una rete serverless, cioè senza server, è concepito per distribuire il carico di lavoro a tutti i client connessi invece che ad un unico server ed è in grado di svolgere le medesime funzioni di eDonkey. L'abilitazione della rete KAD è presente in eMule dalla versione 0.42.

La connessione alla rete, detta procedura di bootstrap, avviene contattando gli altri client che assegnano lo stato open nel caso il client sia contattato liberamente altrimenti lo stato di firewalled se la comunicazione risulta filtrata.

Dalla versione 0.44a in poi in eMule è presente la funzione buddy attraverso la quale un client firewalled riesce a comunicare nella rete appoggiandosi ad uno di tipo open.

Dalla 0.47a è presente la nuova rete KAD 2.0, resa definitiva nella 0.47c. (Nella 0.47a non era ancora stata completamente testata).

[modifica] Caratteristiche

[modifica] Coda di upload

I download in eMule funzionano grazie ad un meccanismo di code. Ogni richiesta di upload è posta in una "lista d'attesa" propria di ogni eMule alla quale viene assegnato un punteggio calcolato:

 punteggio = tempo attesa * priorità del file * crediti 

Il tempo di attesa (espresso in secondi) indica da quanto tempo un client è entrato in coda per il download di un file.

Per priorità del file vedi: Priorità di upload

Per crediti vedi: Crediti

[modifica] Collezioni

Presente in eMule dalla versione 0.46b le collezioni sono dei file con estensione .emulecollection normalmente condivisi come qualsiasi altro tipo di file. Una collezione è composta da un insieme di link eD2k ha quindi dimensioni molto contenute ed il suo download è quasi sempre immediato.

[modifica] Commenti

I commenti sono una funzione molto utile per mezzo della quale una persona può far sapere alle altre il proprio giudizio su un file condiviso o scaricato.

I commenti si compongono di una parte formata da un Giudizio:

Icona spazio Significato
Image:Emule FileRating 0 NotRated.gif Non Votato
Image:Emule FileRating 5 Excellent.gif Ottimo
Image:Emule FileRating 4 Good.gif Buono
Image:Emule FileRating 3 Fair.gif Sufficiente
Image:Emule FileRating 2 Poor.gif Mediocre
Image:Emule FileRating 1 Invalid Corrupt Fake.gif Non Valido / Corrotto / Fake

[modifica] Crediti

I crediti sono uno dei modificatori per il calcolo del punteggio nella coda di upload. In eMule un client accumula crediti verso un altro client in base alla quantità di dati scambiati reciprocamente e variano da 1 a 10 calcolati con le seguenti formule:

  1.  crediti = (bytes ricevuti * 2) / bytes inviati 
    
  2.  crediti = radice quadrata dei (Megabyte ricevuti + 2) / bytes inviati 
    

eMule assegnerà i crediti scegliendo il risultato minore tra le due precedenti formule.

[modifica] Fonti A4AF

Durante il download di un file eMule può essere in coda solamente per un file alla volta, se un client possiede più file tra quelli scaricati. eMule utilizza quindi le fonti A4AF Asked For Another File cioè Contattato Per Un Altro File per entrare nella coda di un file quando il download del precedente è terminato.

La gestione delle fonti A4AF è basata sul meccanismo delle Priorità di download.

[modifica] I.C.H. e A.I.C.H.

  • l'I.C.H. e l'A.I.C.H. (Intelligent Corruption Handling ed Advanced Intelligent Corruption Handling) che in presenza di corruzione dei dati ricevuti permette al client di effettuare il controllo e l'eventuale download di blocchi della dimensione di 180KB (contro i 9,28MB che formano un chunk completo)


[modifica] Priorità di download

eMule assegna le fonti A4AF ad un file in base alla sua priorità. Vi sono 9 livelli distinti di priorità determinati dalla priorità della categoria e del file.

Priorità finale aaa Priorità della categoria aaa Priorità del file
1 Alta Alta
2 Alta Normale
3 Alta Bassa
4 Normale Alta
5 Normale Normale
6 Normale Bassa
7 Bassa Alta
8 Bassa Normale
9 Bassa Bassa

[modifica] Priorità di upload

La priorità di upload di un file condiviso descrive il livello di importanza di condivisione, può essere impostato manualmente oppure in automatico da eMule. Il variare del valore associato va a modificare il punteggio nella coda di upload. Queste sono le proprietà ed i valori utilizzati da eMule:

Release 1.8
Alta 0.9
Normale 0.7
Bassa 0.6
Molto Bassa spazio 0.2

[modifica] Offuscamento del Protocollo

Questa caratteristica è stata introdotta nell'ultima versione di eMule. Essa serve a criptare i pacchetti detti Chunk che gli utenti si scambiano trasformandoli da traffico P2P a traffico internet che i filtri non riconoscono e lasciano passare, permettendo ai clienti di alcuni provider che limitano il Peer2Peer (In Italia il gestore in questione è Libero) di avere la possibilità di usare a piena potenza la loro connessione ad Internet.

[modifica] Le versioni modificate (mods)

eMule è un programma opensource ed il codice sorgente liberamente disponibile ha invogliato fin dai primi tempi alcuni programmatori (modders) ad implementare nuove funzioni non presenti nella versione ufficiale. Ne sono risultate molte versioni di eMule, compatibili con quella ufficiale.

Alcune versioni modificate di eMule:

[modifica] Le Bad Mods

La libertà di modifica del codice sorgente di eMule, oltre che una potentissima forma di sviluppo per il programma e la sua diffusione, ha permesso che alcuni programmatori creassero delle Bad Mods o Mod Malvagie. Questa categoria di Mod sconvolge la filosofia di base di eMule permettendo ad esempio di abbassare fino a zero la quantità di banda di upload, togliendo la condivisione e trasformando chi utilizza la mod in un Leecher: una sanguisuga che prende senza dare.In Italia esiste la Mod chiamata "Adunanza", che non si può definire "Leech", ma che comunque non è benefica alla rete in quanto non appoggia la filosofia di eMule,bensì ne adotta una che consiste nel scaricare il più possibile,non tenendo conto della rete favorendo solo i client Fastweb che hanno Adunanza. Esistono alcune mod (Xtreme, la sua derivata ScarAngel, Zzul Bastard ecc.) che grazie al DLP (una dll che contiene l'elenco delle leecher mod) fanno bannare dalla coda o togliere il punteggio a tutte le mod leecher.

[modifica] Voci correlate

[modifica] Collegamenti esterni

[modifica] Documentazione

I documenti seguenti sono ormai tecnicamente superati ma possono dare un'idea dello stato del programma agli inizi dello sviluppo.

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu