1

我有一个应用程序,我需要以零碎的方式远程访问大文件。我会知道起始偏移量,但是 - 从该位置开始读取文件的某些前缀后,我将建立另一个新的偏移量,并且希望从这个新位置读取下一个 - 至关重要的是 - 已经遭受了最小的可能延迟。

我考虑过使用 HTTP - 发布一个详细说明开始传输的偏移量的请求 - 但我不想指定传输大小(大小太小会导致吞吐量低;大小太大会导致不可接受的延迟。)或断开打开的连接 - 因为这会在重新连接时产生延迟损失。

我考虑过使用 TCP/UDP 和套接字“自己动手”——但感觉好像这种方法涉及重新发明轮子。UDP 可能承诺最低延迟,但我无法用可靠性换取低延迟。

我非常有兴趣指出任何关于协议的标准(提案、RFC 等)来处理这种数据访问模式。也许已经在云存储的背景下开发了一种好的方法?

4

1 回答 1

0

我相信您想要的是 FTP 协议的变体(RFC 959:https ://www.rfc-editor.org/rfc/rfc959 )。我认为没有任何既定的协议标准可以准确地说明您想要做什么,但是 FTP 非常接近。它使用两个连接,一个“控制连接”和一个“数据连接”。控制连接处理从客户端到服务器的命令传递并返回状态消息,数据连接单独用于传输数据。听起来这是您需要设置的系统。

您想要做的不同的主要事情是能够从文件中的任意偏移量中寻找和传输数据,这可以通过自定义命令轻松完成。根据您的设置,您可能能够获取 FTP 客户端和服务器的现有开源实现,并且只需添加您的自定义命令。

于 2013-03-08T16:31:43.600 回答