Help - Search - Members - Calendar
Full Version: Why Are My Downloads So Slow. (7/22/03)
Official eMule-Board > General > Support - Do You Need Help? > Quick help & guides
Pages: 1, 2, 3, 4, 5
Unknown1
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.)

LowID:
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.


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


Other networks
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.. smile.gif 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.
zz
QUOTE
When you download a file, it is good for you to give all chunks you allready have of that file to other clients as soon as possible. As soon as you have spread your chunks, the other clients will actually help you to download the chunks you are missing. Then you can get those chunks from them (and fast, since you now have good credits with them). It will also be easier for you to get the chunks from the original source, now that is no longer busy uploading chunks that you already have, to other clients. So set your upload speed as high as possible!
Andu
I think there is an important information missing.

Info:

Don't upload at more than ~80% of your line capacity otherwise you will saturate the line and downloaded packages cannot be acknowledged.
BigMcLarge
I think Unknown1 hinted at this fact:

Since Kazza users typically share small files, and since small files download much faster (obviously), many (most?) of the clients are not downloading at any given time. So all those idleing computers increase the overall average download speed.

eMule users typically download huge files, so there is allot less client-idleing, and less overall network resources.

This is a good lesson to learn for eMule users: Leave your mule online as much as possible. Especially when you are not downloading. This improves the network as a whole. It also does wonders for your credits.
vultura
For those people using Windows 95, 98 or ME, there is a limit of 100 set for Maximum TCP connections, so although emule can go higher your system will not allow it to and you get "Too Many Connections" errors in your download queues, which affects potential download speeds.

The maximum connections figure of 100, also covers connections for email or web browsing, so setting it higher than for example 80 in emule, will cause issues if you try to browse the web or send email.

I have found that it is possible to alter the maximum connections in the above Windows versions by editing the registry. If not familiar with this do not attempt it and please ensure that you create a backup before making alterations to the registry.

The details can be found here, this page lists a good many settings normally missing from TCP section of registry.

Extract from the page:

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

The value entries that are described in this article do not normally exist in the Windows registry; they must be added to the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP

Values


MaxConnections = 32-bit number

Data Type: String

Specifies the maximum number of concurrent connections. The default is 100.



I would suggest finding out the max number of connections your router or modem can handle and setting the max number of connections in Windows lower.

My DG814 (like many routers designed for home use) can handle a maximum of 255 connections, so I set my max connections in Windows 98 SE to 240 and then adjusted my max connections in emule to 180, allowing me to browse the web with emule running.

Hope this helps someone.









-=tweek=-
QUOTE (Andu @ Jul 22 2003, 01:57 AM)
I think there is an important information missing.

Info:

Don't upload at more than ~80% of your line capacity otherwise you will saturate the line and downloaded packages cannot be acknowledged.

I have a dialup connection (very slow, just 28.8) how can i test my line capacity?
-Mac-
http://www.dslreports.com/stest
jax123
QUOTE (-=tweek=- @ Oct 16 2003, 05:46 PM)
QUOTE (Andu @ Jul 22 2003, 01:57 AM)
I think there is an important information missing.

Info:

Don't upload at more than ~80% of your line capacity otherwise you will saturate the line and downloaded packages cannot be acknowledged.

I have a dialup connection (very slow, just 28.8) how can i test my line capacity?
synergy46
The original post state:

LowID:
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.


The "HERE" link was disdabled so I was not able to get additional information. Can someon explain why my UPLOADS click along at 15 to 20 kbs and yet my downloads are 'waiting' .... seemingly forever.???

I have tested my boradband connection and adjusted my settings appropriately but cannot figure out what a "LOW ID" is and how to fix it.

THanks ohmy.gif
SirXerxes
The new URL to the FAQ (which is now called Docu) is this: http://www.emule-project.net/home/perl/help.cgi?l=1

And if you read there, you should also find out, why you have a "waiting-problem".
mark_hill
Despite all help files & forums, checking all settings again and again (including UL and DL capacity) and installing several versions of emule -- I still have the same problem (wating forever).

