我有一个应用程序,我需要以零散的方式远程访问大文件。我将知道起始偏移量,但是 - 从该位置开始读取该文件的一些前缀后,我将建立另一个新的偏移量,并希望从这个新位置读取下一个 - 至关重要的是 - 遭受最小可能的延迟。
我考虑使用HTTP - 发布详细说明开始传输的偏移量的请求 - 但我不想指定传输大小(尺寸太小会导致吞吐量低;尺寸太大会导致无法接受的延迟。)或丢弃一个开放的连接 - 因为这会导致重新连接造成延迟损失。
我已经考虑过使用TCP / UDP和套接字“滚动自己” - 但感觉好像这种方法涉及重新发明轮子。 UDP可能会承诺最低延迟,但我无法以低延迟交换可靠性。
我非常有兴趣指出有关解决这种数据访问模式的协议的任何标准(提案,RFC等)。也许在云存储环境中已经开发出了一种很好的方法?
答案 0 :(得分:0)
我认为,您想要的是FTP协议(RFC 959:http://tools.ietf.org/html/rfc959)的变体。我认为没有任何已建立的协议标准可以确切地完成,但FTP非常接近。它使用两个连接,“控制连接”和“数据连接”。控制连接处理从客户端到服务器的命令传递并返回状态消息,并且数据连接分别用于传输数据。听起来这就是你需要设置的那种系统。
您要做的主要不同的是能够从文件中的任意偏移量中寻找和传输数据,这可以通过自定义命令轻松完成。根据您的设置,您可以获取FTP客户端和服务器的现有开源实现,只需添加自定义命令。