我知道种子文件包含有关跟踪器和该种子的哈希码的数据
但我的问题是:
这些洪流文件还包含有关该洪流的所有数据包的哈希号?(这些种子文件有每个数据包的哈希数字集合?
以及这些信息在洪流文件中是如何构建的?
是经过编码的,这是BEP3中描述的简单编码。
下面是一个简化的种子示例:
{
'announce': 'http://bt1.archive.org:6969/announce',
'created by': 'ia_make_torrent',
'creation date': 1373568576,
'info': {
'files': [
{ 'length': 12355245, 'path': [ 'Commodore_Amiga_TOSEC_2012_04_10.txt' ], },
{ 'length': 33979699024, 'path': [ 'Commodore_Amiga_TOSEC_2012_04_10.zip' ], },
{ 'length': 2821, 'path': [ 'Commodore_Amiga_TOSEC_2012_04_10_meta.xml' ], },
{ 'length': 378737, 'path': [ 'amiga_1000_by_macpengin.jpg' ], },
{ 'length': 4877, 'path': [ 'amiga_1000_by_macpengin_thumb.jpg' ], },
],
'name': 'Commodore_Amiga_TOSEC_2012_04_10',
'piece length': 4194304,
'pieces': '9834f2b6e0b8d9071f2d2db...776f9c910b6622f234872e8'
},
'locale': 'en',
'title': 'Commodore_Amiga_TOSEC_2012_04_10',
}
件字段缩短了。它包含片段的所有 sha-1 哈希,串联(它是二进制形式,但为了便于打印而在此处表示)。一块不是直接的数据包。
通常,数据包是指 IP 数据包(大约 1400 字节)。在IP之上,你有TCP或uTP作为传输协议。最重要的是,您拥有BitTorrent协议,该协议仅交换块(有时称为块)。一个块是 16 kiB。一块通常是 16 的偶数倍,更可能是 2 的偶数幂。因此,您首先下载一些块,将它们连接起来形成一个块,然后验证该块的 SHA-1 哈希。