首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >段索引在bittorrent文件传输中的意义?

段索引在bittorrent文件传输中的意义?
EN

Stack Overflow用户
提问于 2014-12-01 05:55:39
回答 1查看 883关注 0票数 1

我正在研究使用bittorrent协议进行文件传输,并且想知道与每个片段相关联的piece index在片段的重新排列中是否有任何意义。这个piece index是怎么分配的?另外,除了使用.torrent文件中的哈希值来重新排列碎片之外,它们还有其他方式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-06 04:16:55

相关元信息

洪流的元数据包括足够的信息来重新组装和验证洪流描述的数据,而不管数据到达的顺序如何。完整的定义可以找到这里,对于您的问题有一些重要的部分。

info映射到字典,并在下面描述键。

pieces映射到长度为20的字符串,将其细分为长度为20的字符串,每个字符串都是对应索引处的片段的SHA1散列。

就其他密钥而言,多文件情况被视为只有一个文件,方法是按照文件列表中文件的顺序将这些文件连接起来。

最后

片段长度映射到文件被分割成的每个片段中的字节数。为了传输的目的,文件被分割成固定大小的片段,除了可能被截断的最后一个部分之外,这些碎片都是相同长度的。片长几乎总是2次方,最常见的是2 18 = 256 K(在3.2版之前的BitTorrent使用2 20 =1M作为缺省值)。

结果

合在一起。有一种假设,即.torrent描述的底层数据是按逐段顺序排列的NumPieces。所有这些片段的长度都完全相同,可能是最后一个片段,因此piece_index X piece_size将以字节为单位给出偏移量,从一开始到该片段适合于数据的位置。多个文件被视为所有文件都连接在一起。每个片段哈希位于piece_index X 20字节处,从pieces开始。现在,由于 pieces 位于信息部分,如果通过更改它们的索引来重新排列这些片段,这将更改info部分的SHA1哈希,从而改变infoHash,这将改变洪流。这是通过设计来验证数据的真实性。实际上,不可能按错误的顺序伪造或不小心地重新组装件,因为infoHash是 forge 是否正确的最后检查,forge是数据是否正确的检查。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27222474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档