EMule
Da Wikipedia, l'enciclopedia libera.
eMule | |
---|---|
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:
Il mulo è molto simile all'asino.
L'aggiunta della "e" sta a significare electronicMule: mulo elettronico.
[modifica] Storia
[modifica] La nascita
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.
- 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;
- Febbraio 2005: la versione 0.45b è disponibile;
- Aprile 2005: la versione 0.45d è disponibile;
- Maggio 2005: la versione 0.46a è disponibile;
- 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;
- 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 servers) vengono chiusi dalla polizia belga e l'amministratore dei servers 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
[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:
- 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.
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 |
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:
-
crediti = (bytes ricevuti * 2) / bytes inviati
-
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:
- eMule MorphXT
- eMule Xtreme
- Neomule
- eMule ScarAngel
- eMule StulleMule
- eMule TK4
- eMule Viper
- eMule ZZUL
- eMule Ackronic
[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
- eMule Project (sito ufficiale, versione italiana)
- (EN) Pagina ufficiale di xMule
- (EN) Pagina ufficiale di aMule
- (DE) Sito non ufficiale delle Mods di eMule
- Forum di supporto Italiano: eMuleItalia.net
- Sito dedicato alle tecniche di sicurezza e di filtraggio: eMule Security Center
[modifica] Documentazione
- Documentazione ufficiale in italiano: emule-project.net
- Documentazione utile non ufficiale in italiano: eMule.it
- Forum ufficiale in italiano su eMule MorphXT: MorphXT-italia
- Versione per Utenti Fastweb: la comunità di sviluppatori Adunanza Adunanza.net
- Forum di discussione su emule e su Adunanza: eMule-Adunanza Forum
I documenti seguenti sono ormai tecnicamente superati ma possono dare un'idea dello stato del programma agli inizi dello sviluppo.
- La prima raccolta di FAQ in italiano: FAQ di Roberto Mattioli