Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
6 user(s) are online (6 user(s) are browsing encyclopedia)

Members: 0
Guests: 6

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

EMule

In Computing, eMule is a peer to peer file sharing application that works with the eDonkey network and has more features than the eDonkey client. eMule is open source software released under the GNU General Public License. eMule runs on Microsoft Windows; however, its codebase forms the basis for a Linux client, XMule, and a multiplatform client, 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-)compressed form to save bandwidth. Another feature of eMule is the ability to accept ed2k links from a web browser and begin downloading the file(s) these links refer to. These links ensure that the file being downloaded shares the same hash, and therefore is not a fake . Recently, many of the sites which provide these links have been taken offline by authorities due to accusations of copyright infringement, as well as a questionable legality of the links they provide. Matching file sources is verified through the use of the MD4 algorithm.

Because eMule is a popular Open source program, hundreds of eMule mods (modifications of the original eMule) have appeared on the Internet.

= History =

The eMule project was started by Hendrik Breitkreuz in 13 May 2002 who was dissatisfied by the original eDonkey2000 client. It was continued with help of 7 developers. The source was first released at version 0.02 and it was published on SourceForge on July 6 2002. It was first released as a binary on August 4 2002 at version 0.05a . The Credit System was implemented for the first time on 14 September 2002 in version 0.19a. The eMule project website started up on 8 December 2003. Since its inception, eMule has been downloaded by over 85 million people.

Currently the project is staffed by 16 people: 2 developers, 2 project managers (including the founder Breitkreuz), 3 testers, 9 debug testers. The official web site is supported by 7 web developers and 4 moderators.

=Recent events=

Recent versions (v0.40+) of eMule have added support for a new network called Kad (see Kad Network). This network has an implementation of the Kademlia protocol, which does not rely on central servers as the eDonkey network does.

Also added in recent versions were Unicode Search (allowing for searches for files in non-English languages) and the ability (not supported in Kad Network) to search servers for files with complete sources of unfinished files.

In new versions, a Bad source list was added. The application adds an IP address 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. Many 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 (allowing to pinpoint pieces of data that are corrupted, re-downloading corrupted pieces, and eventually banning clients sending corrupted data).

The 0.46b version added the creation and management of collection files, which contain a set of links to files intended to be downloaded as a set.

eMule is now considered a stable product, and new versions are not released as often as they used to be - 2 to 3 months is now a typical time interval between releases.

= Network & File Sharing Issues =

== Basics Concepts==

=== File identification===

All files are given a hash value. This hash is a combination of numbers and letters to uniquely identify the file. Numerous filenames may be associated with a file, but this does not change anything about files hash value. This allows each user to find all sources to a particular file no matter what file name each user has given the file. In addition, the files are broken into 9.28 MB of parts of data. Each part is also given a hash value. For example a 600 MB file would contain 65 parts. Each part is then given a hash value. Then the file hash is created from these part hashes to be used in the networks.

=== Identifying other clients ===

Like the file hash, each user in the network gets a unique and permanent user hash. This user identification is highly secured by a public / private key handshake to prevent misuse.

=== Downloading Data ===

It is important to understand that the actual downloading in eMule is not affected by the choice of the network. The network topology is only related to searching for files and finding clients that are sources to a file. Once a source has been found, your client contacts it. The source then reserves a queue place for that specific download. When you reach the first queue place after a certain waiting time you are entitled for receiving data.

== Classic server based eD2k ==

(eD2k :EDonkey network)

=== Connecting to the network ===

The key to this network is the eD2k server. Each client must to be connected to a server to enter the network. When connecting your client to a server, the server checks to see if other clients can freely connect to your client. If yes, the server assigns your client a so-called high ID. If communication is blocked, the server assigns your client a low ID. After the ID is assigned, eMule will send a list of all shared files to the server. The server adds the filenames and hash values you sent to its database.

===Searching for files===

