torrent
文本文件
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下载的种子文件通常可以直接使用常用下载工具直接打开,打开种子文件后,程序会提示选择要下载的文件,根据自己的需要选择下载即可。
参考资料
最新修订时间:2024-01-19 20:26
目录
概述
BitTorrent原理
参考资料