I use DSL and always get a high ID. Uploads start immediately @ full speed. Downloads take hours to start at all (often at ridiculous dl-rates of about 0,1kb/s).

For test purposes wink.gif I tried to download a popular movie with 100+ sources but the problem persists. It just shows 123/124 (0) forever..

In my firewall TCP ports 4661 / 4662 / 4711 are open for emule. But as I get a high ID the firewall has probably nothing to do with it...

Help is very much appreciated!

Greetings, Mark

birk
When will people learn!!!! This is not a problem this is how emule works and this is even written in the "why is my downloads so slow" sticky! MEMORIZE... bash.gif
SirXerxes
QUOTE
For test purposes wink.gif I tried to download a popular movie with 100+ sources but the problem persists. It just shows 123/124 (0) forever..

Don't know how long you waited, but wait longer. tongue.gif

And to verify, that something is happening, expand the download with doubleclicking and watch the priority tab, it shows your queue ranking (the lower the value, the better it is), when it's reach 1, you are next.
NRJ
or pedal a little faster laugh.gif you have to make upload sweat.
Yemble
If all else fails, try changing all of your port numbers to something other than default. Don't forget to let the new ports through your firewall. thumbup.gif

Read this: http://forum.emule-project.net/index.php?showtopic=38953 to see why.
Dark Reality
QUOTE (SirXerxes @ Jan 28 2004, 04:16 PM)
QUOTE
For test purposes wink.gif I tried to download a popular movie with 100+ sources but the problem persists. It just shows 123/124 (0) forever..

Don't know how long you waited, but wait longer. tongue.gif

And to verify, that something is happening, expand the download with doubleclicking and watch the priority tab, it shows your queue ranking (the lower the value, the better it is), when it's reach 1, you are next.

Thank you for the info; as I am learning eMule, I did not know this.

For most of my downloads, 99% of the files say "No needed parts." Other messages, of which there are 1 or 2, say "Queue Full" or "Asked for Another File."

Does this mean that nobody on eMule/the server I am on, has the complete file? As I understand this, eMule is telling me that nobody has the complete file, and we're all sharing the parts that are available.
SirXerxes
At least the 99% of them don't have the complete file. The "queue full" have them, but in addition to the time you must wait until you reach QR1, you must also wait until you get in the queue (if it's a non-MLdonkey-user). MLdonkey's have (AFAIK) no queue, to there is everytime "queue full". For the "askes for another file (A4AF)"-users, since you can't queue for more than 1 file per user, 1 file shows the user as source, all other as A4AF. So when these other file finish, the user will be a valid source for this download. If you can't wait, you can swap this source from the other download to this (activate "show more controls" from extended settings, then you have a new option in the contextmenu (rightclicking a download), which will swap the source to this download, look for something like "swap A4AF" (don't know how it's called)).
Dark Reality
Yemble: You mean My Webpage?

I just did that to make your text a link. I am sorry if you intended to not make it a link, but I wanted something to click on. tongue.gif
moefan
I too am having problems with downloads. I have a high ID and can download from emule on my laptop at good rates everywhere but home, even on slower connections. Weird that downloads are so horrible at home when I have a 1.5mbs download compared to 768 kbps at work, where emule will actually download at a decent rate.
rUfUnKy
I'm still having a low ID problem. I followed the direction here http://www.emule-project.net/home/perl/hel...ic&topic_id=129 (the second ones) with no luck and I'm using the same router. I even took it one step further and set my TCP port to 4662- 4711. When i'm hooked directly to the internet (minus the router) I get a high ID every time! Any suggetions?? unsure.gif
Andu
QUOTE (mark_hill @ Jan 28 2004, 11:22 PM)
In my firewall TCP ports 4661 / 4662 / 4711 are open for emule. But as I get a high ID the firewall has probably nothing to do with it...

You forgot to forward 4672 for UDP and 4711 is only needed if you are using or planing to use the web interface.

