分类: BT Tracker BEP 详解

欢迎来到 BitTorrent BEP Tracker 规范详解指南,本指南合集将逐步介绍 BitTorrent 目前与 Tracker 有关的 BEP 规范,正在更新中!


在开发 BitSapling/Sapling 的过程中,我意识到中文互联网似乎没有很好介绍 BitTorrent 协议的文章(当然,英文文献也并不是很多),同时 BitTorrent 官方的 BEP 介绍也含糊不清,特开新的一个文章系列来记录各个 BEP 的 Tracker 部分的具体实现方式。

6 篇文章

thumbnail
BT Tracker // BEP 0036 – Torrent RSS Feed
BEP 0036 指定了有关使用发布种子 RSS 订阅的相关规范,也就是 qBittorrent 等软件中的 “RSS阅读器” 功能。 实现了此规范的 Tracker 能够通过 RSS 发布订阅,客户端将会从订阅中自动下载 .torrent 文件。 Feed 类型 由于支持 Atom 的客户端非常稀少,因此推荐使用 RSS2.0 规范来发布 Feed。 标签 enclosure RSS 订阅中每个 Item 必须有一个 enclosure 标签,且 type 字段必须为 application/x-bittorrent,如果 Tracker 支持,还可以携带一个 length 字段代表 .to…
thumbnail
BT Tracker // BEP 0048 – Tracker Protocol Extension: Scrape
BEP 0048 为 Tracker 添加了一个新的协议:scrape (抓取)。 抓取协议允许客户端更新目前 Tracker 上活动的用户数,并以此决定是否应该通过 announce (宣告)协议与 Tracker 联系并更新对等方列表和自己的最新状态。 示例请求 客户端会将原有 Tracker URL 的 announce 替换为 scrape,并向这个接口发送 GET 请求。 GET /scrape?info_hash=xxxxxxxxxxxxxxxxxxxx&info_hash=yyyyyyyyyyyyyyyyyyyy 客户端可以添加多个 info_hash 在查询参数中来同时…
thumbnail
BT Tracker // BEP 0023 – Tracker Returns Compact Peer Lists
在 BEP 0003 中,我们介绍了对于 Peers 的响应返回。 但是当对等体过多的时候,peers 字段将会变得相当庞大,而且经过时间证明,其中 peer_id 字段完全可以被省略,没有存在的必要。因此,BitTorrent 对响应做出了改进,以便进一步压缩响应体的大小。 新增查询参数 客户端通过添加 compact 字段指示 Tracker 是否应该返回 compact 样式的响应,以下是一个示例请求: GET /announce?info_hash=j%25%7c%fe%12%0e%c0%9d%ee6%d5%df%03%bb%fda%cd%7b%97%b5&peer_id=-q…
BT Tracker // BEP 0031 – Failure Retry Extension
BEP 0031 为 BEP 0003 的失败响应提供了一个额外字段 retry in,单位为秒,代表指定秒后客户端应当再次重试上个操作,例如 Tracker 服务器过载,客户端应当稍后再试。 此外,retry in 还可以被指定为 never,代表客户端不应再进行任何尝试,例如客户端请求的这个地址并不是一个 Tracker 服务器,或者指定的种子未在此 Tracker 上注册等等场景。 示例(使用 JSON 格式以提高可读性) { "failure reason": "Server is busy, please try again later.", "retry in": 600 }
BT Tracker // BEP 0007 – IPv6 Tracker Extension
BEP 0007 为 BitTorrent 协议引入了 IPV6 支持。 新增查询参数 ipv4 - 客户端向 Tracker 汇报自己的 IPV4 地址 ipv6 - 客户端向 Tracker 汇报自己的 IPV6 地址 key - 参考标志 客户端会生成一个随机的 key,并配合自己的 peer_id 来允许 Tracker 在多次 announce(宣告)期间识别你的客户端。 注1:这个 key 似乎不是很需要的样子,毕竟识别唯一身份 peer_id 可能就够了。 注2:BEP 中说不推荐使用 ipv4/ipv6 参数,可能会允许坏客户端引发拒绝服务攻击(DDoS),但实际上,大部分客户…
thumbnail
BT Tracker // BEP 0003 – The BitTorrent Protocol Specification
在开发 BitSapling/Sapling 的过程中,我意识到中文互联网似乎没有很好介绍 BitTorrent 协议的文章(当然,英文文献也并不是很多),同时 BitTorrent 官方的 BEP 介绍也含糊不清,特开新的一个文章系列来记录各个 BEP 的 Tracker 部分的具体实现方式。 BEP 0003 - The BitTorrent Protocol Specification 0003 号 BEP 是 BitTorrent 协议中最基础的规范,它规范了一个 BitTorrent Tracker 最基础的功能。 Bencode 编码 在 BT 协议中,客户端、.torrent 文…