Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions EMule - Wikipedia, the free encyclopedia

EMule

From Wikipedia, the free encyclopedia

The correct title of this article is eMule. The initial letter is shown capitalized due to technical restrictions.
eMule

eMule 0.47c
Latest release: 0.47c / September 14, 2006
OS: Microsoft Windows
Use: peer-to-peer file sharing
License: GNU General Public License
Website: www.emule-project.net

eMule is a peer-to-peer file sharing application for Microsoft Windows. Started in May 2002 as an alternative to eDonkey2000, eMule now connects to both the eDonkey network and the Kad network. 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.

eMule is coded in Microsoft Visual C++ using the Microsoft Foundation Classes. As of July 2002 eMule has been free software, released under the GNU General Public License; its popularity has led to eMule's codebase being used as the basis of a Linux-specific client, xMule, and a multiplatform client, aMule, along with the release of many eMule mods (modifications of the original eMule) on the Internet.

Contents

[edit] History

The eMule project was started on May 13, 2002 by Hendrik Breitkreuz (also known as Merkur) who was dissatisfied with the original eDonkey2000 client. Over time more developers joined the effort. The source was first released at version 0.02 and published on SourceForge 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 290 million times as of March 2007 making it the most downloaded project on SourceForge.[1]

[edit] Recent events

Current versions (v0.40+) of eMule have added support for the Kad network. This network has an implementation of the Kademlia protocol, which does not rely on central servers as the eDonkey network does, but is an implementation of a Distributed hash table.

Also added in recent versions were the ability to search using unicode, 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.

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. 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 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.47c which was released in September 2006.

[edit] Basic concepts

Each file that is shared using eMule is hashed using the MD4 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 and the serverless Kad network.

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

[edit] Low ID

Users that cannot be reached from the outside because they are firewalled, behind a NAT device that has not been correctly port forwarded or their IP address ends with a zero (e.g. 123.45.67.0)[2] get a "low ID" from the servers. They are still able to upload and download but need the help of servers or other kad clients to reach other low ID clients. Since they cannot be notified that they are in front of an upload queue, they have to poll peers if an upload slot is available. Since they cannot connect to any other low ID clients, they see only 70%-80% of the clients that a high ID can see. Their IP/ports are not exchanged between other peers, limiting their possibilities for finding sources via eMule's pure-P2P source exchange.

A LowID client also consume 5 times[citation needed] more bandwidth on an eserver than a HighID client. A releaser or heavy uploader that uses a releaser mod such as MorphXT or Xtreme that is forced to operate on a LowID (hotel room, job) also will find that he will have little control over his upload priorities (especially powershares) as the servers 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.

[edit] 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 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 clients they've connected to, rather than their own computer. This prevents tampering with one's own credits.

[edit] GUI

eMule has a resizable dialog that has the following tabs (windows) available. The GUI is skinable and the order of the buttons can be changed.

The following functions are visible in different tabs:

  • Servers. Displays an overview of the servers that can be connected to and show the network status and logs.
  • Transfers. The peers that are actively known and their status. The progress of the downloads, the uploads, and the known clients can be displayed here.
  • Shared files. All of the files that are shared are listed here.
  • IRC. eMule contains a simple IRC client to chat on IRC.
  • Kad. The kad window is a screen that mainly is used to debug the Kad network serverless lookup
  • Preferences. The preferences contain many settings that can alter the behaviour of eMule.

In the Transfers window, there are three rather similar values - Rating, Score (both in the 'On Queue pane'), and QR (in the 'Priority' pane). These all relate to the position of other clients in a client's queue, thus:

  • Rating is used as a weighting as part of the determination of a waiting client's Score; each client receives a Score of 100 by default, which may be lowered or increased based on certain events (getting banned due to "aggressiveness" (asking for a file too frequently), receiving data from them, etc.) - the higher the better.
  • Score is the end result of the value generated for that client to determine how deserving they are of being sent what they are waiting for. Waiting clients are ranked in order of their Score, from highest to lowest, on the list of clients waiting to be uploaded to - the higher the better.
  • Queue Rank, abbreviated as "QR" , and is the user's position in the queue of the client next to which this value is given. It is neither a Rating nor a Score; it is the user's rank in their 'Waiting queue', which is determined by his/her (and the other waiting clients') Score - A lower value means that he/she will start receiving parts of the file soon.

[edit] Distinguishing eMule

The strength of eMule is a large user base (currently averaging just over 4 million) with a lot of rare content. It also has the most complete implementation of the ed2k protocol and its extensions. There are other multi-protocol clients such as Shareaza, but these clients often don't utilize all the ed2k protocol extensions created by Lugdunum. In addition, eMule supports AICH, making its corruption handling competitive with BitTorrent. eMule also supports source exchanges, allowing it to substantially reduce the loads on the servers and KAD, and, with a HighID and well-sourced downloads pre-acquired by server and/or KAD, the ability to sustain the sources on these files completely independently for a day or longer after complete disconnection from ED2K and KAD.

Another distinguishing feature of emule that is a part of the ed2k extensions support is the ability to utilize eserver's support of complex boolean searches such as 'one AND two AND (three OR four) AND ("five four three" OR "two one") NOT seven'.

[edit] eMule mods

As a popular open source program, eMule has many variants, usually called mods. Some mods started as a fork of an eMule code, and then continued to develop independently from the official version. A popular mod of this type is eMule Plus, although it does not have Kad network support implemented. Other mods follow official eMule releases, and make their own releases based on each new release of the official version. Sometimes features first debuted in a mod later find their way into the official version.[3]

[edit] References

[edit] See also

[edit] External links

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu