aria2

aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, BitTorrent, and Metalink. It has a powerful segmented downloading ability, downloading a file from multiple sources and multiple protocols and utilizing your download bandwidth to the maximum. It supports downloading a file from HTTP(S)/FTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP is uploaded to the BitTorrent swarm. Using Metalink's chunk checksums, aria2 automatically validates chunks of data
while downloading a file like BitTorrent.

Recent releases

Release Notes: This release adds a new RPC authorization mechanism using the --rpc-secret option.
The existing --rpc-user and --rpc-passwd options are now deprecated,
and all applications
using the RPC API are strongly encouraged to migrate to the new mechanism.
See the RPC INTERFACE section in the aria2 manual page for the details.
A new RPC method,
aria2.saveSession,
was added,
which tells the aria2 server to save session
file immediately.
There are several enhancements and bugfixes.

Release Notes: This release fixes the bug which may cause assertion failure after
multi-file downloads (e.g., multi-file metalink or torrent) are
performed several times due to the bad handling of the --bt-max-open-files
option.

Release Notes: This release fixes the wrong handling of return value of fork(),
which leads to high CPU usage.
The progress readout has some color output. The Mingw32 build now
receives colorized outputand can read Unicode commandline arguments.
The build script for OS X has been rewritten.
--bt-max-open-files now limits the number of opened file globally for multi-file downloads
instead of on a per-download basis.

Release Notes: This release fixes the percent-encoding bug which affects filename encodings.
It adds PKCS12 support in certificate importation.
It also adds an experimental internal implementation of the message digest functions
ARC4 cipher and
bignum.
This means that no external libraries are required to build BitTorrent support,
but this feature is still marked as experimental.
This release also fixes the Android build with NDK r9.

Recent comments

Awesome segmented downloading abilities, could be improved if you could implement the ability to operate on multiple interfaces. Even if this was tied to a particular protocol, it would be awesome to be able to balance networking load on the software level rather than requiring expensive equipment or complicated server set ups.

The description and my comment both clearly talk about segmented downloads. Segmented downloads use multiple (2, 4, sometimes a hundred) requests tot he same server.

Using them of course reduces bandwidth for everybody due to the excessive overhead due to multiple tcp connections and requests, and there is no load balancing, the only effect is that it results more or less in a denial-of-service attack to some servers that cnanot cope with hundreds of requests.

> This type of downloading is a beneficial
> evolution of these old protocols.

Segmented downloads (as opposed to what you are tlaking about) is what aria2 claims to implement, and those are neither beneficial nor anything new. Its anti-social, as I said before. Supporting sofwtare thta supports it is anti-social, too.

anti-social software
when using this software, keep in mind that segmented downloads increase the load on the server and the network and actually increases bandwith at the cost of others. in the end, when most people use this horrible hack, everybody will have slower download rates as a result.