[Ilugc] How does download accelerator work?

  • From: girishvenkatachalam@xxxxxxxxx (Girish Venkatachalam)
  • Date: Fri, 1 Jun 2012 08:59:07 +0530

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

Other related posts: