Luboš Doležel
2006-01-12 20:54:33 UTC
Hi,
maybe I just missed something but I've noticed one problem.
I develop a GPLed download manager for Linux (fatrat.sf.net) and I use
libtorrent as a base library for Bittorrent support.
It is great when the torrent is well seeded. Download speed is high...it
works great.
But when there is a lot of ugly leech-only users the download speed sucks. I
understand the way the Bittorrent works but just Azureus downloads the same
torrent *much* faster.
My line's max download speed is 16 kB/s...Azureus gets over 10 kB/s in a
minute. Libtorrent never gets over 5 kB/s. The line is *not* slowed down
because of upload. It seems that Azureus has some better algorithm or
what...
Wait, I think I have found the source problem. Libtorrent tries to connect
about 50 people after it gets IPs from the tracker. After a few moments the
number of connected peers is about 20 (IP is unreachable etc.)...after 10
minutes it goes down to 10 (peer has closed connection etc.)
But it does not try to connect any more until it reannounces...why?! Azureus
connects 100 peers and tries to keep this numer high. I have not limited
libtorrent's max connections in any way.
I hopelessly tried to do torrent_handle::set_ratio(1) but no luck.
How to boost libtorrent to make it download faster (like Azureus)?
Sorry for such a long message ;-)
Thanks,
Lubos Dolezel
maybe I just missed something but I've noticed one problem.
I develop a GPLed download manager for Linux (fatrat.sf.net) and I use
libtorrent as a base library for Bittorrent support.
It is great when the torrent is well seeded. Download speed is high...it
works great.
But when there is a lot of ugly leech-only users the download speed sucks. I
understand the way the Bittorrent works but just Azureus downloads the same
torrent *much* faster.
My line's max download speed is 16 kB/s...Azureus gets over 10 kB/s in a
minute. Libtorrent never gets over 5 kB/s. The line is *not* slowed down
because of upload. It seems that Azureus has some better algorithm or
what...
Wait, I think I have found the source problem. Libtorrent tries to connect
about 50 people after it gets IPs from the tracker. After a few moments the
number of connected peers is about 20 (IP is unreachable etc.)...after 10
minutes it goes down to 10 (peer has closed connection etc.)
But it does not try to connect any more until it reannounces...why?! Azureus
connects 100 peers and tries to keep this numer high. I have not limited
libtorrent's max connections in any way.
I hopelessly tried to do torrent_handle::set_ratio(1) but no luck.
How to boost libtorrent to make it download faster (like Azureus)?
Sorry for such a long message ;-)
Thanks,
Lubos Dolezel