This entry is a user-made guide and not verified by any eMule developer, but is still a helpfull addition for most users. You you can find questions and comments on this topic in a dedicated thread on our forum.
I'm tired of hearing of everyone complaining about slow downloads and trying to explain the same thing over and over. I'm going to try to explain a few things here and just point people to it.
Connection speed settings:
The first thing you must do is find out how fast your connection really is. One place you can try is Broadband Reports. Make sure you shut down any program that uses the internet before starting the test. You will recieve two results. One for your download speed and one upload speed. For example, a DSL may recieve 1220 download and 110 upload. Then go into eMules Preferences and click on Connection. Within the Connection window, click the Wizard button. At the bottom of the wizard screen, enter your results from the test you just did. Press apply.
If you know what kind of connection you have, it is still highly recommend that you type these valuse within the wizard since it also sets up all the other network settings to match your connection.
Warning: If you do NOT take the time to set these setting or feel like setting some of these values to very high settings, you will not have a good experience with eMule! If you set your upload to high, this will actually cause your downloads to be very slow. Also, setting the max sources and max connections to high values can cause your internet connection to die forcing you to reboot your machine and/or router.
(If the speed test requires java, go to http://java.sun.com/ and install it from there.)
Another problem you may be having is that people are not able to "see" you. This means that your client is firewalled and you will recieve a LowID. Although you can still download like this, it does limit you some. Here is a link to better info one this.
Supply and Demand
The fact is, total upload = total download within a network. A large portion of the users in the network are DSL type users with connections that can download at speeds over 100Kb/s but can only upload at about 12Kb/s. So, lets say this is a perfect world and everyone is uploading at their max of 12Kb/s. This means everyone is downloading at 12Kb/s no matter how fast you are capable of downloading!! But this isn't a perfect world. So, sometimes you will download at a fast pace at the expense of someone else downloading at a slower pace.. And at other times, you will download at a slow pace, while others download at a fast pace.
A basic overview of the ED2K network:
Many people will still complain that they can download with amazing speeds on other networks and not on eMule. This is because the content on the two networks are completely different. eMule's content is full of very large files. Transfering very large files to a lot of users in a reliable fashion is very hard. For example, downloading a large file with Kazaa is very unreliable. You may start off with a fast transfer, but if that person disconnects, your download may be a waste. Also the data you're downloading can get corrupted as their method of corruption detection is not very good.
So, why is eMule better at this? I'll try to break it down with a very basic example which would work only in a perfect world, but gets the point across.
Lets say I want to share a semi large file, 144MB and I have a 30K connection and 16 people are wanting the file. eMule will break this file into 16 parts of 9MBs each. Now, instead of uploading the entire file to one person at a fast speed, I upload to about 8 users at a slower speed. Each of these people should be downloading a different part of the file. Once these initial uploads recieve 9MB, I send them back to the queue and start uploading to the other 8 users. Since those first 8 users recieve 9MB (or a complete chunk), they now start uploading that chunk to everyone else wanting the file. When the second set of 8 users finish downloading 9MB, they are put back on the queue. Now, if everyone downloaded a different 9MB chunk from me, I have just uploaded 16 chunks (The whole file) into the network and could even unshare the file since I also now have 16 users helping me share it. Now, this means that everyone gets the files slower, but they ALL get the file even if I leave the network.. So, lets say after uploading 300MB of the file, I disconnect. Then after I disconnect, more people want to download that file. Although there isn't anyone in the network with the full file yet, they can still get it because they find the 16 other sources of that file still on the network. Then they themselves quickly become sources for others that want it.
Again, I want to share a semi large file, 144MB and I have a 30K connection and 16 people are wanting the file. I start uploading that file to one of the people wanting the file. This persons downloads at pretty fast speed.. But, when he finishes the download, he disconnects so he can use it. I upload to the next person real fast and he completes it. He stays on a bit and begins to share it to one other users. I also begin to upload to the next user.. But I disconnect at 300MB.. This leaves only one person able to share that file in the network and this person doesn't stay on long either since he has the complete file. Now, only two people got the whole file, and 2 others only have part of the file. The file is now dead to the network and nobody else can get it.
OK, I just typed this up without really thinking to hard about it. It is very hard to simply explain how this network works in just a few paragraphs, without preparing, as I just found out.. But, hopefully this helps some people.
Warning: I will keep this thread open for discussion.. But most likely will update the main post periodically with the good information and corrections and delete the added posts to keep this thread clean. So don't be surprised if your post disapears, it's nothing personal.