我可以用来传输大文件的最佳协议是什么,它应该是快速且可靠的?它必须支持低带宽系统,因为我需要在印度进行文件传输。文件大小可能为 100 到 500MB。
7 回答
Rsync 非常适合这个问题。它旨在远程发送/更新大文件。
- 从命令行运行,因此您可以很容易地将其作为外部进程启动。
- 它可以同步两个远程文件系统。
- 它处理大文件大小。
- 它有一个聪明的算法,试图只复制文件中的差异。
- 它被广泛实施并且是开源的。
- 它具有节流功能,因此您可以限制传输使用的 WAN 连接量,以便您可以对其进行调整以避免其他连接进程挨饿。
- 内部使用 zlib 压缩传输的数据块
原网站:http ://samba.anu.edu.au/rsync/
使用 ssh 保护 rsync:http ://www.linux.com/archive/feature/113847
尽管 FTP 是最有效的文件传输协议,但它很难实现。我会使用 HTTP。该支持内置在大多数平台上,并且对防火墙更具弹性。
HTTP 可能是小文件和/或不成熟用户的最佳选择。必须配置防火墙将阻止许多用户感冒。几乎每个网络都允许通过端口 80 进行 http 传输,无需特殊配置。
不过,您确实说过大文件。您可以编写传输代码,使其使用范围传输来重试中断的下载。
有人可能已经编写了一个文件传输库,可以自动处理部分传输和重试,尽管我不知道有一个。
这可能与文件传输和 .NET 有关,而不是原始帖子以任何形式或形式提到 .NET。
使用 MTOM Web 服务和 .NET 2.0 以块的形式发送文件
作者 Tim Mackey
如何使用 MTOM (WSE 3) 以小块的形式跨 Web 服务发送大文件
请注意,您需要安装Web Service Enhancements 3.0(您将在文章中找到相关链接)。
祝你有一个美好的一天,先生!
嗯,我认为最好使用 TCP 协议。它是可靠的,而 UDP 不可靠。虽然 UDP 速度更快,但作为尽力而为的协议并不“安全”。P2P 程序使用 UDP,因为它更快,而且真的不太关心包丢失。FTP 通常使用 TCP。所以我建议通过套接字实现 TCP 和编程。使用 120000 之类的端口,因为它们是免费的。