torrent

更新时间:2024-01-19 20:26

BitTorrent协议的种子文件(英语:Torrent file)可以保存一组文件的元数据。这种格式的文件被BitTorrent协议所定义。扩展名一般为“.torrent”。

BitTorrent原理

BitTorrent(BT),最大的特点和优势是采用了“多源文件传输机制(MFTP,Multi-source File Transmission Protocol)”。该词的实际出处为eDonkey的协议说明文档,但在BT上被应用得更早、更成熟完善。BT与eDonkey的原理完全相同,都是把一个文件切割成若干文件片(Piece),为每一片标上特殊标识。一般文件片的大小为256K字节或512K字节。下载时,用户不是从一个同定节点(例如传统网络的中心服务器或最初搜索到的存储文件的节点)上下载完整的文件,而是同时从多个拥有部分或全部文件的节点处下载不同的文件片,最后获得完整的文件。由于文件分片,因此可以支持断点续传。同时每个节点在获得一个文件片后,即可向其他节点提供上传。这样就减轻了服务器或者最初拥有该文件的节点的压力,上传服务被分摊到所有参与下载的节点上。

BT的网络架构中存在一个中心服务器Tracker,用来保存BT网络巾各节点的IP地址和端口等信息。下载节点刚加入网络时从Trakcer上获得其他节点的地址信息。另外,BT与常见的P2P网络不同,其功能主要限于文件的传输过程,而共享文件的发布和查询都是通过Web服务器来实现的。BT节点下载时,首先要到Web服务器上通过简单的HTTP协议下载一个扩展名是.torrent的文件。而后节点通过.torrent文件中包含的信息使用HTTP协议与Tracker服务器相连。Tracker服务器记录下节点请求下载的文件信息以及节点的IP地址和端口号,回复节点一个随机生成的下载该文件的节点列表。下载节点与列表上的节点建立连接,实现了多源下载。当下载者拥有完整的文件后,就称其为“种子( Seed)”。BT的网络架构如图《网络架构》所示。

结构

.torrent种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。

种子文件包含以下数据:

作用

根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个种子文件。下载者要下载文件内容,需要先得到相应的种子文件,然后使用BT客户端软件进行下载。

下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker服务器。

下载者每得到一个块,需要算出下载块的Hash验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

为了解决某些用户“下完就跑”的现象,在非官方BitTorrent协议中还存在一种超级种子算法

文件怎么打开

.torrent这类BT下载的种子文件通常可以直接使用常用下载工具直接打开,打开种子文件后,程序会提示选择要下载的文件,根据自己的需要选择下载即可。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}