A download accelerator speeds up the download but prevents others from
using the bandwidth fairly but still
gets the job done for you. It is very useful just like Bittorrent or
other p2p technology.
We will first see how a download accelerator like axel or lftp with
certain switches work. Then we will see
how p2p works.
A download accelerator uses multiple TCP connections for downloading
multiple file offsets and then joins them
locally using file I/O seek calls.
Obviously this involves clever programming.
Multiple TCP connections can get you more bandwidth only in the local
LAN environment. But it cannot
steal other's bandwidth on the Internet.
So there are limits to what a download accelerator can do.
This is the simple concept. Certain FTP and HTTP servers do not
support multiple simultaneous connections from
the same IP, so this does not always work but in my experience I have
seen that it mostly works just fine.
Using multiple TCP connections in this situation is good; but we
cannot use it for improving performance all the time.
ssh uses just one TCP connection whilst FTP and others use many. ssh
is far more efficient and much more modern
and thorough. By avoiding the overhead involved in setting up and
tearing down a connection ssh saves on a lot
of overhead.
Whereas FTP sets up a separate connection for ls, get, put
commands(list files, download, upload) and this too it
does in two directions. In one case it opens a new connection from
client to server(passive mode), in another
server opens a connection to the client.
Overall FTP is old and is a big problem since today's environment is
full of NAT and firewalls.
Still FTP is widespread with no sign of dying down.
As to Windows file sharing it is extremely bandwidth intensive and it
does not matter in a LAN environment.
It is not TCP/IP aware. It works over a VPN but will be slow.
Alright, now let us understand how p2p file sharing protocols like
bittorrent scale.
Basically a busy server dishing out 100s of simultaneous downloads get
overloaded and it cannot serve new clients.
In order to address this bittorrent downloads between each other since
once you have a file or portions of a file
you can always transfer between yourselves.
The only catch being that all are behind NAT and not servers. So you
need a method to download from a machine
behind NAT. Bittorrent addresses that using the same technique skype
uses to initiate a connection to a NATed IP.
-Girish
--
Gayatri Hitech
http://gayatri-hitech.com