Torrent文件
torrent文件(扩展名为.torrent)包含了一些 BT 下载所必须的信息:
资源的名称,如果是资源是以目录形式,还有目录树中每个文件的路径信息和文件名
如果资源是单个文件,这个文件的大小信息;如果是以目录形式,目录树中每个文件的大小
对资源实际文件按照固定大小进行分块后每块进行SHA1 hash运算得到的若干特征值的集合
torrent文件的创建时间、制作者填写的注释、以及制作者的信息等
至少一个announce地址,对应于Internet上部署的一个Tracker服务器
有了这个文件,你才可以下载最新、最酷的东东。torrent文件通常很小,大约几十K、几百K大小吧.
根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。
功能
torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。
BT
下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。
下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。