2009-08-12 32 views
9

我可以用來傳輸大文件的最佳協議是什麼,應該快速且可靠? 它必須支持低帶寬系統,因爲我需要在整個印度傳輸文件。文件大小可能爲100到500MB。哪種協議最適合文件傳輸

+5

您應該爲此問題提供更多的上下文。文件有多大?您是通過局域網,高帶寬廣域網,低帶寬互聯網連接傳輸文件嗎? – Amok 2009-08-12 06:17:59

+1

這個C#怎麼樣? – Oskar 2009-08-12 06:48:07

+0

並且在上下文中也是相關的:請指定低帶寬;是9600bps;數據包每秒或<1Mbps?連接的可靠性如何?連接可能會退出?多少個同伴(或者只是1對1的連接)? – Adriaan 2009-08-12 07:26:59

回答

3

即使是FTP文件傳輸的最有效的協議,這是相當難以實施。我會使用HTTP。該支持內置於大多數平臺上,對防火牆更具彈性。

+7

自己實現協議沒有意義,只需使用一些現有的庫。 – 2009-08-12 06:28:18

+0

vsftpd將是最簡單的選擇。可以通過apt-get來安裝。 – admrply 2016-06-15 22:02:56

0

HTTP可能是小文件和/或不熟練用戶的選擇。不得不配置防火牆會阻止許多用戶感冒。幾乎每個網絡都允許通過端口80進行http傳輸,無需特殊配置。

雖然你確實說過大文件。您可以編寫傳輸代碼,使其使用範圍傳輸重試中斷的下載。

有人可能已經寫了一個文件傳輸庫,可以自動處理部分傳輸和重試,但我不知道其中之一。

0

這可能與文件傳輸和.NET有一定的相關性,而不是原始文章以任何形式或形式提到.NET。

Sending Files in Chunks with MTOM Web Services and .NET 2.0 由蒂姆·麥基
如何使用MTOM小塊發送跨Web服務的大型文件(WSE 3)

只是注意,您需要安裝的Web服務增強3.0(你會在文章中找到相關鏈接)。

還有一個美好的一天先生!

-3

那麼我認爲最好使用TCP協議。它是可靠的,UDP不是。由於盡力而爲協議不「安全」,UDP速度更快。 P2P程序使用UDP,因爲它速度更快,真的不關心丟包。 FTP通常使用TCP。所以我建議通過套接字實現TCP和程序。使用像120000這樣的端口或其他東西,因爲這些是免費的。

10

Rsync非常適合這個問題。它旨在遠程發送/更新大文件。

  • 從命令行運行,因此您可以很容易地將其作爲外部進程啓動。
  • 它可以同步兩個遠程文件系統。
  • 它處理大文件大小
  • 它有一個巧妙的算法,旨在只複製文件周圍的差異
  • 它被廣泛實施並且是開源
  • 它有一個節流能力所以你可以限制多少WAN連接你用的傳輸,所以你可以調整它,以避免捱餓其他連接過程。
  • 內部使用的zlib壓縮傳送的數據塊

原始網站:http://samba.anu.edu.au/rsync/

使用ssh固定rsync的:http://www.linux.com/archive/feature/113847

詳細特徵:http://en.wikipedia.org/wiki/Rsync