Once connected to the network, the client can search for keywords in filenames. A search can either be local or global. If its a local search (searches only the server you are connected to), searches are quicker but will have fewer results. If the search is a global search (searches all the servers within the network), it will take longer but have more results. Each server looks up the keyword in its local database and returns any file names (with the hash value) that matches the keyword.

===Finding sources for files===

Downloads can be added by eMules search function or a special eD2k link format offered on many websites. Once they are in the Download list, eMule first queries the local (connected) server then all other servers in the network for sources to that particular download. The server looks up the files hash value in its database and returns the clients it knows for having it. Sources are other clients who have at least downloaded one entire part (9.28 MB) of the file matching the hash.

==Kad serverless network==

(based on Kademlia protocol)

===Connecting to the network===

The only thing needed to connect to this network is the IP and port of any eMule client already connected. This is called a Boot Strap. Once a client is in the network, the client then requests for other clients to determine if it can be contacted freely. This process is very similar to the HighID/LowID check on the servers. If you can be freely contacted, you are assigned an ID (similar to a HighID) and given an open status. If you are not freely contacted, you are given a firewalled status. From version v.44a on, the Kad network supports a Buddy for firewalled users. Buddies are other Kad clients who have status open and work as a relay for connections, that the firewalled user cannot manage.

===Searching in Kad===

In this network it does not matter what you search for. Be it a search for filenames, for sources of a download or for other users, all work pretty much the same. There are no servers to keep track of clients and the files they share so it has to be done by each participating client in the network in essence, every client is also a small server. Since every client is identified by a unique hash value, the idea of Kademlia is to associate a certain responsibility based on this hash. Each client in the Kad network works as a server for certain keywords or sources. The clients hash determines the specific keywords or sources. So the goal of any kind of search is to find those clients that have the responsibility for the current search topic. This is accomplished by a complex calculation of the possible distance to the target client by asking other clients for the shortest route to it.

== Basic rules of communication behavior ==

eMule and other programs on eDonkey network support the network in two basic ways:

1) Users are forced to share files: Shared files larger than 9500 KB are divided and downloaded in parts, so that a recipient starts to share the parts of the file already downloaded even before the download of the whole file is complete. The recipient is forced to share in this way until the download is complete.

2) Users are forced to share their bandwidth, thus increasing network s data stream: The official version of eMule forces the users to set their maximum download speed to no more than four times their maximum upload speed. This limitation does not apply if the maximum upload speed is set to 10K per second or more.

Although there are many mods of eMule, it is hard to find one that doesn t enforce the second feature, which is a part of official eMule policy. Furthermore, attempting to circumvent the uploading feature can possibly slow a user s download, as he will get worse credits from uploaders. Also, many known leecher clients are often banned from the downloading through various means by eMule s mods (banning is not supported in official version).

Many eMule users can simultaneously download files larger than 100 MB. This can lead to huge queues of up to 5000 users. Such queues make eMule very hard to use for exchanging unpopular smaller files (such as an MP3 with 1-20 sources) and large files (such as albums or videos) from the same user (when a big file has only 1-2 sources). eMule includes a feature that limits download and upload speeds, so that they do not exceed the limits set by the user.

eMule cannot share files larger than about 4 GB. This is an inherent limitation of the ed2k protocol.

==Summary==

Both networks have totally different concepts for achieving the same: Searching for files and finding sources to a file. The main goal of the Kad network is to be independent of servers and improve scalability. Servers can only handle a certain amount of users and should a large server go down the network is severely handicapped. Kad network is self-organising and tunes itself for best possible performance depending on the number of users and their connection qualities. Therefore, it is more resistant to a large-scale network loss. Some servers also limit the number of files that can be shared by any particular user. This limitation doesn t exist in Kad network, therefore this network is more suitable for users that share big collections of files.

= eMule mods=

As a popular open source program, eMule has many variants, usually called mods. Some mods started as a fork of a eMule code, and then continued to develop independently of the official version. A popular mod of this type is eMule Plus. It does not have Kademlia protocol implemented, but proponents of this mod credit it for a better GUI and an ability to achieve better download speeds than the official version. Other mods follow official eMule releases, and make their own releases based on each new release of the official version. Often features first debuted in a mod later find their way into the official version.

