EMule

software dedicato alla condivisione dei file basato sul peer-to-peer
Versione del 30 set 2007 alle 13:15 di Lecter~itwiki (discussione | contributi) (Annullata la modifica 10845454 di 213.61.13.68 (discussione))
Il titolo di questa pagina non è corretto per via delle caratteristiche del software MediaWiki. Il titolo corretto è eMule.

Template:Infobox Software

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.

il logo di eMule

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.

Storia

La nascita

 
eMule v0.01

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.

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 5 anni dalla nascita di eMule con la versione 0.48a.

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:

Il download di 300.000.000 ha comportato una quantità di dati trasmessi pari a 1.180,6 Terabyte


Eventi di rilievo nella storia di eMule
  • 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 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
  • 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 la compatibilità con Windows Vista

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.

Il network eDonkey

  Lo stesso argomento in dettaglio: 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.

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.

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 freeware 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.

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.

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.

Il network KAD

  Lo stesso argomento in dettaglio: 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).

Caratteristiche

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 sinistra 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.

  SITUAZIONE ITALIANA

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 sono anche firewall.
  • router: impostare il router (difficoltà medio-alta).
  • fastweb: problema risolvibile in parte tramite mod 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.
  • adsl via satellite: irrisolvibile.
  • adsl via antenna a onde radio: dipende dal gestore: pagando di più aprono le porte di comunicazione, 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.

NBB: nonostante i sospetti/certezze di filtraggio da parte dei gestori, id basso al 99% dipende dalle cause sopracitate e attivare l'offuscamento NON è una possibile soluzione di id basso ma soltanto una funzione che cerca di mascherare i dati.


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

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.

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 files, 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

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.

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.

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)


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

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

Offuscamento del Protocollo

Questo sistema non fa altro che spedire in modo "random" i dati e questo facilita il non riconoscimento degli utenti da parte dei 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 avere la possibilità di usare a piena potenza la loro connessione ad Internet e quindi di condividere i propri file. Da maggio 2007 anche Tele2 sta testando alcuni filtri per limitare il P2P; anche in questo caso l'offuscamento è un ottimo sistema per aggirare i filtri. Il sistema dell'offuscamento non è disponibile sulle versioni meno recenti di emule

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:

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 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", specifica per i clienti della rete di Fastweb, che non si può definire "Leech", ma che comunque, secondo alcuni autori di altre mod, non è benefica alla rete in quanto non appoggerebbe la filosofia di eMule, bensì ne adotta una che consiste nel cercare di trasferire ai client esterni alla rete la stessa quantità di dati che si sono scaricati, tenendosi quanto più possibile vicini al rapporto 1:1, favorendo quindi, secondo chi critica questa funzionalità, maggiormente gli altri client interni alla rete Fastweb che usano Adunanza. La comunità di Adunanza ha risposto a queste critiche sostenendo che questa scelta operativa si era resa necessaria per non essere troppo svantaggiati dalla particolare struttura della rete del provider (che utilizza tecniche di Network address translation che di fatto rende i client interni alla rete sempre firewalled dal punto di vista dei client esterni) ed è stata introdotta solo dopo che un sistema di raccolta statistiche incorporato nelle versioni precedenti della mod aveva evidenziato come, senza questa caratteristica, la quantità di dati trasferiti verso i client esterni alla rete Fastweb fosse mediamente molto superiore rispetto a quella che questi ultimi concedevano ai client Adunanza. Il dibattito sulla liceità o meno di questa caratteristica, solitamente molto acceso, si ripete periodicamente sia sul forum del sito ufficiale del programma eMule, sia sui principali siti italiani dedicati al file sharing, senza che i partecipanti delle varie comunità abbiano raggiunto una posizione condivisa.

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.

Note

  1. ^ La soluzione "antiP2P", da Punto Informatico del 11 novembre 2005

Voci correlate

Collegamenti esterni

Forum, Boards e Siti

Documentazione

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

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero

ru-sib:EMule