That will not have any big influence on your dls but maybe you may get sources a little bit faster.
rUfUnKy
Thanks for the reply Andu, I did forward UPD ports 4672 I didn't mention in the above post because I was trying to make it as brief as possable and figured I'd just let people know I followed the forums guide for Linksys BEFSR41. (in the link posted above) . any other suggetions??
rUfUnKy
OK now one PC (out of my two PC network) is able to achieve a hi ID but the other can't. Could it have something to do with the way my network is setup? In the network wizard I chose "This computer connects to the Internet through another computer on my network or through a residential gateway" for both.

EDIT: OK so I dont have to make another post wink.gif ... I discovered under the DHCP tab / DHCP client table / There is only one Client Hostname. That is the one that I am getting the high ID with. Shouldn't both PC's be listed there?
toidy
After running the network setup wizard in Windows XP Pro, an extra service called Deterministic Network Enhancer was added.
DELETE THIS SERVICE!
It caused me to have lowID. By deleting this service, effectively restoring my computer to the state before running the wizard, i recovered my HighID.
Rajab
Good morning, anyones here understand portuguese language?
E-Noob
Guys, I have scoured the net, read 1000 reviews, sat here many a night playing with upload/download speeds, and the best download speeds I have achieved are when I simply use the wizard to setup my connection and just leave my pc alone for 1 week...

OK, one tweak, on a 576/288 DSL USB modem, I've found setting UL to 19 k/b limit works my connection nice with all the overheads...

Forget USS, forget listening to all those "I have 10,000 connections set" losers, the wizard is the way forward, and a bit of patience...
isthisheavan
I just want to say thank you for this particular sticky post. I had trouble downloading files. I was always waiting and if they did start it would only be 0.01 kbps. LOL UNTIL I read this sticky, after I read it I tested my connection and entered the results into the connection wizard and WALLAH! I had a decent consistent connection. Which I may say isnt the greatest but considering the information in this sticky I now know why I wont get the file in 1 day. LOL These are huge files being shared and alot of people are online trying to get same file I understand all that now and my experience with emule is now a more pleasurable one. And my download speed is at 7.7 kB/s to 11.0 kB/s. And it varies from time to time but hey its better than 0.01kB/s! LOL Thank you so much for this sticky topic! thumbup.gif
hermione_wealsey34
It's not so much for me the amont of speed for me just how long it takes to start the downloading process! But I have fond that you have to choose an item that not many people are also downloading. That has helped me the most.
aquasesh
QUOTE
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.


Im not sure if i understand right...my mate is uploading with 8-11kb/s but downloading with up to 60kb/s at the same time...so how can ul be dl?
and if this is true than im on the bad end of the line, because i have 256/64 DSL and could never get nice download rates...
crying.gif
superblaat
You're thinking on the wrong scale here.

In any network the TOTAL download speed can never exceed the TOTAL upload speed. Simply because for every donwloaded mb there has to be somebody uploading that mb to you.

The reason for your friend's high download speed is propbably that he had a lot of credit built up (by uploading a lot, before he started the download), this causes him to take percedence over other users in queue's, which makes for a faster download.
nihil
Is it my impression (or network) or recently things began to get slower than usual? I usually connect to Razorback, because the large amount of files... and I spent clearly more than 90% of recent time only uploading...
skull88
[SIZE=7]System Specs
Windows XP Home SP1
Pentium 4 2.8ghz
1GB Ram
Radeon 9800 Graphics card(if it matters)
DSL 850kbits (dl) and 100kbits(ul) 106kb/16kb
eMule v0.42b( I have a High ID)
Use port 4662

sad.gif Guys i have done everything in this forum and in the eMule guides and my downloads are still really bad(less then 10k) on my DSL.On other filesharing clients my downloads are usually 30-100k.My uploads are at maximum efficiency. If anyone has any ideas please i beg you help me. crying.gif
Foolmonkey
Yes mate you are right,
There have been a number of threads relating to a recent "slump" in download speed.
The techies on this forum are ignoring it .... as they probably think its a newbie issue, and they are above such topics.
There is a definate correlation between recent download performance and the introduction of the new client.

