http://www.absoluteastronomy.com/topics/EMule
|
eMule is a peer-to-peer file sharing application for Microsoft Windows
Microsoft Windows is a family of operating systems by Microsoft. They can run on several types of platforms such as server , embedded devices and, most typically, on personal computers….
. Started in May 2002 as an alternative to eDonkey2000
eDonkey2000 was a peer-to-peer file sharing application developed by MetaMachine, using the Multisource File Transfer Protocol….
, eMule now connects to both the eDonkey network
The eDonkey network is a file sharing network used primarily to exchange music, films and software….
and the Kad network
The Kad Network is a peer-to-peer network which implements the Kademlia P2P overlay protocol. This network is supported by eMule, MLDonkey and aMule….
. The distinguishing features of eMule are the direct exchange of sources between client nodes, fast recovery of corrupted downloads, and the use of a credit system to reward frequent uploaders. Furthermore, eMule transmits data in zlib
name = zlib| logo = | screenshot =| caption =| developer =| latest_release_version = 1.2.3| latest_release_date = 2005-07-18…
-compressed form to save bandwidth.
eMule is coded in Microsoft Visual C++ using the Microsoft Foundation Classes. Since July 2002 eMule has been free software
Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redistributed without restriction….
, released under the GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU….
; its popularity has led to eMule’s codebase being used as the basis of a Linux
Linux is a Unix-like computer operating system. It is one of the most prominent examples of open source development and free software; unlike proprietary software operating systems such as Microsoft Windows or Mac OS X, its underlying source co…
-specific client, xMule
xMule the X11 Mule is a client for the EDonkey Network peer-to-peer file sharing network, intended to bring it to virtually all the major Unix platforms, with a particular emphasis on Linux….
, and a multiplatform client, aMule
In computing, aMule is a peer-to-peer file sharing Application software that works with the EDonkey network and the Kad Network, but offers more features than the standard EDonkey2000, including support for Kademlia….
, along with the release of many eMule mods (modifications of the original eMule) on the Internet.
History
The eMule project was started on May 13, 2002 by s (also known as Merkur) who was dissatisfied with the original eDonkey2000
eDonkey2000 was a peer-to-peer file sharing application developed by MetaMachine, using the Multisource File Transfer Protocol….
client. Over time more developers joined the effort. The source was first released at version 0.02 and published on SourceForge
SourceForge is a collaborative revision control. SourceForge is proprietary software and is sold by VA Software….
on July 6, 2002.
eMule was first released as a binary on August 4, 2002 at version 0.05a. The ‘Credit System’ was implemented for the first time on September 14, 2002 in version 0.19a. The eMule project website started up on December 8, 2003. Since its inception, eMule has been downloaded over 405 million times as of May 11, 2008 making it by far the most downloaded project on SourceForge
SourceForge is a collaborative revision control. SourceForge is proprietary software and is sold by VA Software….
.
Current versions (v0.40+) of eMule have added support for the Kad network
The Kad Network is a peer-to-peer network which implements the Kademlia P2P overlay protocol. This network is supported by eMule, MLDonkey and aMule….
. This network has an implementation of the Kademlia
Kademlia is a distributed hash table designed by Petar Maymounkov and David Mazires, for decentralized peer to peer computer networks….
protocol, which does not rely on central servers as the eDonkey network
The eDonkey network is a file sharing network used primarily to exchange music, films and software….
does, but is an implementation of a distributed hash table
Distributed hash tables are a class of decentralized Distributed computing that partition ownership of a set of keys among participating node, and can efficiently routing messages to the unique owner of any given key….
.
Also added in recent versions were the ability to search using unicode
Unicode is an industry standard designed to allow text and symbols from all of the writing systems of the world to be consistently represented and manipulated by computers….
, allowing for searches for files in non-Latin alphabets, and the ability to search servers for files with complete sources of unfinished files on the eDonkey network
The eDonkey network is a file sharing network used primarily to exchange music, films and software….
.
In new versions, a “Bad source list” was added. The application adds an IP address
An IP address is a unique number that devices use in order to identify and communicate with each other on a computer network utilizing the Internet Protocol standard ….
to this list after one unsuccessful connection. After adding an IP to the “Bad source list”, the application treats this IP as a “dead” IP. Unavailable IPs are banned for a time period from 15 to 45 minutes. Some users have complained that it leads to a loss of active sources and subsequently slows download speed.
Other recent additions include: the ability to run eMule from a user account with limited privileges (thus enhancing security), and intelligent corruption handling (so that a corrupted chunk does not need to be re-downloaded entirely).
The 0.46b version added the creation and management of “eMule collection” files, which contain a set of links to files intended to be downloaded as a set.
Recently, many ISPs are bandwidth throttling
Bandwidth throttling is a method of ensuring a bandwidth intensive device, such as a Server, will limit the number of requests it will respond to within a specified period of time….
default P2P ports resulting in slow performances. The 0.47b version adds protocol obfuscation; eMule will automatically select two ports at random in the startup wizard.
eMule is now considered a stable product, and new versions are not released as often as they used to be; five to six months is now a typical time interval between releases. The latest version is 0.49a which was released in May 2008.
Basic concepts
Each file that is shared using eMule is hashed
A hash function is a way of creating a small digital “fingerprint” from any kind of data. The function chops and mixes the data to create the fingerprint, often called a hash value….
using the MD4
MD4 is a message digest algorithm designed by Professor Ronald Rivest of Massachusetts Institute of Technology in 1990….
algorithm. The top-level MD4 hash, file size, filename, and several secondary search attributes such as bit rate and codec are stored on eD2k servers
The Lugdunum server is a Server that serves to bootstrap EDonkey network clients and find other peers and files….
and the serverless Kad network
The Kad Network is a peer-to-peer network which implements the Kademlia P2P overlay protocol. This network is supported by eMule, MLDonkey and aMule….
.
Users can search for filenames in the servers/kad and are presented with the filenames and the unique identifier consisting of the top-level MD4 hash for the file and the file’s size that can be added to their downloads. The client then asks the servers where the other clients are using that hash. The servers return a set of IP/ports that indicate the locations of the clients that share the file.
eMule then asks the peers for the file. eMule will then be queued until an upload slot becomes available.
When a complete chunk of 9500 kilobytes is downloaded and verified this data is also shared by the downloader, helping others to download the file as well.
It is also possible that a client knows other clients that are also sharing that same file. In that case a source exchange between the clients is made. This exchange of known peers is done directly between the peers.
Newer versions of eMule support AICH – Advanced Intelligent Corruption Handling. It is meant to make eMule’s corruption handling competitive with BitTorrent. SHA-1 hashes are computed for each 180kb sub-chunk and a whole SHA-1 hash tree
In cryptography, hash treesalso known as Merkle treesare an extension of the simpler concept hash list, which in turn is an extension of the old concept of hash functioning….
is formed. AICH is processed purely with peer-to-peer source exchanges. eMule requires 10 agreeing peers regarding the SHA-1 hash, so rare files generally do not benefit from AICH.
Low ID
Users who cannot be reached from the outside because they are firewalled
A personal firewall is software installed on an end-user’s PC which controls communications to and from the user’s PC, permitting or denying communications based on a security policy….
, behind a NAT
In computer networking, the process of network address translation involves re-writing the source and/or destination IP addresses of Internet Protocol packets as they pass through a router or firewall ….
device that has not been correctly port forwarded or their IP address ends with a zero (e.g. 123.45.67.0) get a “Low ID” from the servers. They are still able to upload and download but need the help of servers
The Lugdunum server is a Server that serves to bootstrap EDonkey network clients and find other peers and files….
or other kad
The Kad Network is a peer-to-peer network which implements the Kademlia P2P overlay protocol. This network is supported by eMule, MLDonkey and aMule….
clients to be reached by other clients. Since they cannot be notified that they are in front of an upload queue, they have to poll
In software engineering, busy waiting or spinning is a technique in which a process repeatedly checks to see if a condition is true, such as waiting for Computer keyboard input or waiting for a lock to become available….
peers if an upload slot is available. Since they cannot connect to any other Low ID clients, they see only 40%-60% of the clients that a High ID can see. Their IP
An IP address is a unique number that devices use in order to identify and communicate with each other on a computer network utilizing the Internet Protocol standard ….
/ports are not exchanged between other peers, limiting their possibilities for finding sources via eMule’s pure-P2P source exchange.
A Low ID client also consumes a lot more data more bandwidth on an eserver than a High ID client due to the lowidcallbacks. Also, a releaser or heavy uploader that uses a releaser mod such as MorphXT or Xtreme that is forced to operate on a Low ID (hotel room, job) also will find that he will have little control over his upload priorities (especially powershares) as the servers appear to limit their connection-forwarding for each client, thus turning his upload queue to a contention situation where the first to be able to get forwarding and finds an open slot gets it.
Credit system
Clients usually do not download from a source immediately after contact is made but must wait in the source’s upload queue until an upload slot becomes available. A credit system is used to promote uploading by moving those who upload to a client through that client’s queue more quickly. Each client maintains a record of how much data they received and sent from every client to which they’ve connected. Clients are identified using a secure hash
In cryptography, a cryptographic hash function is a hash function with certain additional security properties to make it suitable for use as a primitive in various information security applications, such as authentication and message integrity….
handshake. Clients can pass up to 10 times faster through a client’s queue by the credit system. Each client’s credits are stored on the computers of the servers he or she has connected to, rather than his or her own computer. This prevents tampering with one’s own credits.
The computation formula for the Official Credit System is composed of two ratios as follows:
Both ratios are then compared and the lower one is used as the modifier. A few conditions exist:
- If the Uploaded Total is less than 1 MB, then the modifier will remain at 1.
- If the client uploads data but doesn’t download any, the modifier will be fixed at 10.
- The modifier can only be between 1 and 10.
An exception to this rule applies only when a peer is assigned a “Friend Slot” after being added to the client’s Friends list. This automatically assigns a reserved upload slot for that peer so that he/she can begin downloading regardless of the Credit rating. Only one Friend Slot can be reserved so as to prevent any form of abuse such as upload discrimination.
eMule mods
As a popular open source program, eMule has many variants, usually called mods. Some mods started as forks from official eMule versions, and then continued to develop independently rather than modifying newer official versions. An example of this type of mod is eMule Plus
eMule Plus is an open source attempt to add a redesigned graphical user interface and other enhancements to the original eMule P2P client….
. Since eMule Plus forked off before the release of v0.30, the first official version to include Kad, eMule Plus does not support this feature. Other mods follow official eMule releases and make their own releases based on each new release of the official version. Since mods are required to be shared publicly by the GNU General Public License, useful features created by mod developers can be incorporated into an official version.
See also
- Comparison of eDonkey software
Comparison of eDonkey software
The following tables compare general and technical information for a number of available applications supporting the eDonkey network….
- Comparison of file sharing applications
Comparison of file sharing applications
Sorry, no overview for this topic
- eDonkey network
EDonkey network
The eDonkey network is a file sharing network used primarily to exchange music, films and software….
External links
- DisplayLink(“http://sourceforge.net/projects/emule”,”eMule on SourceForge”)eMule on SourceForge (SourceForge
SourceForge
SourceForge is a collaborative revision control. SourceForge is proprietary software and is sold by VA Software….
) Contains archives of current and past versions of eMule
- DisplayLink(“http://www.emule-project.net/”,”eMule project”)eMule project Official site
- DisplayLink(“http://www.cs.huji.ac.il/labs/danss/p2p/resources/emule.pdf”,”eMule Protocol Specification”)eMule Protocol Specification by Danny Bickson and Yoram Kulbak from Hebrew University of Jerusalem
Hebrew University of Jerusalem
The Hebrew University of Jerusalem is one of Israel’s oldest, largest, and most important institutes of higher learning and research….
.



