zoukankan      html  css  js  c++  java
  • 【转】与BT下载相关的概念

    1. DHT

    DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和 存储。新版BitComet允许并行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以 在DHT网络中寻找下载同一文件的其他用户。BitComet的DHT网络协议和BitTorrent测试版的协议完全兼容,也就是说可以连入一个同 DHT网络分享数据。

    2. 磁力链接

    磁力链接,简单的说:类似下面这样以“magnet:?”开头的字符串,就是一条“磁力链接;确切的说:“磁力链接”的主要作用是识别(能够通过“点对点技术(即:P2P)”下载的文件)。这种链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,来识别文件的。而不是基于文件的位置或者名称。这就类似生活中消费品包装上常见的条码。不同的是这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了“磁力链接”不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。由于磁力连结是基于文件内容或者元数据而不是位置的,磁力连结可以被认为是一种统一资源名称(Uniform Resource Name,URN),而不是更常见的统一资源定位符(Uniform Resource Locator,URL)。尽管磁力连结可以被其他应用程序使用,但是它的主要用途还是在点对点技术方面,因为其可以定位不在稳定主机上的资源。磁力链接通常是以“magnet:?”为开头的字符串,比如:

    magnet:?xt=urn:sha1:RNCKHTQGWBTRNJIV4WNAE52SJUQCQO5C
     
    在传统的BT下载方式中让各个下载者之间相互联系,有2种途径:1、通过连接BT种子中记录的BT Tracker服务器,获取下载者列表。2、利用BT种子中记录的“数字指纹”通过DHT网络进行搜索,获取下载者列表。不过现实情况是,存活的BT Tracker服务器越来越少,而BT种子文件也需要服务器保存。我们假设“BT Tracker服务器被干掉了,BT种子文件服务器也被干掉了……”那么显而易见的是第1种途径已经完全走不通了,而第2种途径只能帮你“寻找”,却没办法知道你在寻找什么。这时,“磁力链接”就有了用武之地,它可以把“数字指纹”告诉DHT网络,你需要寻找什么。需要注意的是,因为“磁力链接”是通过DHT网络来索引需要下载的文件的,因此在某些环境下可能出现“获取磁力链接信息”时间较长,或者获取失败的问题。由于目前相关问题经验的积累很少,因此除了重试还没有明确的解决办法。支持磁力协议的客户端有:迅雷、QQ旋风、BitComet、μTorrent、BitSpirit、Transmission、QBittorrent
  • 相关阅读:
    JS使用 popstate 事件监听物理返回键
    JQ判断div是否隐藏
    SQL Server DATEDIFF() 函数
    取消a或input标签聚焦后出现虚线框
    C#定时任务
    C# 保留N位小数
    C#打印单据
    SQL语句创建函数
    SVN检出新项目
    解决jQuery的toggle()的自动触发问题
  • 原文地址:https://www.cnblogs.com/sunada2005/p/3334821.html
Copyright © 2011-2022 走看看