4

I have two computers on a LAN. The first computer with a speed of 128Mbs and a second computer with Internet connection speed is 256Mbs. I tried downloading a 250MB file. If the first computer to download about 48 000 seconds long and the second computer if you think it takes about 24 000 seconds.

Is there a way that first computer downloaded a part of the file and second computer downloaded other part?

Robotnik
  • 2,645

3 Answers3

2

If you have two computers, each with it's own independent connection to the internet (i.e. two ISP connections) not one shared connection then, in theory, by using something like FTP servers that support resumption of interrupted downloads, each computer could simultaneously download half of the file.

However I don't know of any software that does this (though perhaps wget or curl can be made to perform the appropriate offset fetch)

If the bottleneck is the ftp-server (or equivalent protocol server) then having two connection won't help.


Update: The sort of thing I had in mind was

Computer 1

      dd if=/dev/zero bs=10000 count=5 > name-of-big.file
      wget -continue http://www.example.com/name-of-big.file

Computer 2 (concurrently via separate Internet connection)

      wget http://www.example.com/name-of-big.file

Stop this when it reaches the size of the chunk skipped on Computer 1. I did think you could get wget to stop by piping output to a dd statement that breaks the pipe but this turns out to not work

      wget -O - $URL | dd bs=10000 count=5

Wget does stop when dd breaks the pipe but the resulting file isn't the right size. So maybe just let it run, manually stop it and cut the part you need (e.g. using dd)

Finally you can chop the non-zero part of the file on computer 1 (e.g. using dd) copy to computer 2 and cat the pieces together.


This seems messy to me, I'd rather find or write a distributed HTTP client :-)

2

This solution assumes that the two computers are networked on a LAN:

  1. For starters run a proxy on one of the computers, any HTTP proxy would do.
  2. Get Net Transport a Download Manager that supports Multiple Proxies mode and install the same on the other computer.

    The "Multiple Proxies mode" allows you to assign every working thread a different proxy to break certain site restrictions, like only one connection per IP.

  3. So, for every file you download on the Net Transport computer, add the proxy on the first computer as a separate thread of download.
  4. The download will now utilize bandwidth from both the computers' internet connection, concurrently.

EDITED:

As you can see in the lower right pane 'Logs' of screenshot, each download can done concurrently in multiple threads (separate connections with the download server). This tool lets you specify whether or not each thread will use a proxy. So, u can set some of the threads to use the bandwidth on the proxy computer.

Net Transport

user1055604
  • 1,613
1

The term for what you're trying to do is called "Bonding Connections". There are a couple of companies, such as Mushroom Networks, that create routers with multiple WAN ports that automatically load balance the connections. A cheaper option would be to plug both connections into one machine and run your own proxy/load balancing software on it for your network.