展会动态

磁力链接

日期:2020-08-12 02:48 作者:亚美ag旗舰下载

  声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。详情

  磁力链接(Magnet URI scheme),是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接的统一资源定位符(URL)不同,磁力链接是基于元数据(metadata)文件内容,属于统一资源名称(URN)。也就是说,磁力链接不基于文档的IP地址或定位符,而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。因为不依赖一个处于启动状态的主机来下载文档,所以特别适用没有中心服务器的对等网络。举例来说,一个常见的磁力链接形式为“magnet:?xt=urn:btih:”。

  这个标准的草稿出现于2002年,是为了对eDonkey2000的“ed2k:”和Freenet的“freenet:”两个URI格式进行“厂商与项目中立化”(vendor- and project-neutral generalization)而制定的。同时这个标准也尝试紧密地跟进IETF官方的URI标准。

  磁力链接很好地解决了这个问题。磁力链接的问世与大行其道,标志着BT 1.0时代已经过去,BT 2.0 时代已经到来。

  简单地说,磁力链接是一种特殊链接,但是它与传统基于文件的位置或名称的普通链接(如)不一样,它只是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,并用它来识别文件。

  它类似于生活消费品包装上常见的条码,不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了磁力链接不需要任何“中心机构”的支持,且识别准确度极高。

  因此任何人都可以生成一个Magnet 链接并确保通过该链接下载的文件准确无误。

  磁力链接最常见的用途是基于文件内容的散列函数值来链接到特定文件,生成一个唯一的文件识别符,类似于ISBN。不像常规的识别符,内容散列可以被任意一位持有此文件的人生成,所以并不需要一个中心机构,这使其在文件共享领域经常被用作搜索条件,因任何人都可以分发一个磁力链接来确保该链接指向的资源就是他想要的,而和得到该资源的方式无关。

  另一个磁力链接的优势是开放性和跨平台性:一个磁力链接可被运行在几乎所有平台上的应用程序们使用以下载一个文件。因为磁力链接十分简洁且为纯文本格式,所以用户可以很方便地将其复制到电子邮件或即时消息中,比如种子文件。

  磁力链接由一组参数组成,参数间的顺序没有讲究,其格式与在HTTP链接末尾的查询字符串相同。通常是一个特定文件的内容散列函数值形成的URN,例如:

  :4D9FA761D69964B00DF0B3B0C9C1F968EA6C47D0&xt=urn:ed2k:7655dbacff9395e579c4c9cb49cbec0e&

  =bbb_sunflower_2160p_30fps_stereo_abl.mp4&

  虽然这个链接指向一个特定文件,但是客户端应用程序仍然必须进行搜索来确定哪里。

  :exact topic的缩写,包含文件哈希值的统一资源名称。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用ED2K,AICH,SHA1和MD5等。这个值是文件的标识符,是不可缺少的。

  :display name的缩写,表示向用户显示的文件名。这一项是选填的。

  :tracker的缩写,表示tracker服务器的地址。这一项也是选填的。

  标准还建议同类的多个参数可以在参数名称后面加上.1, .2等来使用,例如:

  magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7

  TigerTree散列函数被用在包括Direct Connect和Gnutella2在内的几个网络中。

  xt=urn:tree:tiger:[ TTH Hash(Base32)]

  这种散列函数包含一个SHA-1散列函数和一个TTH散列函数,用.隔开。

  xt=urn:bitprint:[ SHA-1 Hash(Base32)].[ TTH Hash(Base32)]

  不是正式的磁力链接的一部分。eDonkey2000使用的散列函数算法,用于存储和控制下载完成、正在下载的文件的完整性。

  BitTorrent使用的散列函数算法。出于向下兼容的考虑,客户端需要同时支持被 Base32 编码过 的 BTIH 散列结果。

  xt=urn:btih:[ BitTorrent Info Hash(Hex)]

  as的意思是acceptable source。这种链接指向从网络服务器的直接下载。只有在指定的超时后才会链接,防止服务器过载。客户端在考虑向服务器发送下载请求前会先花一定时间在P2P网络中定位文件。

  链接可以是链接到磁力链接的文件的HTTP(SHTTP、FTP、SFTP等)下载源、文件的P2P源地址或是hub(使用DC++时)地址。对于这一链接,客户端尝试直接链接,并请求文件或其来源,有时会同时请求二者。这一字段常被P2P客户端用来存储源。引用中可能包含文件hash。

  这类链接被Gnutella还有G2应用程序使用,基于RFC 2168。

  xs=客户端地址]:[客户端端口]/uri-res/N2R?[包含一个文件hash的URN ]

  这一链接立即将DirectConnect客户端连接到刚才讨论的hub。

  这种情况下,链接包含的点不是客户端IP或直接来源,而是来源缓存。这样的缓存并不包含文件本身,而是存储了其他客户端的IP,这些客户端连接到缓存来下载相同的文件。一旦客户端连接到缓存并获得其他替代来源的IP,其自身IP就会存入到缓存中,然后继续连接到下一个缓存,继续请求替代来源。这种系统类似于BitTorrent tracker的操作。

  xs=ed2k://[ 客户端地址]:[客户端端口]/[ed2k hash]/[文件大小]/

  此外,支持磁力链接的应用程序还包括Vuze、BearShare、DC++、Deluge、gtk-gnutella、Kazaa、LimeWire、FrostWire、MP3 Rocket、Morpheus、Shareaza、MLdonkey、aMule、KCeasy和TrustyFiles。

  前面我们说过,“磁力链接”是通过DHT网络来索引需要下载的文件的,因此在某些环境下可能出现“获取磁力链接信息”时间较长,或者获取失败的问题。由于相关问题经验的积累很少,因此除了重试还没有明确的解决办法。

  辛运帏, 廖大春, 卢桂章. 单向散列函数的原理、实现和在密码学中的应用[J]. 计算机应用研究, 2002, 19(2):25-27.

  李哲, 方勇, 陈淑敏,等. 数据库加密技术中散列函数的应用[J]. 计算机工程, 2003, 29(17):68-69.

  李峰. BT难下载 磁力链接MagNet来搞定[J]. 网友世界, 2010(7):14-15.

  寂寞的犀利哥. 和BT说拜拜 下载就用迅雷磁力链接[J]. 电脑爱好者, 2010(9):40-40.

亚美ag旗舰下载