我对 BitTorrent 协议中的 PIECE 大小规范有点困惑。具体来说,我正在试验的 torrent 元信息文件说每个片段应该是 65536 字节(除了最后一个片段,它是 (total_file_size - remaining bytes))。但到达的 PIECE 消息的长度是 16384 字节,片段数与元信息文件指定的相同。每个 torrent 都会发生这种情况 - 元信息文件指定的 PIECE 大小与到达的 PIECE 消息的大小不同。我是否遗漏了协议中的某些内容?
答案1
PIECE 消息用于传输一部分一个片段,通常称为一个块。大多数实现似乎使用 16K 的块大小,这解释了您观察到的行为。块大小在每个 REQEUEST 消息中设置。
有关 BitTorrent 协议这一部分的更多信息,我强烈建议此维基页面。