see this thread....
http://forum.emule-project.net/index.php?showtopic=41512
blacktddup
Once I thought I'd tweak my setting to decrease the load that e-mule imposed on my pc. I set Max.Connection to 100. I forgot about it and for days I couldn't download more than 40-50k/s (I've got 10Mbps so that's really slow).

Then one day I set max.connections to 5000 (just for a try). In les than 5' I was downloading at 180K/s. And my upload was 10k/s.

It helps of course that I'm online all the time so I rise in people's queues. And I've uploaded about 200GB in total. So I've got a good upload history. But my ratio is not good (DL/UL: 1/1.2).

So my point is that it's not the client's fault or anything wrong with the available bandwidth (like kazaa being so weak anymore). I think it's a matter of setting and patience.

my 2 cents.
snakefoot
QUOTE
Uses port 4662

sad.gif Guys i have done everything in this forum

You forgot to read the thread provided in the first post about changing your port to something different than 4662 as many ISP uses bandwidth limiter on this port, giving sloppy upload and download.
Rikko789
I think your firewall block emule tcp frames.
What firewall do you uses?
look in the blocked packet view ... what can u see?

try agnitum firewall with all rights to emule ... it should work my friend ... :-)
punkymt1
Hello, I have been using emule for about 1 year with a cable connection. Now I switched to a 128/64 adsl connection. I have High ID and no problems regarding connection to servers. My only problem is that my dowload speed never exceeds 5kb/s when it is supposed to reach 12kb/s. furious.gif Can anybody tell me how can I solve this? My hard limit and max connections are 300 & 250 respectively. Max connections / 5 secs is 20.

