BitTorrent 协议是否可以指定首先需要文件的前 3% 或前 5%?如果没有,添加这样的支持会是对协议的改进吗?
更新:所以我想,如果它是协议的一部分,为什么那里的许多客户不使用它?10分钟后,10%的文件就完成了,但通常你连1%的内容都不能预览……(靠运气)
BitTorrent 协议是否可以指定首先需要文件的前 3% 或前 5%?如果没有,添加这样的支持会是对协议的改进吗?
更新:所以我想,如果它是协议的一部分,为什么那里的许多客户不使用它?10分钟后,10%的文件就完成了,但通常你连1%的内容都不能预览……(靠运气)
Azureus 可以选择首先获取文件的第一个和最后一个块。但这不是 100% 可靠的,因为您无法控制哪个对等方将开始发送数据,首先。
有关协议规范,请参见此处,特别是:
要求:
请求消息是固定长度的,用于请求一个块。有效载荷包含以下信息:
所以是的,你可以要求一个特定的块(甚至是它的一部分)。这应该可以准确地请求文件的前 3% 或 5%,而与块大小无关。
Bittorrent 协议是围绕稀缺性设计的:首先分配最稀有的块,以降低不再拥有所有块的可能性。因为那将无法获取整个文件。
BitTorrent 作为协议的目的不是针对流媒体,其目的是尽最大努力使所有感兴趣的数据始终可靠地可用。将其用于流媒体目的实际上对 BitTorrent 的目标适得其反。
如果您不明白为什么会出现这种情况,我建议您在继续之前先阅读 Tanenbaum 的 Computer Networks 。
是的,这由 torrent 协议支持,例如 ktorrent 使用它为不同的文件类型(例如 mp3、avi 甚至 pdf)提供预览块。
10分钟后,10%的文件就完成了,但通常你连1%的内容都不能预览……(靠运气)
这是因为客户端没有按顺序下载文件(所以当你有很多对等点时传输效率更高,每个点都有文件的不同部分)