蓝光动力

 找回密码
 立即注册
查看: 304|回复: 6

磁力链接是什么,为什么一些搜索站用磁力链接发布资源?

[复制链接]
发表于 2018-4-19 18:43:21 | 显示全部楼层 |阅读模式

马上注册,获取更多优质资源,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
磁力链接(Magnet URI scheme),是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接的统一资源定位符(URL)不同,磁力连结是基于元数据(metadata)文件内容,属于统一资源名称(URN)。也就是说,磁力连结不基于文档的IP地址或定位符,而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。因为不依赖一个处于启动状态的主机来下载文档,所以特别适用没有中心服务器的对等网络。尽管它符合开源标准,却被垄断信息资源和监控用户行为的个人、组织、企业和政府拒之门外。磁力链接,简单的说(Magnet URI scheme):类似下面这样以“magnet:?xt=urn:btih:”开头的字符串,就是一条磁力链接;确切的说:“磁力链接”的主要作用是识别【能够通过“点对点技术(即:P2P)”下载的文件】。这种链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,来识别文件的。而不是基于文件的位置或者名称。
特点众所周知,BT下载速度不够稳定,当中断种时则无法完整下载。但是,这还不是最严重的。从去年年底开始,BT下载遭遇到了“更大的困难”——很多的BT服务器被关,不仅很多种子文件无法找到,BT Tracker服务器也断开解析工作,这就使得BT下载成为很大的难题。磁力链接很好地解决了这个问题。磁力链接的问世与大行其道,标志着BT 1.0时代已经过去,BT 2.0 时代已经到来。
深刻理解磁力链接
简单地说,磁力链接是一种特殊链接,但是它与传统基于文件的位置或名称的普通链接(如http://xxx)不一样,它只是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,并用它来识别文件。它类似于生活消费品包装上常见的条码,不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了磁力链接不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。因此任何人都可以生成一个Magnet 链接并确保通过该链接下载的文件准确无误。
更简单地说:类似【magnet:?xt=urn:btih:88594AAACBDE40EF3E2510C47374EC0AA396C08E&dn=bbb_sunflower_1080p_30fps_normal.mp4&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_1080p_30fps_normal.mp4】这样以“magnet:?”开头的字符串,就是一条磁力链接,其在网页上的图标通常如图1所示,像一块磁铁,很容易辨别。
角色在传统的BT下载方式中让各个下载者之间相互联系,有2种途径:
1、通过连接BT种子中记录的BT Tracker服务器,获取下载者列表
2、利用BT种子中记录的“数字指纹”通过DHT网络进行搜索,获取下载者列表
(不过现实是,存活的BT Tracker服务器越来越少。而BT种子文件也需要服务器保存。)
我们假设“BT Tracker服务器连接不上了,BT种子文件服务器也被干掉了。。”
那么显而易见的是第1种途径完全走不通,第2种途径只能帮你“寻找”,却没办法知道你在寻找什么。
“磁力链接”的主要作用就是把“数字指纹”告诉DHT网络,你需要寻找什么。
问题前面我们说过,“磁力链接”是通过DHT网络来索引需要下载的文件的,因此在某些环境下可能出现“获取磁力链接信息”时间较长,或者获取失败的问题。由于目前相关问题经验的积累很少,因此除了重试还没有明确的解决办法。
历史这个标准的草稿出现于2002年,是为了对eDonkey2000的“ed2k:”和Freenet的“freenet:”两个URI格式进行“厂商与项目中立化”(vendor- and project-neutral generalization)而制定的。同时这个标准也尝试紧密地跟进IETF官方的URI标准。
内容散列函数的应用磁力链接最常见的用途是基于文件内容的散列函数值来链接到特定文件,生成一个唯一的文件识别符,类似于ISBN。不像常规的识别符,内容散列可以被任意一位持有此文件的人生成,所以并不需要一个中心机构,这使其在文件共享领域经常被用作搜索条件,因任何人都可以分发一个磁力链接来确保该链接指向的资源就是他想要的,而和得到该资源的方式无关。(虽然技术上讲,两个不同的文件可能具有相同的散列值,但实际上这是极不可能发生的)
另一个磁力链接的优势是开放性和跨平台性:一个磁力链接可被运行在几乎所有平台上的应用程序们使用以下载一个文件。因为磁力链接十分简洁且为纯文本格式,所以用户可以很方便地将其复制到电子邮件或即时消息中,比如种子文件。
技术描述磁力链接由一组参数组成,参数间的顺序没有讲究,其格式与在HTTP链接末尾的查询字符串相同。最常见的参数是”xt”,是”exact topic”的缩写,通常是一个特定文件的内容散列函数值形成的URN,例如:
magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C其值是Base32编码的文件的SHA-1散列。
注意,虽然这个链接指向一个特定文件,但是客户端应用程序仍然必须进行搜索来确定哪里,如果有,能够获取那个文件。
在标准的草稿中其他参数的定义如下:
  • “dn” (“显示名称”):为了方便,为用户显示文件名称
  • “kt” (“关键字”):更笼统的搜索,指定搜索关键字而不是特定文件
  • “mt” (“文件列表”):一个URI指向一个列表,例如一个项目列表
  • 应用程序定义的实验参数,必须以”x.”开头
标准还建议同类的多个参数可以在参数名称后面加上”.1″, “.2″等来使用,例如
magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7描述磁力链接可以包括一个或多个参数,之间用’&’隔开。参数的顺序在文件在标准中没有记录。有一些参数的值对于客户端正确解析磁力链接很重要。
   magnet:? xl = [字节大小]& dn = [文件名(已编码URL)]& xt = urn: tree: tiger: [ TTH hash(Base32)]参数
  • dn(显示名称)- 文件名
  • xl(绝对长度)- 文件字节数
  • xt(eXact Topic)- 包含文件散列函数值的URN
  • as(可接受来源) – 在线文件的网络链接
  • xs(绝对资源)- P2P链接
  • kt(关键字)- 用于搜索的关键字
  • mt(文件列表)- 链接到一个包含磁力链接的元文件 (MAGMA – MAGnet MAnifest)
  • tr(Tracker地址)- BT下载的Tracker URL
xt参数磁力链接的这部分最重要。用于寻找和验证包含着磁力链接中的文件。
TTH(Tiger Tree散列函数)TigerTree散列函数被用在包括Direct Connect和Gnutella2在内的几个网络中。
xt=urn:tree:tiger:[ TTH Hash(Base32)]SHA-1(安全散列算法1)Gnutella和Gnutella2使用的散列函数。
xt=urn:sha1:[ SHA-1 Hash(Base32)]BitPrint这种散列函数包含一个SHA-1散列函数和一个TTH散列函数,用”.”隔开。
Gnutella和Gnutella2使用。
xt=urn:bitprint:[ SHA-1 Hash(Base32)].[ TTH Hash(Base32)]eD2k Hash(eDonkey2000)散列函数eDonkey2000使用的散列函数算法。
xt=urn:ed2k:[ ED2K Hash(Hex)]AICH(高级智能型损坏处理)不是正式的磁力链接的一部分。eDonkey2000使用的散列函数算法,用于存储和控制下载完成、正在下载的文件的完整性。
xt=urn:aich:[ aich Hash(Base32)]Kazaa散列函数FastTrack使用的散列函数算法。
xt=urn:kzhash:[ Kazaa Hash(Hex)]BTIH(BitTorrent Info Hash)BitTorrent使用的散列函数算法。
xt=urn:btih:[ BitTorrent Info Hash(Hex)]MD5(信息-摘要算法5)Gnutella2支持的散列函数算法。
xt=urn:md5:[ MD5 Hash(Hex)]CRC-32(循环冗余校验)不是正式的磁力链接的一部分。没有任何已知的P2P网络使用。
xt=urn:crc32:[ CRC-32(Base10)]网络链接至文件有两种可以插入到磁力链接的下载链接作为直接或者备用资源。
普通链接(as)“as”的意思是”acceptable source”。这种链接指向从网络服务器的直接下载。只有在指定的超时后才会链接,防止服务器过载。客户端在考虑向服务器发送下载请求前会先花一定时间在P2P网络中定位文件。
as=[文件的网络链接(已编码URL)]P2P链接(xs)链接可以是链接到磁力链接的文件的HTTP(SHTTP、FTP、SFTP等)下载源、文件的P2P源地址或是hub(使用DC++时)地址。对于 这一链接,客户端尝试直接链接,并请求文件或其来源,有时会同时请求二者。这一字段常被P2P客户端用来存储源。引用中可能包含文件hash。
内容寻址网络(CAN)URL
这类链接被Gnutella还有G2应用程序使用,基于RFC 2168。
xs=http://[ 客户端地址]:[客户端端口]/uri-res/N2R?[包含一个文件hash的URN ]例:
xs=http://192.0.2.0.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF链接到DirectConnect hub并为文件查找源这一链接立即将DirectConnect客户端连接到刚才讨论的hub。
xs=dchub://[hub 地址]:[hub端口]为Gnutella2上的文件引用基于网络的源缓存这种情况下,链接包含的点不是客户端IP或直接来源,而是来源缓存。这样的缓存并不包含文件本身,而是存储了其他客户端的IP,这些客户端连接到缓 存来下载相同的文件。一旦客户端连接到缓存并获得其他替代来源的IP,其自身IP就会存入到缓存中,然后继续连接到下一个缓存,继续请求替代来源。这种系 统类似于BitTorrent tracker的操作。
xs=http://cache.freebase.be/[ SHA-1 hash ]引用ED2K源xs=ed2k://[ 客户端地址]:[客户端端口]/[ed2k hash]/[文件大小]/文件列表(mt)这是一个导向一系列连链接列表(也许是个网页)的链接……
mt=http://weblog.foo/all-my-favorites.rss或者是一个URN
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ关键字(kt)该部分代表了一串用于P2P网络搜索用的关键字
kt=martin+luther+king+mp3Tracker地址(tr)Tracker URL.用于在不需要DHT支持下下载BitTorrent资源。
tr=http://example.com/announce补充格式(x.)对于实验性且自补的非正式选项,可以使用前缀x后加已选择的第二个字母
x.[新参数名]=[新参数数据(已编码URL)]参数组通过在每个参数后编号并用”.”来分隔允许一个Magnet链接中包含多个文件及它们URN,文件名和散列函数值。
magnet:?xt.1=[第一个文件的URN]&xt.2=[第二个文件的URN]示例链接到一个0字节长度的文件。
magnet:?xt=urn:ed2k:31D6CFE0D16AE931B73C59D7E0C089C0&xl=0&dn=zero_len.fil&xt=urn:bitprint:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ.LWPNACQDBZRYXW3VHJVCJ64QBZNGHOHHHZWCLNQ&xt=urn:md541D8CD98F00B204E9800998ECF8427Emediawiki-1.15.1.tar.gz
magnet:?xt=urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1&xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY&xt=urn:btihHQXPYWMACKDWKP47RRVIV7VOURXFE5Q&tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26&as=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz&xs=http%3A%2F%2Fcache.example.org%2FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5&xs=dchub://example.orgurl magnet
http://sure-raza.com/magnet:?xl= ... KWN4WWIQ5X4EBOOTLJY客户端
客户端起始支持版本
μTorrent1.8[1]
BitComet1.17[2]
BitSpirit3.6.0.126[3]
迅雷5.9.17[4]
Transmission1.80
qBittorrent1.5.0
NeoLoader0.10 Public Beta Release[5][6][7]
此外,支持磁力链接的应用程序还包括Vuze、BearShare、DC++、Deluge、gtk-gnutella、Kazaa、LimeWire、FrostWire、MP3 Rocket、Morpheus、Shareaza、MLdonkey、aMule、KCeasy和TrustyFiles。
参见
  • Metalink
  • DHT
参考文献
  • ^ (英文)µTorrent 1.8 released – Announcements – µTorrent Community Forums. Firon. [2014-12-13].
  • ^ (英文)The lastest 1.17 version is released[20091228] – Comet Forums. sophia0316. [2014-12-13].
  • ^ 更新历史 比特精灵. sophia0316. [2014-12-13].
  • ^ 关于磁力链接(Magnet URI)的简单介绍 – 迅雷阳台-晒出新鲜事. 强伊文. [2014-12-13].
  • ^ NeoLoader v0.10公开测试版发布 eMule Fans 电骡爱好者. author. [2014-12-13].
  • ^ (英文)NeoLaoder 0.10 Public Beta Release. DavidXanatos. [2014-12-13].
  • ^ (英文)NeoLoader ChangeLog. DavidXanatos. [2014-12-13].

外部链接
  • MAGNET-URI项目网站
  • ENBT.orgMagnet搜索引擎
  • Bitzi,Magnet搜索引擎/目录
  • Freebase,使用磁力链接索引免费软件的网站
  • RHash,开源命令行工具,可以计算磁力链接
  • torrent2magnet,Magnet转换工具,可以把torrent文件转换成磁力链接
eDonkey网络(分类)

网络与协议eDonkey网络(MFTP) · Kad网络(Kademlia) · Overnet

链接及组成eD2k链接(eD2k Hash) · 磁力链接

服务器及其软件eD2k服务器 · Lugdunum · Razorback2

客户端软件
(比较)
eDonkey2000(电驴) · eMule(电骡) · aMule · MLDonkey · Lphant · Shareaza · eMule Plus · iMule · JMule · Jubster · lMule · Morpheus · xMule
eMule ModXtreme · ScarAngel · Mephisto · X-Ray · MorphXT · MagicAngel · StulleMule · NeoMule · ZZUL · AcKroNiC · Sivka · Pawcio · EastShare · CN Mod · eXcalibur · X Mod · VeryCD Mod · easyMule · eMule kMule

吸血驴[1]哇嘎 · 迅雷 · QQ旋风 · 脱兔 · 快车 · BitComet[2] · Applejuice · ZZ-R

功能及组件
原版eMuleIPFilter · 模糊协议

eMule Mods动态反吸血驴保护(DLP)(SDC)

其他文件分享程序比较 · “电驴”名称争议

注释[1]以Xtreme的官方DLP库是否侦测为准。不一定是数据方面的“吸血”,可能有其他不妥如违反GPL等。 [2]默认无法连接eDonkey网络,但有官方插件供下载安装。

资料整理自网络,更多请参考维基百科

发表于 2018-6-24 19:41:25 | 显示全部楼层
只有从专业本质上搞清楚,才能更好的使用。赞
发表于 2018-8-3 19:42:07 | 显示全部楼层
新人受教了,谢谢整理
发表于 2018-8-4 07:56:55 | 显示全部楼层
谢谢下载知识的普及。
发表于 2018-8-14 16:19:36 | 显示全部楼层
过于专业,看不太懂
发表于 2019-4-11 11:32:10 | 显示全部楼层
介绍的太专业了  感谢
发表于 2019-11-27 22:16:38 | 显示全部楼层
了解一下,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高清电影下载

GMT+8, 2019-12-8 19:33

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表