磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?

磁力链接:现在我们使用迅雷等工具下载资源的时候,
基本上都只需要一个叫做磁力链接的东西就可以了,非常方便。
磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?-有驾
磁力链接是对等网络中进行信息检索和下载文档的电脑程序。
和基于“位置”连接的统一资源定位符不同,磁力链接是基于元数据文件内容,
属于统一资源名称。
也就是说,磁力链接不基于文档的IP地址或定位符,
而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。
因为不依赖一个处于启动状态的主机来下载文档,所以特别适用没有中心服务器的对等网络。
磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?-有驾
磁力链接格式类似于:
magnet:?xt=urn:btih:E7FC73D9E20697C6C440203F5884EF52F9E4BD28
分解一下这个链接
magnet:协议名。
磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?-有驾
xt:exacttopic的缩写,表示资源定位点。BTIH(BitTorrentInfoHash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。
一般来讲,一个磁力链接只需要上面两个参数即可找到唯一对应的资源。也有其他的可选参数提供更加详细的信息。
dn:displayname的缩写,表示向用户显示的文件名。
tr:tracker的缩写,表示tracker服务器的地址。
kt:关键字,更笼统的搜索,指定搜索关键字而不是特定文件。
mt:文件列表,链接到一个包含磁力链接的元文件(MAGMA-MAGnetMAnifest)。
磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?-有驾
种子/DHT
通过磁力就可以获取种子文件从而进行下载,这跟直接使用种子下载时一个道理的,只是少了从磁力到种子文件的一个过程而已。
BitTorrent协议的种子文件可以保存一组文件的元数据。这种格式的文件被BitTorrent协议所定义。
扩展名一般为“.torrent”。BitTorrent使用”分布式哈希表”(DHT)来为无tracker的种子(torrents)存储peer之间的联系信息。
磁力链接的开头“magnet:?xt=urn:btih:”是什么含义?-有驾
这样每个peer都成了tracker。这个协议基于Kademila网络并且在UDP上实现。
DHT由节点组成,它存储了peer的位置。BitTorrent客户端包含一个DHT节点,这个节点用来联系DHT中其他节点,从而得到peer的位置,进而通过BitTorrent协议下载。
peer:一个TCP端口上监听的客户端/服务器,它实现了BitTorrent协议。
节点:一个UDP端口上监听的客户端/服务器,它实现了DHT(分布式哈希表)协议。如果对DHT协议感兴趣的话一定要看下DHT协议的具体内容,有中文翻译版本(想要彻底读懂项目的话一定要先了解该协议,代码都是基于该协议实现的)
0

全部评论 (0)

暂无评论