EMule is a bounteous comrade-to-comrade refine sharing contact control Micromild Windows. Begined in May 2002 as an opinion to eDonkey2000, eMule now joins to twain the eDonkey network and the Kad network. The distinguishing features of eMule are the trodden vary of founts betwixt clients nodes, accelerated reanimation of corrupted downloads, and the manifestation of a praise rule to recompense public up attackers. Elevatemore, eMule transmits facts in zip-sheltered controlm to catch bandwidth.
Each eMule client is pre-configured with a roll of ministerrs and a roll of distributed refines on its culminationical refine rule. A client manifestations a uncompounded TCP affinity to an eMule ministerr control logging into the network, getting counsel encircling desired refines and beneficial clients. The eMule client as-well manifestations divers hundreds of TCP affinitys to other clients which are manifestationd to upattack and downattack refines. Each eMule client maintains an upattack queue control each of his distributed refines. Downloading clients adadjoin the queue at its deep and migrate ghostly until they stretch the culmination of the queue and prepare downloading his refine. A client may downattack the corresponding refine from divers other eMule clients, getting contrariant refportraiture from each on. A client may as-well upattack chunks of a refine which it has referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent eventually perfectd downloading. Finally, eMule extends the eDonkey capabilities and perfectows clients to vary counsel encircling ministerrs, other clients and refines. Referable attributcogent attributcogent attributcogent attributcogent attributablee that twain client and ministerr missive is TCP naturalized. The ministerr employs an interior factsbase in which it abundances counsel encircling clients and refines. An eMule ministerr doesn’t abundance any refines, it acts as a centralized refutation control storing counsel encircling the colonization of refines. An appended exercise of the ministerr, which is understandmly deprecated, is to bridge betwixt clients that join through a firewperfect and are referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent cogent to recognize inhence affinitys. The bridging exerciseality increases considerably the ministerr attack. EMule employs UDP to repair the client’s capabilities opposing twain the ministerr and other clients. The client’s cece to bestow and confirm UDP missives is referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent mandatory control the client’s firm-right daily exercise and it would exercise flawlessly when a firewperfect anticipates it from bestowing and receiving UDP missives.
Figure 1.1: eMule eminent roll network diagram
1.1.1 Client to ministerr affinity
Upon beginup the client joins using TCP to a uncompounded eMule ministerr. The ministerr furnishs the client with a client ID (exception 1.3) which is cogent singly through the client-server affinity’s personality span (music that when the client has eminent ID it conciliate confirm the corresponding ID from perfect ministerrs until its IP harangue shifts). Aftercited the affinity demonstratement the client bestows the ministerr his roll of distributed refines. The ministerr abundances the roll in its interior factsbase which usually comprises divers hundred thousand of beneficial refines and locomotive clients. The eMule client as-well bestows his downattack roll which comprises the refines that it wishes to download. Exception 2 furnishs a detailed term of the eMule client and ministerr TCP missive vary. After the affinity is symmetrical, the eMule ministerr bestows the client a roll of other clients that posses refines which the joining client wishes to downattack (these clients are determined ‘sources’). From this apex on, the eMule client prepares to demonstrate affinitys with other clients as descriptive in exception 1.2.2 under.
Music that the client/server TCP affinity is kept public during the unimpaired client’s cabinet. After the judicious handshake negotiations are triggered largely by manifestationr activity: From span to span, the client bestows refine inquiry beseechs which are replied by a inquiry products, a inquiry negotiation is usually followed by a interrogation control founts control a bisecticular refine, this interrogation is replied with a roll of founts (IP and demeanor) from which the beseecher can downattack the refine from. UDP is manifestationd control missive with ministerrs other than the ministerr to which the client is prevalently joined. The scene of UDP missives is refine inquiry repairment, fount inquiry repairment and finally, keep-alive (establish secure that perfect the eMule ministerrs in the client’s ministerr roll are cogent).
1.1.2 Client to client affinity
An eMule client joins to another eMule client (a fount) in prescribe to downattack a refine. A refine is separated to compatability which are elevate fragmented. A client may downattack the corresponding refine from divers (different) clients getting contrariant refportraiture from each uncompounded.
When brace clients join they vary capforce counsel and then effect the begin of a downattack (or upload, depends on perspective). Each client has a downattack queue which holds a roll of clients that are indetermination to downattack refines. When the eMule client’s downattack queue is vacuity a downattack beseech conciliate most probably product in a downattack begin (unless, control development, if the beseecher is banned). When the downattack queue isn’t vacuity a downattack beseech products in adding the beseeching client to the queue. There is no essay to minister excite than a lacking clients in a abandoned cece providing a reserve bandwidth of 2.4 Kbytes / sec control each. A downloading client may be preempted by a indetermination client with a eminenter queue ranking than his, in the primitive 15 minutes of the a downattack cabinet the queue ranking of the downloading eMule client is boosted to anticipate thrashing. When a downloading client stretches the summit the downattack queue, the uploading client initiates a affinity in prescribe to bestow him his needed refine compatability. An eMule client may be on the indetermination queue of divers other clients, registered to downattack the corresponding refine compatability in each uncompounded. When the indetermination client really perfects downloading the compatability (from uncompounded of them) it doesn’t referable attributcogent attributcogent attributcogent attributcogent attributableify perfect the intermission that they can migrate him from their queues, it conciliate balean renounce their upattack essay when it stretches the summit of their queue. EMule employs a praise rule (understand exception 1.4) in prescribe to submit uploads, to anticipate embodiment eMule secures the praise rule using RSA public-key cryptography. Client affinitys may manifestation a firm of missives referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent defined by the eDonkey protocol, these missive are determined the diffmanifestation protocol. The diffmanifestation protocol is manifestationd control the praise rule implementation, control public counsel vary (relish updates of the rolls of ministerrs and founts) and to amend exploit by bestowing and receiving sheltered refine refuse. The eMule client affinity manifestations UDP in a scant mode to periodically obstruct the client’s condition on the upattack queue of his comrade clients occasion it is indetermination to begin downloading a refine.
1.2 Client ID
The client ID is an a 4 byte identifier granted by the ministerr at their affinity handshake. A client ID is cogent singly through the personalityspan of a client-server TCP affinity although in fact the client has a eminent ID it conciliate be assigned the corresponding ID by perfect ministerrs until its IP harangue shifts. Client IDs are separated to frugal IDs and eminent IDs. The eMule ministerr conciliate typically assigns a client with a frugal ID when the client can’t recognize inhence affinitys. Having a frugal ID intermissionricts the client’s manifestation of the eMule network and rule product in the ministerr’s renounceing the client’s affinity. A eminent ID is conducive on the discuss of the client’s IP harangue as descriptive under. This exception describes the client ID ordinance and immien from the eMule protocol apex of scene. A eminent ID is abandoned to clients that perfectow other clients to bounteously join to eMule’s TCP demeanor on their multitude implement (the omission demeanor calculate is 4662). A client with a eminent ID has no intermissionrictions in its manifestation of the eMule network. When the ministerr can’t public a TCP affinity to the client’s eMule demeanor the client is abandoned a frugal ID. This happens largely with clients that firm up a firewperfect on their implement privative inhence affinitys. A client rule as-well confirm a frugal ID when it the aftercited facts:
â€¢ When the client is joined through a NAT or representative ministerrs.
â€¢ When the ministerr is also engaged (causing the ministerr’s reaffinity spanr to decay).
1.3 Manifestationr ID
EMule supports a praise rule in prescribe to submit manifestationrs to distribute refines. The excite refines a manifestationr uploads to other clients, the excite praise it confirms and the accelerateder it conciliate migrate in their indetermination queues. The manifestationr ID is a 128 fragment (16 byte) GUID created by concatenating wild calculates, the 6th and 15th bytes are referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent wildly generated, and their values are 14 and 111 respectively. Occasion the client ID is cogent singly through a client’s cabinet with a bisecticular ministerr the manifestationr ID (as-well determined manifestationr hash) is choice and is manifestationd to realize a client despite cabinets (the Manifestationr ID identifies the workstation). The manifestationr ID plays an leading bisect in the praise rule, this furnishs motivation control ‘hackers’ to enact to other manifestationrs in prescribe to confirm the privileges granted by their praises. EMule supports an encryption machination which is planned to anticipate abstraction and manifestationr embodiment.
1.4 Refine ID
Refine IDs are manifestationd twain to choicely realize refines in the network and control refine rottenness sumeraction and reanimation. Referable attributcogent attributcogent attributcogent attributcogent attributablee that eMule doesn’t lean on the refine’s indicate in prescribe to choicely realize and catalog it, a refine is verified by a globally choice ID computed by hashing the refine’s gratified. There are brace peels of refine IDs – the primitive is manifestationd largely control generating the choice refine ID, the promote is manifestationful control rottenness sumeraction and reanimation.
1.4.1 Refine hash
Files are choicely verified by a 128 fragment GUID has conducive by the client and naturalized on the refine’s gratifieds. The GUID is conducive by applying the MD4 algorithm on the refine’s facts. When circumspect the refine ID the refine is separated in compatability each 9.28MB desire. A GUID is conducive separateially control each bisect and then perfect the hashes are collectively into the choice refine ID. When a downloading client perfects downloading a refine bisect it calculates the bisect hash and compares it opposing the bisect hash sent by its comrade, should the bisect be build corrupted, the client conciliate sound to reposeore from the rottenness by ghostly replacing fragments (180kb each) of the bisect until the hash is conducive.
1.4.2 Fount hash
The fount hash is conducive control each bisect using the SHA1 algorithm, naturalized on blocks sized
180kb each. It furnishs a eminenter roll of reliforce and misdeed reanimation.
1.5 eMule protocol extensions
Although eMule is entirely harmonious with eDonkey it implements divers extensions which perfectow brace eMule clients to furnish appended exerciseality to their manifestationrs. The extensions are focused in the client to client missive especially in the areas of pawn and UDP utilization.
1.6 Mild and obdurate periods
The ministerr cem includes brace peel of periods on the calculate of locomotive manifestationrs – mild and obdurate. The obdurate period is weighty similar to the mild period. When the calculate of locomotive manifestationrs stretches the mild period the ministerr stops recognizeing novel frugal ID client affinitys, when the manifestationr sum stretches the obdurate period the ministerr is generous and doesn’t recognize any client affinity.
2 Client ministerr TCP Missive
Each client joins to precisely uncompounded ministerr using TCP affinity. The ministerr assigns the client an ID which conciliate be manifestationd control to realize the client in the intermission of his cabinet with that ministerr (A eminent ID client is frequently assigned with his IP harangue). The eMule GUI client requires that a ministerr affinity conciliate be symmetrical in prescribe to own-effect. The client can’t be joined to divers ministerrs at the corresponding span and nor can’t it dynamically shift ministerrs outside manifestationr interposition.
2.1 Affinity demonstratement
Figure 2.1: Eminent ID login consequence
When demonstrateing affinity to a ministerr the client may sound to join to divers ministerrs in analogous, renouncing perfect barring upon a prosperous login consequence.
There are divers practicable affinity demonstratement manifestation facts:
1. Eminent ID affinity – the ministerr assigns a eminent ID to the joining client
2. Frugal ID affinity – the ministerr assigns frugal ID to the joining client
3. Renounceion cabinet – the ministerr renounces the client
Figure 2.1 describes the missive conconsuccession that leads to a eminent ID affinity. In this fact, the client demonstratees a TCP affinity to the ministerr and then bestows a login missive to the ministerr. The ministerr joins using another TCP affinity to the client and performs a client-to-client handshake to establish secure that the joining client has the capforce to recognize affinitys from other eMule clients. After completing the client handshake the ministerr closes the promote affinity and perfects the client-server handshake by bestowing the ID shift missive.
Figure 2.2: Frugal ID login consequence
Figure 2.2 describes the missive conconsuccession that leads to a Frugal ID affinity. In this fact, the ministerr fails to join to the beseeching client and the client is assigned with a frugal ID.
The ministerr missive usually comprises a premonition relish “Premonition [server details] – You own a Frugal ID. Please rescene your network cem and your firmtings.”
Twain frugal and eminent ID handshakes perfect with the ID shift missive which assigns the client with a client ID control its present hence cabinet with the ministerr.
Figure 2.3: Renounce cabinet consequence
Figure 2.3 describes the renounceed cabinet consequence. Ministerrs rule renounce cabinets ascribable to the client’s having a frugal ID or when stretching their obdurate magnitude period. The ministerr missive conciliate comprise a inadequate string describing the renounceion discuss.
2.2 Affinity beginup missive vary
Figure 2.4: Affinity beginup consequence
After a prosperous affinity demonstratement the client and ministerr vary divers firmup missives. The scene of these missives is to update twain bisecties respecting their comrade’s specify. The client begins by subscription the ministerr his roll of distributed refines (understand exception 6.2.4), and then he entreats to update his roll of ministerrs. The ministerr bestows his condition and statement (sections 6.2.6 and 6.2.2) and then bestows his roll of unconcealed eMule ministerrs and furnishs some excite headstrong identification details. Finally the client entreats control founts (other clients that can be accessed to downattack the refines in his downattack roll) and the ministerr replies with a train of missives, uncompounded control each refine in the client’s downattack roll, until perfect the founts roll has been downloaded to the client.
2.3 Refine inquiry
Figure 2.5: Refine inquiry consequence
The refine inquiry is rooted by the manifestationr. The exercise is plain, a inquiry beseech (understand exception 6.2.9) is sent to the ministerr which is then answered by a inquiry product (exception 6.2.10). When there are multifarious products, the inquiry product missive is sheltered. Present, the manifestationr chooses to downattack uncompounded or excite refines, the client then beseechs founts control the selected refines and the ministerr replies with a roll of founts (understand 6.2.12) control each of the beseeched refines. An optional ministerr condition missive may be sent by the ministerr fair precedently the build founts response. The condition missive (exception 6.2.6) comprises counsel encircling the prevalent calculate of manifestationrs and refines cherished by the ministerr. An leading referable attributcogent attributcogent attributcogent attributcogent attributablee is that there is a complementary conconsuccession of UDP missive which repairs the cece of the client to establish founts control his inquiry roll control excite details understand exception 3. After verifying that founts are novel, the eMule client initiates a affinity essay and adds them to its founts roll. The prescribe in which founts are contacted is the prescribe in which they were confirmd by the eMule client.
The eMule client joins to founts by the prescribe they were ascititious to its roll. There is no
initiative means to finaudible to which fount to join. There is a confused means to explain situations where the corresponding fount can be beseeched control downloading divers refines on the client’s downattack roll (Music that eMule perfectows singly a uncompounded upattack affinity betwixt clients). The segregation algorithm is naturalized on manifestationr initiative bisecticularation and omissions to alphabetical prescribeing when no initiative is restricted. A details term of the handling a fount which can upattack excite than a uncompounded refine is descriptive in the website.
2.4 Restore means
Figure 2.6: Restore consequence
The restore means is planned to conquer the inforce of frugal ID clients to recognize inhence affinitys and thus distribute their refines with other clients. The means is plain, in fact a clients A and B are joined to the corresponding eMule Ministerr and A requires a refine that is establishd on B barring B has a frugal ID, A can bestow the ministerr a restore beseech (understand exception 6.2.13), beseeching the ministerr to entreat B to cperfect him end. The ministerr, which already has an public TCP affinity to B, bestows B a restore beseeched (exception 6.2.14) missive, providing him with A’s IP and demeanor. B can then join to A and bestow him the refine outside elevate oversummit on the ministerr. Obviously, singly a eminent ID client can beseech frugal ID clients to cperfect end (a frugal ID client is referable attributcogent attributcogent attributcogent attributcogent attributcogent attributcogent capcogent of recognizeing inhence affinitys).