Respond quickly please. 10x a lot.
tethgirl
edited
chucky909
What Happened?
I've upgraded to v.42d from .3something, and now I can't download at all. (Naturally, I can't find the old version available anywhere)

I've got high ID, and yes, I've left my emule going for over a day.
My upload:download is 647:1 (!!!!!!!)

I've uploaded 168 MB, downloaded 251 KB

Sources for a lot of the files I'm going after are up at ~350+ sources available (though I admin many read this "too many connections" error.

I wouldn't write if I didn't believe this was a version problem, as up until a week ago when I "upgraded", downloads were flying.

Can anyone help?
MonkeyBite
That's pretty bad. I've noticed lately for the past few sessions (maybe 6 or 7 at 2 days a piece) I've been getting something in the neighborhood of 8:1. Right now I'm uploading at 90 and downloading at 0. Sessional average right now is 3.14 GB to 380 MB. That's just not right.
msbear
I had this same problem last week!!! My download is 0 or 5k max!!!! I have high ID and no firewall. My connection is OK! what happen with our emule?????? sad.gif
PiVale
i've already changed my connection settings by going to and using the advices of broadband reports...

but i still have a problem...

i don't seem to get the full chunks of info...i can only download 300/400k of info and then the connection falls...as you know, i go to the bottom of the queue again..this happens even if the people i'm downloading from has the full file...the server connection keeps falling too..

all my other programs seem to work just fine!

can anyone help me...

i'm using emule for quite a while (my currently upload is about 80GB at a 1.61:1 ratio) and this is only happening lately...is there any problem with the latest version?

thanx!
simon999
I have the same problem I have recently gotten a ADSL connection and upgraded e-mule to 0.42d ports are open in the modem and open in my firewall but I cant download anything. I am uploading at my max. When I change back to my dial up I can download fine is this a problem with a fast internet connection?

Other clients work fine with my ADSL connection but I would prefer to use e-mule as it have a better selection of files. Pls Help
msbear
One more week....... i can't download anything on emule!! overnet works fine, bittorrent too...... i have cable connection.

someone can explain whats happen with the ed2k net? mad.gif
Netw
Hi!!! I' m an new user in this forum (it is very interesting).thumbup.gif
I use emule but i m not an expert.
I read in this forum:

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


I'm uploading continuously but i downloaded slightly. I uploaded about 20 Mb but i downloaded 10 Mb only. Is it possible?? I'm a hight id, and my download has 330 fonts.

P.s. My ADSL connection is sometimes unstable then i must reconnect to the network.
Disconnecting i will lost all my score??? And my QR???
10564
I have the same problem since I installed v.42d; Downloadratio about 100:1. Hopefulle there will be a new version soon.

Greetings
10564
GeVeZe
QUOTE (Andu @ Jul 22 2003, 01:57 AM)
I think there is an important information missing.

Info:

Don't upload at more than ~80% of your line capacity otherwise you will saturate the line and downloaded packages cannot be acknowledged.

how can i gave high priority to download ancklowadgement packages...???

when uploading 50percent of capacity downloading slows 50 percent...
biggrin.gif

there is a program named Cfos Trafic Shapeing
but i failed...

Realy hard problem...
GaMe oVeR
No you do not have to use any program.
For example if you have 256/128 ADSL put the upload limit to 12/13.

128Kb/8 = 16KB Max upload speed
16 * 80% = ~13KB

GaMe oVeR
Bloody Angry
QUOTE (GeVeZe @ Apr 4 2004, 11:13 PM)
how can i gave high priority to download ancklowadgement packages...???

when uploading 50percent of capacity downloading slows 50 percent...
biggrin.gif

there is a program named Cfos Trafic Shapeing
but i failed...

Realy hard problem...

You have to buy a very expensive Router/Firewall, or you can convert a non expensive computer to an advanced Router/Firewall with FreeBSD/OpenBSD.

Enjoy! thumbup.gif

QUOTE
prioritizing packets in FreeBSD to improve asymmetric (cable/ADSL/xDSL) performance during upload

My ISP provides me a connection of 3 MegaBits downstream (384 KB/sec download) and 320 KiloBits upstream (40 KB/sec upload).

The speeds work as mentioned above when it's either/or, hence it's an asymmetric line. A 320 Kbit/sec upload pipe is pretty easy to saturate (by sending a large email, FTP, etc.) and this is where a problem occurs.

The problem, simply put, is that as the upload speed increases, the download speed decreases. This means that if someone is browsing a page on my web server, or I recently sent a large email, the download speed approaches zero, making my overall internet experience dismal.

Another problem with such a small upstream cap (albeit unrelated to the assymmetric problem described above) is that not all outgoing traffic is made the same. If someone is browsing my personal web site while I am working on a remote server via ssh (both outgoing packets), my ssh session should be given a higher priority than the web content being served up, since remote-administration is very real-time and "lag" between pressing a key and having it reach a remote server is unacceptable.

The good news is that the first box connected to my cable modem is my trusty FreeBSD do-everything box (gateway, firewall, NAT, DHCP, web server, web proxy, DNS proxy, mail server, and much more.). I managed (following some hints and concepts from Daniel Hartmeier) to lessen the negative effect of both problems mentioned above.

1: For asymmetric balance:

To make an analogy, a normal house/apartment mailbox is a good example. You can not control tha fact that advertisements for Dominos' pizza will be intermingled with your important court appearance order. A mailbox is either saturated, and all mail will then be rejected, or not saturated so new mail will be received. The priority of new mail is irrelevant for delivery. Once you collected your mail from the inbox though and have it on the dinner table, you can then sort it out and pay attention to the important ones first, then looking over the non-important ones later or tossing them out.

Back to computers and IP, the same theory stands. If other computers sent you packets, they will travel down your incoming pipe in the order they were sent. The computer's IP stack receives them (typically from the ethernet level) in the order they made it in. At that point an intelligent IP stack might have the ability to prioritize the packets so that certain ones get processed before the others, but the damage has already been done, since it's the pipe's saturation that really counts.

Depressing news ? Yes. That means that you can not prioritize your inbound pipe's traffic so that important incoming traffic, such as your stock updates or a video stream, get a bigger priority/chunk of the pipe compared to less-important data, such as a background FTP transfer.

All is not lost though. Unlike in the real-world analogy of the mailbox, IP, and specifically TCP, are much more complex. Especially helpful in our case is that every TCP packet received is acknowledged with an ACK packet. This will be our key to trick remote hosts/routers we're communicating with to do some prioritizing of incoming data. More on that later on.

2: For outgoing balance:

Unlike incoming packets, a computer has full control over it's outgoing packets. In the same sense that you prioritize paying your mortgage bills as soon as they come, while the mailing of your mother-in-law's present can wait a while, a computer can be told to send certain types of packets first before it sends any others.

Putting it all together:

To put it all together and to summarize the solution to the above 2 problems, we need to:

  1. Prioritize our outgoing TCP ACK packets so that remote hosts know where we stand incoming-pipe wise, this takes care of problem 1
  2. Prioritize our outgoing packets of the types we want (such as ssh) over all others, taking care of problem 2

This is done with FreeBSD using ipfw and dummynet. Without further ado, here is the snippet of my firewall script that does the job:

#
# TRAFFIC SHAPING:
#

#
# Make packets exiting dummynet not continue down the chain
# If this is not enabled, then packets leaving an early
# queue might enter a later queue if the conditions for
# the later queue are met, which would be completely
# devastating to all the prioritizing we're doing
#
${fwcmd} enable one_pass

#
# Define our upload pipe:
#
${fwcmd} pipe 1 config bw 40KByte/s

#
# Define a high-priority queue
#
${fwcmd} queue 1 config pipe 1 weight 7

#
# Define a medium-high-priority queue
#
${fwcmd} queue 2 config pipe 1 weight 5

#
# Define a low-priority queue
#
${fwcmd} queue 3 config pipe 1 weight 1

#
# Assign outgoing empty/small ACK packets to the high-priority queue:
#
${fwcmd} add queue 1 tcp from any to any out via ${oif} tcpflags ack iplen 0-80

#
# Assign outgoing UDP (DNS/gaming) and SSH traffic to the medium-high-priority queue:
#
${fwcmd} add queue 2 tcp from any to any 22 out via ${oif}
${fwcmd} add queue 2 udp from any to any out via ${oif}

#
# Assign all other outgoing traffic to the low-priority queue:
#
${fwcmd} add queue 3 all from any to any out via ${oif}

The code above should be pretty-much self-explanatory. If it is not, you should not be touching the FreeBSD ipfw firewall.

The first half sets up the appropriate upload pipe and priority queues (see man dummynet for details).

The second half assigns different types of outgoing traffic to one of the 3 queues.

Note 1: You will need dummynet installed in your kernel before you can implement this. If you don't know how to do so, refer to the FreeBSD Handbook for instructions.

Note 2: Make sure you read man ipfw and especially the part about the one-pass sysctl variable net.inet.ip.fw.one_pass . Not doing so might inadvertently open up your firewall when you implement the above.

Note 3: The above prioritizes empty and small TCP ACK packets (which might contain a payload) into the high-priority queue. If this is not desirable and you want to prioritize empty ACK packets only (no payload), switch the iplen 0-80 in the example with iplen 52. This corresponds to an empty TCP ACK packet (20 bytes IP header + 32 bytes TCP header + 0 bytes payload).
space cowboy
Hi, I posted something about this problem seem to have with the new eMule versions (the one people in the posts above are talking about), in this ame thread in the eMule forum, but I don't know why, it "misteryously" disappeared. Could be just me, I'm new (to the forums, not eMule), but I just can't find it (I wanted to see if someone replied), so I'll say it again...

I've been having this same problem with the recent versions of the program. I didn't change any setting, but the performance is terrible. I can't upload to anyone, and in the rare cases I can, the speed is not any bigger than 1kb/s. The same goes download. I left eMule running for more than a day, and it only dled 6MB and uled 36MB (it usually would dl at least 100MB)...

This is not a "newbie issue", cause I've been using eMule for almost a year, I've already uled 80GB and dled 34GB. I have read all help part, and a lot of FAQs out there. I recently upgraded from Win98 to XP, but the problem was alredy happening before this, and it still is...

I hope someone notices this now, cause I don't want to have to type all this again, and I want to finish watching my anime...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.