ten9
January 6th, 2004, 11:05 AM
I've written a paper about bandwidth issues in P2P networks. Some findings are interesting and easily overlooked. I will present some of them here, and will subsequently discuss them in relation to the various P2P networks.
I'm interested in your opinions on the issue. I'm not here to start a flame war over which network or P2P-client is better. They each have their pros and cons. It depends very much on what you call 'better'.
Better could for instance mean any of the following things:
- Better average download speed
- Better availability of rare files
- Better able to guarantee that every user is treated equally
I'm going to claim that for a program like Shareaza (and the networks it is on), download speeds for an individual user are not going to rise significantly. And specifically the average download speeds are not going to rise above the average upload speeds of all clients.
Sure, average download speeds can get a little better by reducing network overhead or introducing a credit system, but this will not give any large gains.
In this discussion I'm going to assume people want to download large files (movies for instance). For small files things are a little different.
Keep in mind that there is a difference between average download speed, and standard deviation of download speeds. A high standard deviation of download speeds can cause some individual downloaders to have high speeds, and others to have low speeds.
On a P2P network one client cannot, ON AVERAGE, get more download bandwidth for one file than the average upload bandwidth from all supplying other clients. This will be the case because for most clients that share large files, all of their upload bandwidth will be used to supply files to others. People also usually are downloading while they are uploading. I think it is safe to say that on average people at least download as much as they upload. If everybody is on average downloading at least as much as they upload, you will never get on average a larger download speed for a file than the average upload speed.
But, one might say, those are averages, what does that mean for a particular individual downloader?
That is a good question and the answer is that it varies from network to network. How likely is it that you (as a downloading client) will be on or near this average? Or in other words what is the standard deviation of download speeds from that average? It turns out that the more 'fair' a network is, the higher the chances are to reach a download speed that is equal to the average upload speed of all other clients. Higher download speeds (or better: a higher Standard deviation in download speeds) will be possible only if some clients have advantages compared to others (for instance cheats).
If leeching is not punished (through a credit system without cheats for instance), the average will drop.
How do the various networks fit into this?
Kazaa/Fasttrack:
Well Kazaa has a credit system, but it is open for cheats. Kazaa Lite can give you a godlike status on the network, which allows you to jump queues and an 'auto search more'-button to exploit it to the full. (The auto-search more- button is not available to all)
This means some can get good download speeds (even above the average upload speeds of all others), at the expense of others.
WinMX:
WinMX is working on a 4.0 version of the software. The main goal is to reduce the queuing problem the network has. Well, I'm sure it is possible to get the average download speeds a little higher, by reducing some of the overhead. But generally, I'm afraid, the shorter queues will come at the expense of lower download speeds.
Bittorrent:
Bittorrent is a good attempt to maximize the average download speed to the full. It is very efficient.
If you want to read more about the workings of the bittorrent network and scaling issues, read this paper:
http://bitconjurer.org/BitTorrent/bittorrentecon.pdf
The only way to get higher download speeds than the average upload speed from all clients here is, if people leave the torrent open, when it has finished downloading, provided that they are not uploading other things at the same time. By using the bittorrent implementation present in Shareaza, this rule is usually broken, because people are usually also connected to the Gnutella 2 network (and sometimes eDonkey too). So if everybody would use Bittorrent, instead of Shareaza, average download speeds would be somewhat better. I have to add that the torrent implementation of Shareaza takes away most of the upload bandwidth from other networks it is connected to, so possibly the difference will not be that large.
Gnutella 2:
Gnutella 2 is a network without any cheats (as far as I know), without a credit system and with the ability to search the whole network. The average download speed will be lower than it could be, because of the lack of any credit system to punish leechers. Standard deviation of download speeds will be relatively low, because there aren't any cheats. It can be considered a 'fair' and well-balanced network, contrary to Fasttrack/Kazaa.
The Gnutella2 network is growing rapidly but the download speed will basically remain the same. There will always roughly be as much sources for files as you will get downloaders. Shareaza's ability to swarm several networks is good for finding rare files, but will not help you in getting large files any faster.
Conclusion:
As long as the upload speeds of clients are way below the download speeds on average, P2P will not allow us to benefit from the download speeds we get from our Internet Service Providers.
As long as they will give us download-upload ratios of 4:1 (like in 1024 Kb - 256Kb) we will generally not get average download speeds higher than 256Kb.
For that to change, ISP's need to give more balanced download-upload ratios. But surely ISP's do not want that, because now they can benefit from selling contracts for download speeds that are generally not reached.
Downloading small files will generally be possible with relatively high download speeds. This is because there are always people that have small files (like mp3's) available, and do not have large files available, so that their upload bandwith is not used for other things all the time. Having small- and medium filesize queues helps to keep smaller files available when clients supply both large and small files. This is why I suggest that Shareaza should generate these queues by default when shareaza is installed.
Regards, Ten
ten9@yahoo.com
I'm interested in your opinions on the issue. I'm not here to start a flame war over which network or P2P-client is better. They each have their pros and cons. It depends very much on what you call 'better'.
Better could for instance mean any of the following things:
- Better average download speed
- Better availability of rare files
- Better able to guarantee that every user is treated equally
I'm going to claim that for a program like Shareaza (and the networks it is on), download speeds for an individual user are not going to rise significantly. And specifically the average download speeds are not going to rise above the average upload speeds of all clients.
Sure, average download speeds can get a little better by reducing network overhead or introducing a credit system, but this will not give any large gains.
In this discussion I'm going to assume people want to download large files (movies for instance). For small files things are a little different.
Keep in mind that there is a difference between average download speed, and standard deviation of download speeds. A high standard deviation of download speeds can cause some individual downloaders to have high speeds, and others to have low speeds.
On a P2P network one client cannot, ON AVERAGE, get more download bandwidth for one file than the average upload bandwidth from all supplying other clients. This will be the case because for most clients that share large files, all of their upload bandwidth will be used to supply files to others. People also usually are downloading while they are uploading. I think it is safe to say that on average people at least download as much as they upload. If everybody is on average downloading at least as much as they upload, you will never get on average a larger download speed for a file than the average upload speed.
But, one might say, those are averages, what does that mean for a particular individual downloader?
That is a good question and the answer is that it varies from network to network. How likely is it that you (as a downloading client) will be on or near this average? Or in other words what is the standard deviation of download speeds from that average? It turns out that the more 'fair' a network is, the higher the chances are to reach a download speed that is equal to the average upload speed of all other clients. Higher download speeds (or better: a higher Standard deviation in download speeds) will be possible only if some clients have advantages compared to others (for instance cheats).
If leeching is not punished (through a credit system without cheats for instance), the average will drop.
How do the various networks fit into this?
Kazaa/Fasttrack:
Well Kazaa has a credit system, but it is open for cheats. Kazaa Lite can give you a godlike status on the network, which allows you to jump queues and an 'auto search more'-button to exploit it to the full. (The auto-search more- button is not available to all)
This means some can get good download speeds (even above the average upload speeds of all others), at the expense of others.
WinMX:
WinMX is working on a 4.0 version of the software. The main goal is to reduce the queuing problem the network has. Well, I'm sure it is possible to get the average download speeds a little higher, by reducing some of the overhead. But generally, I'm afraid, the shorter queues will come at the expense of lower download speeds.
Bittorrent:
Bittorrent is a good attempt to maximize the average download speed to the full. It is very efficient.
If you want to read more about the workings of the bittorrent network and scaling issues, read this paper:
http://bitconjurer.org/BitTorrent/bittorrentecon.pdf
The only way to get higher download speeds than the average upload speed from all clients here is, if people leave the torrent open, when it has finished downloading, provided that they are not uploading other things at the same time. By using the bittorrent implementation present in Shareaza, this rule is usually broken, because people are usually also connected to the Gnutella 2 network (and sometimes eDonkey too). So if everybody would use Bittorrent, instead of Shareaza, average download speeds would be somewhat better. I have to add that the torrent implementation of Shareaza takes away most of the upload bandwidth from other networks it is connected to, so possibly the difference will not be that large.
Gnutella 2:
Gnutella 2 is a network without any cheats (as far as I know), without a credit system and with the ability to search the whole network. The average download speed will be lower than it could be, because of the lack of any credit system to punish leechers. Standard deviation of download speeds will be relatively low, because there aren't any cheats. It can be considered a 'fair' and well-balanced network, contrary to Fasttrack/Kazaa.
The Gnutella2 network is growing rapidly but the download speed will basically remain the same. There will always roughly be as much sources for files as you will get downloaders. Shareaza's ability to swarm several networks is good for finding rare files, but will not help you in getting large files any faster.
Conclusion:
As long as the upload speeds of clients are way below the download speeds on average, P2P will not allow us to benefit from the download speeds we get from our Internet Service Providers.
As long as they will give us download-upload ratios of 4:1 (like in 1024 Kb - 256Kb) we will generally not get average download speeds higher than 256Kb.
For that to change, ISP's need to give more balanced download-upload ratios. But surely ISP's do not want that, because now they can benefit from selling contracts for download speeds that are generally not reached.
Downloading small files will generally be possible with relatively high download speeds. This is because there are always people that have small files (like mp3's) available, and do not have large files available, so that their upload bandwith is not used for other things all the time. Having small- and medium filesize queues helps to keep smaller files available when clients supply both large and small files. This is why I suggest that Shareaza should generate these queues by default when shareaza is installed.
Regards, Ten
ten9@yahoo.com