= Credit System =

== Introduction ==

The credit system is used to reward users contributing to the network, i.e. uploading to other clients.

The strict queue system in eMule is based on the waiting time a user has spent in the queue. The credit system provides a major modifier to this waiting time by taking the upload and download between the two clients into consideration. The more a user uploads to a client the faster he advances in this client s queue.

The modifiers are calculated from the amount of transferred data between the two clients. The values used can be seen in the client s details dialog. To view this information, right click on any user and choose View Details.

== Credit Calculation ==

There are two different credit modifier calculated:

Ratio1 = Uploaded Total x 2 / Downloaded Total

Ratio2 = SQRT(Uploaded Total + 2)

Both ratios are compared and the lower value is used as modifier.

Some boundary conditions also exist:

> Uploaded Total < 1MB => Modifier = 1

> Downloaded Total = 0 => Modifier = 10

> The modifier may not be lower than 1 or higher than 10

== Notes ==

All Clients uploading to you are rewarded by the credit system. It does not matter if the client supports the credit system or not.
Not supporting clients will grant you no credits when you upload to them.
Credits are not global. They are exchanged between two specific clients
Credits are stored in the clients.met file. The unique user hash is used to identify the client.
Your own credits are saved by the client who owes you the credit. This prevents faking the credits.
Your own credits cannot be displayed

= Colors of the Progress Bar =

Each download in the Transfers tab has a coloured bar to show current file availability and progress.

== Basic Styles ==

(flat style) (shaded style)

Black shows the parts of the file you already have.

Red indicates a part missing in all known sources.

Different shades of blue represent the availability of this part in the sources. The darker the blue, the more sources have this part.

Yellow denotes a part being downloaded.

The green bar on top shows the total download progress of this file

(flat style) (shaded style)

A green bar stands for a completed download.

(flat style) (shaded style)

A dark red or blue progress bar denotes a stopped or paused download.

== Download Bar ==

If you expand the download you see each of its sources with their corresponding bar. To see the sources just double-click a download (or single click, depends on the settings in Options -> Display ). Here the colours have a slightly different meaning:

(flat style) (shaded style)

Black indicates parts you already have

Blue are parts you still need for this download

Silver stands for parts this source is also missing

Green parts are currently downloading

Yellow denotes a pending (already requested) part

== Source Count ==

The four values xx/yy+aa (zz) displayed after the progress bar is the source count for this file and shows following information.

xx - Number of useful sources

yy - Total number of sources

+ aa - Number of Asked for another file sources (only shown when Advanced Controls is enabled)

zz - Currently transferring sources

== Obtained Parts ==

This bar appears in the upload queue if supported by the other client. It shows the progress of the file this user is downloading.

Black are parts this user has already completed

Silver ones are parts still missing

Green parts are currently uploading

Yellow denotes a pending (already requested) part

== Availability of shared files ==

Each shared file show its availability in the form of a bar. The color coding is similar to the one used with the progress bar

Red indicates a part missing in all known sources

Different shades of blue give an idea how well-spread different parts are

= Network status=

(data for eDonkey network)

  • Number of concurrent users : 5 - 12.5 million (correct number is unknown since many new servers are faking their number of users).
  • Number of concurrent shared files: ~600 million.
  • =See also=

    *File sharing *ANts P2P *DC++ *Soulseek *Shareaza *BitTorrent

    =External links=

    *[http://www.emule-project.net eMule project] *[http://sourceforge.net/projects/emule eMule on SourceForge] (SourceForge) - contains archives of past versions of eMule. *[http://www.afterdawn.com/guides/archive/little_emule_tutorial.cfm eMule tutorial at AfterDawn] *[http://www.kademliaskins.net/ KademliaSkins.Net] - Skins for eMule. *[http://www.emule-mods.com/ eMule-Mods.com] - eMule Mods. *[http://content.emule-project.net/ Emule content database] - A collection of files released on the ED2K network