Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed comparison aria2c vs flash? #1

Open
kootenpv opened this issue Sep 12, 2016 · 3 comments
Open

Speed comparison aria2c vs flash? #1

kootenpv opened this issue Sep 12, 2016 · 3 comments

Comments

@kootenpv
Copy link

kootenpv commented Sep 12, 2016

Hey, I'm wondering if you're sure you need different IP addresses... could you test out your tool and see if you can get a faster download speed in comparison to this tool (uses multiple threads):

brew install aria2 # OSX
apt-get install aria2 # ubuntu

You can then run the following command to use 16 threads:

aria2c -x 16 -s 16 http://some_url/some_big_file.tar
@avamsi
Copy link
Owner

avamsi commented Sep 12, 2016

Hey @kootenpv!

I run Windows :P but I already have aria2 installed.
I used to use aria2 before Flash.

The problem with aria2 is, default max connections to a server is 16.
If you need more than that, you have to change it in the source and compile it yourself -- the process wasn't straightforward, at least at the time I was not able to do it.

I normally use 40-50 IP addresses so 16 was not enough for me, so I wrote my own downloader "Flash"
I max out on my network ethernet speed with Flash -- so it can't get any faster than that.
As downloaders are almost always network bound, Python is not a problem either.

PS. Flash uses multiple threads too. As of now, it uses 8*NUMBER_OF_IP_ADDRESSES threads.
At a given time only NUMBER_OF_IP_ADDRESSES threads are actually downloading data but 8*NUMBER_OF_IP_ADDRESSES threads are created at the beginning itself.

@kootenpv
Copy link
Author

kootenpv commented Sep 12, 2016

Cool, very nice backstory! I just read up on IP, it's a clever addition over aria2c (even though in my case multiple threads were fine compared to requiring multiple IPs). If I were you I would add some kind of "official" benchmark to your readme, that'll help convince people it is very serious :)

EDIT: And indeed, I missed that it is on Windows. It would probably be nice to make it work on all OSes. How are you creating multiple IPs?

@avamsi
Copy link
Owner

avamsi commented Sep 13, 2016

How are you creating multiple IPs?

@kootenpv, I don't understand the question.

On my college network, downloaded speed is limited per IP address but many IP addresses are unused.
So, you can just add multiple IP addresses to your network adapter and then download parallelly from all of them.

Say, the speed limit is 3 Mbps per IP addresses, and I use 30 - 40 IP addresses, I max out at ~100 Mbps.
If you are asking me how I add multiple IP addresses to network adapter, I wrote a thin Python wrapper around (Windows) netsh command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants