阅读目录
- Torrent简介
- Torrent结构
- Torrent文件编码
- Torrent文件解析
- Torrent文件与Magnet
- 具体实现
- Reference
回到顶部
Torrent简介BitTorrent协议的种子文件(英语:Torrent file)可以保存一组文件的元数据。这种格式的文件被BitTorrent协议所定义。扩展名一般为“.torrent”。
.torrent种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。
回到顶部
Torrent结构Torrent文件内容都以Bencoding编码类型进行存储,整体上是一个字典结构,见下:
Torrent总体结构键名称数据类型可选项键值含义announcestringrequiredTracker的Urlinfodictionaryrequired该条映射到一个字典,该字典的键将取决于共享的一个或多个文件announce-listarray[]optional备用Tracker的Url,以列表形式存在commentstringoptional备注created bystringoptional创建人或创建程序的信息
Torrent单文件Info结构Torrent多文件Info结构files字典结构: