我在區域網路上有兩台電腦。第一台電腦的網路連線速度為 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 上跳過的區塊的大小時停止此操作。
wget -O - $URL | dd bs=10000 count=5
當 dd 破壞管道時,Wget 確實會停止,但產生的檔案大小不正確。所以也許只是讓它運行,手動停止它並剪切你需要的部分(例如使用 dd )
最後,您可以將電腦 1 上檔案的非零部分(例如使用 dd)複製到電腦 2 上,並將這些片段組合在一起。
這對我來說似乎很混亂,我寧願找到或編寫一個分散式 HTTP 用戶端:-)
答案2
此解決方案假設兩台電腦在 LAN 上連網:
- 對於初學者來說,運行代理人在其中一台電腦上,任何 HTTP 代理程式都可以。
- 得到網路傳輸a
Download Manager
支援Multiple Proxies mode
並在另一台電腦上安裝相同的程式。「多代理模式」可讓您為每個工作執行緒指派不同的代理,以打破某些網站限制,例如每個 IP 只能有一個連線。
- 因此,對於您在
Net Transport
電腦上下載的每個文件,請在第一台電腦上新增代理作為單獨的下載執行緒。 - 下載現在將同時利用兩台電腦網路連線的頻寬。
編輯:
正如您在螢幕截圖的右下窗格「日誌」中看到的那樣,each
下載可以完成concurrently in multiple threads
(與下載伺服器的單獨連接)。該工具允許您指定每個線程是否將使用代理。因此,您可以設定一些執行緒來使用代理電腦上的頻寬。
答案3
您嘗試執行的操作的術語稱為“綁定連接”。有一些公司(例如 Mushroom Networks)創建了具有多個 WAN 連接埠的路由器,可以自動對連接進行負載平衡。一種更便宜的選擇是將兩個連接插入一台計算機,並在其上為您的網路運行您自己的代理/負載平衡軟體。