你的位置:首页 > 知识课堂 > 正文

什么是磁力链

发布时间:1970-01-01

什么是磁力链


磁力链 Magnet linksMagnet links用于能够辨识经过P2P技术下载的文件,由文件内容来辨识,而不是由文件位置或名称做辨别,是直接透过散列函数(Hash Function,类似指纹之辨识法,内容都是符号数字参杂的数列)来加以辨识的技术。

这种链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”来识别文件的。而不是基于文件的位置或者名称。这就类似生活中消费品包装上常见的条码。不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了“磁力链接”不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。

在传统的BT下载方式中让各个下载者之间相互联系,有2种途径:
1、通过连接BT种子中记录的BT Tracker服务器,获取下载者列表
2、利用BT种子中记录的“数字指纹”通过DHT网络进行搜索,获取下载者列表
(不过现实是,存活的BT Tracker服务器越来越少。而BT种子文件也需要服务器保存。)
我们假设“BT Tracker服务器连接不上了,BT种子文件服务器也被干掉了。。”
那么显而易见的是第1种途径完全走不通,第2种途径只能帮你“寻找”,却没办法知道你在寻找什么。
“磁力链接”的主要作用就是把“数字指纹”告诉DHT网络,你需要寻找什么。

我们来分解一下这个地址:magnet:协议名。xt:exacttopic的缩写,表示资源定位点。BTIH(BitTorrentInfoHash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。dn:displayname的缩写,表示向用户显示的文件名。这是一个可选项。tr:tracker的缩写,表示tracker服务器的地址。这是一个可选项,本例中并未出现。精简一下上例,仅需要magnet:?xt=urn:btih:36684b463ca2aa2f9347b18e9f6b1a9090bdb073就够用了,如果附加dn(displayname),在使用上会更加方便一些。

 有网友将其称为磁链。DHT+ PEX解决了BT“寻址”的问题,但是如何告诉BT客户端找(寻)什么又是另外一个问题。在Torrent文件中包含的内容就是用户真正要下载的文件的特征信息,或称为“电子指纹”,BT客户端知道了要找什么,也知道如何去找,于是P2P方式的下载、上传就实现了。


特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索

关闭

关闭