磁力链接下载原理

(1)基本形式:

磁力链接是以“magnet:?xt=urn:btih:”开头的字符串。链接是由首码和Hash结果的数字指纹组成。其中,

magnet是协议名,

xt是exact topic的缩写,

表示资源定位点,

bith是 BitTorrent Info Hash的缩写,表示哈希方法名,可选btih、sha1、md5。

dn选填项,是display name缩写,变帅向用户显示得文件名,

tr选填项,是tracker缩写,表示tracker服务器的地址。

(2)磁力链接原理:

磁力链接下载,是BT2.0时代的发展方向。其核心是三个关键技术,DHT,PEX,Magnet Link。

DHT,Distributed Hash Table,分布式哈希表

DHT是一种分布式存储方法,DHT的作用是找到哪些正在下载相同文件的主机。DHT网络中,在不需要服务器的情况下,每个主机负责一个小范围的路由,并负责存储一小部分数据,从而实现真个DHT网络的寻址和存储。常用的DHT算法叫Kademlia。

在Kademlia(简称kad)网络中,所有信息均以哈希表条目形式加以存储,这些条目分布在各个主机节点上,从而构建了一个巨大的分布式哈希表。只要知道了信息索引的Key,通过Kademlia协议查找对应的value信息。每个主机节点都有一个160bit的ID作为标识符,Key也是一个160bit的标识符,<key,value>对就存放在ID值最接近Key值的节点上,整个网络就像一个二叉树,利用前缀划分子网络。查找时,就是在这颗二叉树上面进行查找value值。


PEX,Peer Exchange,节点信息交换

PEX的存在是为了解决如何实现高效的寻址,查询工作。PEX的工作原理,每台计算机虽然只保留了自己附件的一部分主机节点信息,但是通过这些主机节点可以扩展出去,不停迭代直至延展到整个DTH网络。利用一个磁力链接下载文件时,过程是,软件在主机负责路由的DHT网络范围内的主机上,查找value(就是磁力链接去掉首部后的hash值部分)。如果没有找到,那么就由这个DHT网络内的主机将寻址请求扩散出去,一直到超时、查找不到或返回文件地址。这个时候就和BT 1.0在利用Tracker服务器获取到了下载主机信息一样,开始P2P的下载。


Magnet links,磁力链接

磁力链接的形式在最开始已经有所介绍。磁力链接的存在是为了让主机客户端能够寻找到文件。






你可能感兴趣的:(分布式存储)