torrent 文件
- BT
torrent 文件(种子文件)是被下载文件的“索引”。本质上是文本文件,主要包含 Tracker 信息和文件信息
- Tracker 信息:BT 下载中需要用到的 Tracker 服务器的地址和针对 Tracker 服务器的设置
- 文件信息:根据对目标文件的计算生成,计算结果根据 BitTorrent 协议内的 B 编码规则进行编码
原理:把提供下载的文件虚拟分成大小相等的块,块大小必须为 2k 的整数次方,并把每个块的索引信息和 Hash 验证码写入 .torrent 文件
- 虚拟分块是不在硬盘上产生各个块文件
torrent 文件包含的信息
- 资源的名称
- 如果资源是以目录形式,还有目录树中每个文件的路径信息和文件名
- 如果是单个文件呢,包含文件的大小信息;如果是目录形式,目录树中每个文件大小
- 对资源实际文件按照固定大小进行分块后每块进行 SHA1 hash 运算得到的若干特征值的集合
- torrent 文件的创建时间、制作者填写的注释、以及制作者的信息等
- 至少一个 announce 地址,对应 Internet 上部署的一个 Tracker 服务器
BT
- BT(BitTorrent,比特流),一种 P2P 传输协议。
- 克服了传统下载方式的局限性,下载的人越多,文件下载速度越快
- 传统下载方式:一般是文件由服务器传送到客户端,例如 FTP,HTPP,PUB等。服务器的带宽一定,所以下载人越多速度越慢
- 普通的 HTPP/FTP 下载使用 TCp/IP 协议,BitTorrent 协议是在 TCP/IP 协议之上的一个 P2P 文件传输协议,处于 TCP/IP 结构的应用层
- 根据 BitTorrent 协议,文件发布者发布的文件生成提供一个 .torrent 文件,即种子文件,简称为“种子”
BT 下载
- 下载者要下载文件内容,需要先得到相应的 .torrent 文件,然后使用 BT 客户端下载
- BT 客户端先解析文件得到 Tracker 地址,连接 Tracker 服务器
- Tracker 服务器回应下载者的请求,提供下载者和其他下载者(包括发布者)的 IP
- 下载者连接其他下载者,根据 .torrent 文件,下载者分别告知对方自己已有的块,然后交换对方没有的数据
- 不需要服务器参与,分散了单个线路的数据流量,减轻了服务器负担
- 下载者每得到一个块,需计算出下载块的 Hash 验证码与 .torrent 文件对比,一样说明块正确,否则需要重新下载
- 此规定解决下载内容准确性的问题
种子市场
用户在种子市场共享种子文件;用户可以共享任务列表,也可以浏览下载其他人共享的任务