传统 BT 下载需要种子文件(.torrent),里面有 Tracker 地址和文件分块哈希;磁力链接把「找到种子」这一步也交给了网络,因此只需要一串哈希就能开始。
一、Tracker 的作用
Tracker 是一台中心服务器,负责记录哪些客户端正在下载同一个种子,并把它们的 IP 与端口返回给彼此。Tracker 挂了,种子并不会消失,只是发现节点变慢。
二、DHT 网络
DHT(分布式哈希表)把「哈希 → 节点列表」的索引分散存放在大量客户端上。每个客户端既是使用者也是提供者,通过异或距离算法逐跳查询。磁力链接正是依赖 DHT 找到第一批持有相同信息哈希的节点。
三、PeX 与元数据交换
连接建立后,客户端之间会通过 PeX(Peer Exchange)互相交换已知节点,网络因此越滚越大;再通过 BEP-9 扩展协议,从对方那里取回种子元数据,得到文件列表与分块哈希,正式进入下载阶段。
四、完整流程
- 解析磁力链接,取出 btih 哈希;
- 向 DHT 网络查询该哈希对应的节点;
- 连接节点并索取元数据;
- 拿到文件列表后按块下载、校验、写盘;
- 下载过程中通过 PeX 继续扩充节点。
五、这对使用者意味着什么
磁力链接不会因为某个网站关闭而立刻失效,但可用性取决于网络里是否还有做种者。反过来,这也意味着链接无法被「删除」,因此在分享与获取时更要留意内容合法性。相关规范可参考磁力链接格式标签下的整理。