结合两个互联网连接进行下载

结合两个互联网连接进行下载

我在局域网上有两台计算机。第一台计算机的速度为 128Mbs,第二台计算机的互联网连接速度为 256Mbs。我尝试下载一个 250MB 的文件。如果第一台计算机下载大约需要 48 000 秒,而第二台计算机下载大约需要 24 000 秒。有没有办法让第一台计算机下载文件的一部分,而第二台计算机下载另一部分?

答案1

如果您有两台计算机,每台计算机都有自己独立的互联网连接(即两个 ISP 连接)而不是一个共享连接,那么理论上,通过使用支持恢复中断下载的 FTP 服务器之类的东西,每台计算机可以同时下载一半的文件。

但是我不知道有任何软件可以做到这一点(尽管也许可以使用 wget 或 curl 来执行适当的偏移量获取)

如果瓶颈是 ftp 服务器(或等效协议服务器),那么两个连接就无济于事了。


更新:我想到的是

计算机 1

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

计算机 2(同时通过单独的互联网连接)

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

当达到计算机 1 上跳过的块的大小时停止此操作。我确实认为你可以通过将输出管道传输到中断管道的 dd 语句来让 wget 停止,但事实证明这不起作用

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

当 dd 中断管道但生成的文件大小不正确时,Wget 会停止。因此,也许只需让它运行,然后手动停止并剪切所需的部分(例如使用 dd)

最后,您可以将计算机 1 上文件的非零部分切碎(例如使用 dd)复制到计算机 2 并将各部分组合在一起。


这对我来说似乎很混乱,我宁愿找到或编写一个分布式 HTTP 客户端:-)

答案2

此解决方案假设两台计算机在 LAN 上联网:

  1. 首先运行代理人在其中一台计算机上,任何 HTTP 代理都可以。
  2. 得到网络运输Download Manager支持Multiple Proxies mode并在另一台计算机上安装相同的软件 。

    “多代理模式”允许您为每个工作线程分配不同的代理,以打破某些站点限制,例如每个 IP 只有一个连接。

  3. 因此,对于您在Net Transport计算机上下载的每个文件,请在第一台计算机上添加代理作为单独的下载线程。
  4. 下载现在将同时利用两台计算机的互联网连接的带宽。

編輯:

正如您在屏幕截图右下方的“日志”窗格中看到的,each下载已完成concurrently in multiple threads(与下载服务器分开连接)。此工具允许您指定每个线程是否使用代理。因此,您可以设置一些线程以使用代理计算机上的带宽。

网络运输

答案3

您要执行的操作的术语称为“绑定连接”。有几家公司(例如 Mushroom Networks)创建了具有多个 WAN 端口的路由器,可自动对连接进行负载平衡。更便宜的选择是将两个连接插入一台机器,并在该机器上运行您自己的网络代理/负载平衡软件。

相关内容