EMule
Da Wikipedia, l'enciclopedia libera.
![]() eMule |
|
---|---|
Sviluppatore | open source |
Ultima versione | 0.48a / 13 maggio 2007 |
SO | Microsoft Windows |
Genere | File sharing |
Licenza | GPL |
Sito web | emule-project.net |
eMule (abbreviazione di electronicMule, mulo elettronico) è 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:
Il mulo è molto simile all'asino e per questo molti lo confondono.
L'aggiunta della "e" sta a significare electronicMule: mulo elettronico. La parola, nella sua interezza, costituisce un simpatico gioco di parole, evidenziando il fatto che emule "emula" le funzionalità di eDonkey.
[modifica] Storia
[modifica] La nascita
Il progetto eMule nasce il 13 maggio 2002 grazie al programmatore tedesco Hendrik Breitkreuz, conosciuto come Merkur, insoddisfatto del client eDonkey2000. Merkur radunò intorno a sé 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.
Il 7 luglio 2002 viene rilasciata su Sourceforge il solo sorgente della prima versione. Ma la versione effettivamente utilizzabile uscirà il 9 agosto.
[modifica] eMule e sistemi Microsoft Windows
eMule nasce come programma per sistemi Windows. Le versioni della serie 0.20 funzionavano solo su sistemi Windows 2000 ed Windows XP, ma già dalla versione 0.21a3 il programma è funzionante su sistemi Windows 98 ed Windows ME.
La compatibilità con Windows Vista arriva a 5 anni dalla nascita di eMule con la versione 0.48a.
[modifica] eMule su altri sistemi operativi
eMule è sviluppato per supportare ufficialmente solo sistemi operativi Microsoft, ma può essere utilizzato anche su Linux e Mac OS X utilizzando Wine, un software in grado di far girare le applicazioni scritte per Windows su altri sistemi operativi. Una volta installato Wine, basterà un doppio clic sull'installer di eMule e seguire le istruzioni come in Windows. E' addirittura possibile impostare il programma su Linux in modo da utilizzare le cartelle dell'installazione su Windows, in modo da poter scaricare gli stessi file indipendentemente dal sistema operativo che si è scelto di avviare. Non è assicurata la piena compatibilità attraverso Wine e pertanto può capitare che il programma si chiuda inaspettatamente o sia più lento, soprattutto con molti file in scaricamento.
Gli utenti Linux e Mac hanno a disposizione aMule come sostituto di eMule.
[modifica] I numeri di eMule
Sul sito di Sourceforge sono riportate le statistiche relative alla diffusione del programma relative al numero di download ed alla quantità di dati scaricati dai server del portale per software open source. I dati riportano una rapida crescita. In seguito sono riportati i numeri più significativi:
- Primi 6 mesi (ottobre 2002): 1.914.164 di download
- Primo anno (aprile 2003): 10.318.418 di download
- maggio 2005: Superati i 100.000.000 di download
- 13 maggio 2007 (5° compleanno di eMule): Superati i 300.000.000 di download
Il download di 300.000.000 di client ha comportato una quantità di dati trasmessi pari a 1.180,6 Terabyte (e questo solo per scaricare il programma!).
- 7 luglio 2002: rilasciata su Sourceforge la prima versione (solo sorgente)
- 9 agosto 2002: prima versione effettivamente utilizzabile sul network
- 14 settembre 2002: la versione 0.19a inaugura la serie che renderà eMule veramente popolare
- La serie 0.19 vede anche l'introduzione del sistema dei crediti;
- 28 settembre 2002: vengono introdotte delle complete e dettagliate statistiche, una novità sul network eDonkey; purtroppo le versioni della serie 0.20 funzionano solo su sistemi Windows 2000 ed XP;
- 13 ottobre 2002: la versione 0.21a3 consente anche agli utenti Windows 98 ed ME di apprezzare il "nuovo" eMule;
- 15 marzo 2003: viene ripreso lo sviluppo della versione serverless di eMule;
- Inizialmente si puntava a creare un client compatibile con la rete Overnet; successivamente (30 agosto 2003) si è abbandonata questa ipotesi, per poter essere liberi di decidere come sviluppare la nuova rete, senza doversi adeguare ad altri. Con questa decisione esce la versione 0.30a e parallelamente comincia la sviluppo della versione 0.40 che integra la rete Kademlia.
- 4 settembre 2004: con la versione 0.44a eMule introduce il completo supporto Unicode ed un secondo sistema di Hash da incorporare nei link ed2k, per un migliore controllo della corruzione dati durante la trasmissione;
- 6 febbraio 2005: la versione 0.45a è disponibile;
- 12 febbraio 2005: la versione 0.45b è disponibile;
- 5 maggio 2005: la versione 0.46a è disponibile;
- 5 luglio 2005: la versione 0.46b, preceduta da una beta pubblica, introduce il supporto per le "collezioni", piccoli file contenenti le informazioni necessarie a scaricarne altri. L'implementazione è diversa e quindi non compatibile rispetto a quella del client eDonkey. È possibile inoltre, durante la ricerca su server, effettuare un'interrogazione per ottenere una lista di file correlati o pertinenti;
- 26 luglio 2005: la versione 0.46c è disponibile;
- 26 gennaio 2006: la versione 0.47a è disponibile;
- 22 febbraio 2006: Il famoso server Razorback 2.0 ed il secondo server Razorback 2.1 (oltre ad altri server) vengono chiusi dalla polizia belga e l'amministratore dei server Razorback, residente in Svizzera, viene arrestato.
- 8 settembre 2006: la versione 0.47b è ora disponibile con la nuova feature del "Protocollo Offuscato" che permette di aggirare i filtri P2P di certi ISP
- 14 settembre 2006: uscita della versione 0.47c che corregge diversi bug
- 1 maggio 2007: viene rilasciata la versione 0.48a BETA 1,in fase di test
- 10 maggio 2007: uscita della versione 0.48a BETA 2, ancora in fase di test
- 13 maggio 2007: a 5 anni dalla nascita di eMule esce la versione 0.48a, che corregge diversi bug tra cui quelli concernenti difficoltà di compatibilità con Windows Vista
- Settembre - Ottobre 2007: Una serie di azioni legali, in Francia, Olanda e Germania, delle major discografiche porta alla chiusura combinata dei Donkey Server, dei Big Bang e dei Byte Devils.
- Dicembre 2007: Sono stati aggiunti altri server per un totale di 23.
- Marzo 2008 :Nuovi server ora sono 35.
[modifica] I network
Il network è un protocollo di comunicazione attraverso il quale un programma p2p una volta interfacciato riesce ad eseguire delle operazioni in rete come la ricerca o il download di un file non solo su Internet (altri computer connessi), ma anche sullo stesso computer e su computer della rete locale.
[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:
- I file condivisi presenti nel network non risiedono nei vari server ma lo scambio avviene sempre tra client e client.
- 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. Da segnalare anche aMule, versione Linux di eMule. Da una costola di eMule è poi nato eMule Plus, a partire dal rilascio della versione 0.30, client compatibile con tutti i sistemi operativi Windows. La principale differenza tra i due client è l'assenza del network Kad (implementazione di Kademlia). Il team sviluppatore di eMule Plus ha rilasciato la versione 1.2b il 7 febbraio 2007.
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 esadecimali 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 rete Kad è una connessione "diretta", cioè senza oggetti che si sovrappongono tra due client, cioè i server. Con la KAD, infatti, ci si connette direttamente al computer dell'utente che possiede il file che cerchiamo.
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 versione 0.47a, è presente la nuova rete KAD 2.0, resa definitiva nella 0.47c. Nella versione 0.47a, essa non era stata ancora completamente testata.
[modifica] Caratteristiche
[modifica] ID
Calcolo dell'ID del server (formula valida solo per id alto): dato un IP A.B.C.D.---> A + 256*B + 256*256*C + 256*256*256*D
Se l'id è basso, il server assegna un numero casuale inferiore a 16777216.
Per controllare più agevolmente lo stato dell'id, si controllano le frecce in diagonale poste sul piccolo globo azzurro posizionato nella barra di stato del proprio client, in basso a destra:
- La freccia inferiore sinistra indica il collegamento al server, quella superiore destra indica il collegamento alla rete kad.
- La freccia rossa indica:non connesso.
- La freccia verde indica:connesso con id alto.
- La freccia gialla indica:connesso con id basso (firewalled per la rete kad).
NB: da non confondersi con le frecce poste in verticale, rosse o verdi, che indicano un'attività/inattività di download/upload.
[modifica] Situazione italiana riguardo l'id
Di seguito la situazione italiana sull'ID, ovvero le cause di ID basso/alto, modificabile o no; ID basso è causato da:
- Firewall: impostare il firewall, ovvero mettere emule fra le sue eccezioni (difficoltà bassa). NB: Windows XP e Windows Vista hanno un firewall proprio, alcuni antivirus hanno anche una funzione firewall.
- Router: impostare il router (difficoltà medio-alta).
- Fastweb: problema risolvibile in parte tramite mod eMule AdunanzA, in questo caso si può ottenere id alto su KADU (impostando il firewall) ma non su server (difficoltà bassa).
- Gprs/UMTS/hsdpa (gestori H3G e Vodafone): fino a questo momento irrisolvibile.
- Gprs/UMTS/EDGE/hsdpa (gestori Wind e Tim): spesso basta impostare il firewall (per ottenere id alto).
- Adsl via satellite: irrisolvibile.
- Adsl via antenna a onde radio(w-adsl o adsl wireless): dipende dal gestore: apre le porte di comunicazione dopo richiesta (ed eventuale sovrapprezzo), ma non sempre.
- Connessione internet derivata da un altro pc, connessione internet condivisa: dal pc che permette la condivisione si aprono le porte di comunicazione per l'altro pc.
- Wimax: stanno assegnando (forse) le frequenze, quindi sarà una nuova adsl disponibile in futuro.
NB: nonostante i sospetti/certezze di filtraggio da parte dei gestori, l'ID basso dipende quasi sempre dalle cause sopracitate e attivare l'offuscamento NON è una possibile soluzione di id basso ma soltanto una funzione che cerca di mascherare i dati.
[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 valutazione compresa fra quelle elencate nella seguente tabella, il nome del file giudicato, l'autore del commento e il testo vero e proprio. Spesso purtroppo i commenti contengono pubblicità verso alcuni file, tuttavia in generale questo sistema può essere comodo per l'utente che può controllare se sta veramente scaricando quello che vuole.
Icona | Significato |
![]() |
Non Votato |
![]() |
Ottimo |
![]() |
Buono |
![]() |
Sufficiente |
![]() |
Mediocre |
![]() |
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:
eMule assegnerà i crediti scegliendo il risultato minore tra le due precedenti formule.
Nota: Qualche mod di eMule fa scaricare pochi kB e poi blocca l'invio del file, cercando di guadagnare gli stessi crediti rispetto ai client "leali" (che fanno scaricare l'intera parte). Per questo motivo, nella versione 48a è stato modificato il calcolo dei crediti da riconoscere agli altri utenti per i primi 9MB ricevuti, non permettendo questa ingiustizia.
[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] 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.
Esempio di 2 client che si trovano in coda fra di loro da 20 minuti, senza crediti fra loro: il primo ha il file in priorità release, l'altro ha lo stesso file ma in priorità bassa.
1) punteggio del client col file in prio. release che richiede il file (dell'altro client) in prio. bassa: 1200 * 0,6 * 1 = 720
2) punteggio del client col file in prio. bassa che richiede il file (dell'altro client) in prio. release: 1200 * 1,8 * 1 = 2160
Si può notare che più si rimane connessi e più il punteggio aumenta.
Si nota anche che il client che ha il file in release fa aumentare il punteggio della sua controparte (e non il proprio), favorendo l'upload del file (non il proprio download); è dunque meglio lasciar gestire le priorità a emule in automatico e usare la priorità release per file più unici che rari.
Per priorità del file vedi: Priorità di upload
Per crediti vedi: Crediti
[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] 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 e 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] Offuscamento del protocollo
Il sistema dell'offuscamento è disponibile a partire dalla versione 0.47b. Questo sistema spedisce in modo random i dati permettendo di aggirare in qualche modo i filtri utilizzati da alcuni provider che limitano il Peer2Peer (In Italia, fino al termine del 2006, l'unico gestore che ammetteva di aver predisposto alcune limitazioni in situazioni di elevato traffico era Libero [1]) consentendo agli utenti di usare la loro connessione a Internet e quindi di condividere i propri file. Da marzo 2007 anche Tele2 sta testando filtri per limitare il P2P. In ogni caso, prima di accusare il proprio gestore di filtraggio, è bene assicurarsi di aver impostato emule nel migliore dei modi (id, opzioni connessioni, fonti trovate e in coda nei valori consigliati, ecc).
A tutela della privacy, dal menu "Opzioni/Sicurezza" sono disponibili altre funzionalità: - identificazione sicura: il nome identificativo nella rete di Emule viene crittografato; - l'abilitazione di filtri antispam per la ricerca. Il programma chiederà di specificare un indirizzo Internet per l'aggiornamento automatico della Blacklist, un file di testo che riporta la "lista nera" dei siti sospettati di mettere in condivisione materiale corrotto (come virus, dialer o trojan rinominati come altri file), oppure di spiare cosa stanno scambiando gli altri computer (Sniffing). Il programma filtra questi indirizzi, ossia blocca in automatico tutte le connessioni in download e in upload a tali siti. Il filtro può anche essere esteso ai server di rete.
A completamento delle protezioni a tutela della privacy interne al programma, la tecnologia del proxy server permette di rendere anonima la propria navigazione, o di avere un IP difficilmente tracciabile, sia per una connessione da accesso remoto che ADSL.
Emule tiene comunque traccia per ogni file dei commenti lasciati da utenti diversi dall'indirizzo IP che l'ha posto in condivisione, per limitare le conseguenze in caso di diffusione di materiale dannoso per il computer.
EMule non presenta però caratteristiche più evolute per il confronto dei risultati di una ricerca, come un Algoritmo di Hash che dovrebbe restituire stringhe numeriche simili, quanto più lo sono i file di partenza.
[modifica] Le versioni modificate (mods)
eMule è un programma open source 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:
- eMule MorphXT
- eMule Xtreme Mod
- eMule NeoMule
- eMule ScarAngel
- eMule StulleMule
- eMule TK4
- eMule BastarD
- eMule Viper
- eMule ZZUL
- eMule Ackronic
- eMule AdunanzA
- eMule SharkX
- eMuleMod & Versus
[modifica] Le Bad Mods
La libertà di modifica del codice sorgente di eMule, oltre ad essere una potentissima forma di sviluppo per il programma e la sua diffusione, ha permesso che alcuni programmatori creassero delle bad mods (Mod Malvage), dette anche leechmods (Mod Sanguisughe) per via del loro comportamento. 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.
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 o ritenute tali dai loro sviluppatori.
[modifica] Note
- ^ La soluzione "antiP2P", da Punto Informatico del 11 novembre 2005
[modifica] Voci correlate
[modifica] Collegamenti esterni
- eMule Project (sito ufficiale, versione italiana)
- La prima raccolta di FAQ in italiano, di interesse storico: FAQ di Roberto Mattioli
Portale Software libero: accedi alle voci di Wikipedia che parlano di Software libero