磁力链接是一种用于P2P文件下载的协议,就像http协议是用于页面传输的协议。
磁力链接最常见的用途是基于文件内容的散列值来连接到特定文件,生成一个唯一的文件标识符,让一个字符串对应一个相同内容的文件。
对于文件散列值的算法有很多种,如下所示:
TTH(Tiger Tree散列函数):magnet:?xt=urn:tree:tiger:xxxx
SHA-1(安全散列算法1):magnet:?xt=urn:sha1:xxxx
BitPrint:magnet:?xt=urn:bitprint:xxx
eD2k Hash(eDonkey2000)散列函数:magnet:?xt=urn:ed2k:xxxx
AICH(高级智能型损坏处理):magnet:?xt=urn:aich:xxxx
Kazaa散列函数:magnet:?xt=urn:kzhash:xxxx
BTIH(BitTorrent Info Hash):magnet:?xt=urn:btih:xxxx
MD5(信息-摘要算法5):magnet:?xt=urn:md5:xxxx
文件内容的散列算法以及散列值是磁力链接很重要的参数。
磁力链接还有其他参数,比如xl表示文件的字节数,dn显示文件名,as在线文件的网络链接,xs是P2P链接,kt用于搜索的关键词,mt文件列表,tr用于BT下载的Tracker URL。
当我们用客户端下载文件的时候,下载工具就可以根据磁力链接提供的信息从HTTP,FTP,SFTP或者查找Tracker服务器从服务器上获得谁的电脑上有这份文件从而进行P2P下载。
中国因为特殊的环境,很多人都没有独立IP和路由,无法为别人提供文件下载,BT下载的速度完全取决于迅雷。