【发布时间】:2013-02-27 20:22:15
【问题描述】:
我有一个应用程序,我需要以零碎的方式远程访问大文件。我会知道起始偏移量,但是 - 从该位置开始读取文件的某些前缀后,我将建立另一个新的偏移量,并且希望从这个新位置读取下一个 - 至关重要的是 - 遭受了最小可能的延迟。
我考虑过使用 HTTP - 发布一个详细说明开始传输的偏移量的请求 - 但我不想指定传输大小(大小太小会导致吞吐量低;大小太大会导致不可接受的延迟。)或断开打开的连接 - 因为这会在重新连接时产生延迟损失。
我曾考虑过使用 TCP/UDP 和套接字“自己动手” - 但感觉好像这种方法涉及重新发明轮子。 UDP 可能承诺最低延迟,但我无法用可靠性换取更低延迟。
我非常有兴趣指出任何关于协议的标准(提案、RFC 等)来处理这种数据访问模式。也许已经在云存储的背景下开发了一种很好的方法?
【问题讨论】:
-
在网上搜索“udp 可靠数据传输”,你会发现一些有趣的点比如UDT。
-
@Ron Klein:我知道有多种方法可以使 UDP 变得可靠——而且在某些情况下,它的性能会优于 TCP。然而,我的预感是,基于 TCP 而不是 UDP 的协议将最适合我的需求......因为,虽然我有时会跳转到文件中的新位置,但这样做之后,我将从该偏移量进行流式传输。 UDT 之类的似乎并不理想,因为我真的想采用更高级别的协议 - 支持流式传输和重新定位的协议......而不是其他。
标签: web-services rest web-applications streaming protocols