组成

如果这个问题是指torrent文件本身,那么,当对一个文件(或者文件夹)制作成.torrent文件,实际上生成的.torrent文件里面主要包括了这些信息

  1. 这个文件(文件夹)中数据的SHA1值 比如一个 1G 的文件,如果按 1M 每块进行分块,则会被分为了 1000 块,torrent 中就会有这 1000 个数据块的指纹值(SHA1hash 值),这个占据了 torrent 文件的绝大部分空间。

这些值的目的是为了下载的过程中进行数据校验,确保数据收到的和当时源头制作 torrent 时的源文件 100%一致,防止恶意数据攻击。

  1. 一般制作 torrent 文件时,还会要指定一个或者多个 Tracker 的地址 比如 http://www.a.com:8080/announce 这种地址。 torrent 里面一般也会存储了这个信息,这个其实也尤为重要。

相当于记录了一个问询服务器的地址,这个问询服务器的作用,后面我再解释。

  1. 文件或者文件夹内每个文件的名字,方便下载文件时,磁盘上直接命名好跟原始数据一样的目录结构文件名

  2. 其它一些辅助和可扩展的信息 比如可以配置一个 P2SPhttp 地址辅助下载 比如制作软件的名字、备注……。

  3. 上面信息生成后,torrent 会把 1 里面的这些信息,以及 torrent 里面的文件名等关键信息,再进行一次 Hash,生成一个新的 SHA1 值,作为 torrentHASH 值, 也就是经常看到的下载软件里面对这个种子命名的一个唯一的 hash 值,也有的在 magnet 这种磁力链接中可以看到这个值,这就是 torrent 的唯一标记。

以上就是.torrent文件的内容,可以用记事本打开,但可能看到乱码。 这个文件的编码遵循了 bencode 编码规则。 但实际内容就主要是上面这些。 所以,torrent 可以理解为对原始数据的一些记录。