磁力链接的结构

作者: 扬帆大海 分类: 技术文章 发布时间: 2018-04-22 03:05

估计萌新被网盘惯坏了,已经习惯直接甩个链接就有一个大大的下载按钮让他点的感觉了。
最近问起来的人有点多,还是写个什么介绍一下吧


举个例子吧:
这是摇曳露营全集的磁链
magnet:?xt=urn:btih:cfd6b190df47342a17415cb4c930db90968c0342&tr=http://t.nyaatracker.com/announce&tr=http://tracker.kamigami.org:2710/announce&tr=http://share.camoe.cn:8080/announce&tr=http://opentracker.acgnx.se/announce&tr=http://anidex.moe:6969/announce&tr=http://t.acg.rip:6699/announce&tr=https://tr.bangumi.moe:9696/announce&tr=udp://tr.bangumi.moe:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=udp://tracker.opentrackr.org:1337/announce

  • magnet :协议名。
  • xt :包含文件哈希值的统一资源名称。
  • urn:表示资源名
  • btih:表示哈希方法名,这里还可以使用ED2K,AICH,SHA1和MD5等。这个值是文件的标识符,是不可缺少的。
  • &dn :display name的缩写,表示向用户显示的文件名。这一项是选填的。
  • &tr :tracker的缩写,表示tracker服务器的地址。这一项也是选填的。

一个磁链最少需要
magnet:?xt=urn:btih:cfd6b190df47342a17415cb4c930db90968c0342
这么些部分。

磁链的基本工作流程是:
1. 先看磁链有写tracker服务器没,如果没有写,去客户端默认的tracker服务器问,还有谁在下载/上传哈希值为cfd6b190df47342a17415cb4c930db90968c0342的文件啊。
2. 然后去DHT网络上问,还有谁在下载/上传哈希值为cfd6b190df47342a17415cb4c930db90968c0342的文件啊。
3. 然后客户端去连接这些在下载/上传的人,排队申请对方把文件已经下载完的部分,发给你。

tracker服务器的作用是,记录都有谁正在下载/上传这个种子。
DHT网络基本等同于,每个用户都是一个mini的tracker服务器,只记录很少数量的种子都有谁在下载,
如果其他客户端问的种子你的客户端知道就告诉他,
如果不知道就告诉他,还有那些其他的支持DHT的用户在线上,它可以再去问他们。

BT的工作模式导致几个问题:
1、你的下载速度其实受制于其他人的上传速度。
2、如果tracker服务器被屏蔽的太厉害,下载用户可能需要很久才能找到足够多的上传用户。
比如我就经历过一个磁链,在下载了0.2%后,3天都是0KB/S,直到突然在DHT网络找到了几个大佬,分分钟用10M/s的速度下完了。

一条评论
  • 亚瑟瑟

    2018-05-10 00:30

    大佬哇

发表评论

电子邮件地址不会被公开。 必填项已用*标注