P2P系统的应用越来越广泛,在文件共享、流媒体服务、即时通讯交流、计算和存储能力共享以及协同处理与服务等方面都能看到P2P的存在,一些P2P应用如Napster、eMule、BitTorrent等早已是家喻户晓了。关于这个网络的工作原理,参看: P2P中DHT网络爬虫(链接)以及写了个 磁力搜索的网页。
    P2P按其拓扑关系大致可以分为两类四种形式:
       1.非结构化拓扑。包括中心化拓扑、分布式拓扑、半分布式拓扑,其分别对应着Napster、BitTorrent、Kazaa这三种知名的应用。
       2.结构化拓扑。主要形式为分布式结构化拓扑,也就是所谓的DHT网络。
    DHT——Distributed Hash Table 分布式哈希表:
       1.哈希表被分割成不连续的块,每个节点被分配给一个属于自己的哈希块,并成为这个哈希块的管理者。
       2.通过加密哈希函数,一个对象的名字或关键词被映射为128位或160位的散列值。
         DHT网络的基本思想如下:
       1.每一份资源都由一组关键字进行标识。
       2.系统对其中的每一个关键字进行Hash,根据Hash的结果决定此关键字对应的那条信息(即资源索引中的一项)由哪个用户负责储存。
       3.用户搜索的时候,用同样的算法计算每个关键字的Hash,从而获得该关键字对应的信息存储位置,并迅速定位资源。
   
    DHT关键字定位:
       1.DHT通过分布式散列函数,将输入的关键字唯一映射到某个节点上,然后通过某些路由算法同该节点建立连接。
       2.每个节点并不需要保存整个系统的节点视图信息,只在节点中存储其邻近的几个后继节点信息,当一个节点收到一个查询操作时,如果它发现所查询的标识不在自己关联的区间内,那么该节点将会把该查询发送给其存储节点信息表中它认为最靠近目标的邻居。
       3.每次转发都能更进一步地接近数据源。因此较少的路由信息就可以有效地实现到达目标节点。
 
    DHT的具体算法实现过程:
    (1)对每个节点的一定特征(如IP地址)进行Hash,使得到的每个节点的节点值唯一。将节点按照节点值的从小到大构成一个环(Chord环)。(此处节点值可以看作是新环中的IP地址)
    (2)通过节点值,获取每个节点与下一个临近节点之间的距离,从而获得每个节点所需负责的值区间。(此过程类似于建立路由表)
    (3)对每个节点上的资源提取关键字,并对关键字进行Hash,得到的Hash值按照(2)中的每个节点负责的区间进行分配,从而使每一项资源的存储信息都被存储在一个节点上。(此步骤获得了资源的索引列表)
    (4)当搜索一项资源时,对其关键字进行Hash,得到的值与当前节点的值区间表相比较,从而获得资源的索引信息最有可能存在的节点。查询该节点,获取资源的索引,根据索引,即可找到资源所在的节点,并建立通信。

利用DHT网络原理制作bt采集相关推荐

  1. DHT网络原理制作bt采集蜘蛛,开源版

    dhtcrawler最早的版本有很多问题,修复过的最大的一个问题是关于erlang定时器的,在DHT实现中,需要对每个节点每个peer做超时处理,在erlang中的做法直接是针对每个节点注册了一个定时 ...

  2. 利用DHT网络原理制作

    我最开始在选用数据库时,为了不使用第三方库,打算使用erlang自带的mnesia.但是因为涉及到字符串匹配搜索,mnesia的查询语句在我看来太不友好,在经过一些资料查阅后就直接放弃了. 然后我打算 ...

  3. 利用DHT网络,爬取bt种子。

    DHT网络爬虫 传统的Bittorrent服务 传统的BT服务是由两部份组成的,tracker服务和p2p服务,通过前者用户可以知道谁拥有资源,后者是通过前者向拥有资源的用户发起下载. Tracker ...

  4. P2P中DHT网络原理

    2019独角兽企业重金招聘Python工程师标准>>> DHT网络爬虫基于DHT网络构建了一个P2P资源搜索引擎.这个搜索引擎不但可以用于构建DHT网络中活跃的资源索引(活跃的资源意 ...

  5. 结构化P2P网络——DHT网络原理

    P2P系统的应用越来越广泛,在文件共享.流媒体服务.即时通讯交流.计算和存储能力共享以及协同处理与服务等方面都能看到P2P的存在,一些P2P应用如Napster.eMule.BitTorrent等早已 ...

  6. DHT技术,IPFS,BT是个啥

    1.DHT技术即分布式哈希表技术,是一种分布式存储方法.这种网络不需要中心节点服务器,而是每个客户端负责一个小范围的路由,并负责存储一小部分数据, 从而实现整个DHT网络的寻址和存储.和中心节点服务器 ...

  7. [C#搜片神器] 之P2P中DHT网络爬虫原理

    继续接着上一篇写:使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)[搜片神器] 昨天由于开源的时候没有注意运行环境,直接没有考虑下载BT种子文件时生成子文件夹,可能导致有的朋友运行 ...

  8. 基于DHT网络的最强BT资源搜索引擎engiy.com

    现如今,基DHT网络爬虫的磁力搜索,BT搜索资源已经很多了,但大多是挂马,弹窗垃圾站居多. 只有engiy.com是真正意义上的无广告.并且是实时索引(好像索引用的是elasticsearch).而且 ...

  9. python之bt种子,dht网络共享热门资源

    最近研究了dht网络,使用python写了个爬虫程序,另外用php做了个搜索网站,今天又把sphinx加上了,这样就是一个简单的bt种子搜索引擎了哈,网址:http://bt.dianfenxiang ...

最新文章

  1. 操作系统学习1:操作系统概述
  2. org.apache.hadoop.io
  3. JavaScript实现k-Means算法(附完整源码)
  4. 物联网无线连接服务发布 阿里云全新产品,物联网设备专用的物联网卡与流量套餐...
  5. flask manage port_后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统...
  6. Zabbix触发器配置指定生效星期监控CPU使用率
  7. c语言中如何通过二级指针来操作二维数组
  8. 毕业论文酒店管理系统java,基于J2EE酒店管理系统设计与实现
  9. 103页PPT带你从浅到深了解什么是PMP项目管理(全)
  10. html5制作学生积分系统,科学网—CLASS极简教程 - 钱磊的博文
  11. 中国传感器制造行业发展态势与应用前景预测报告2022-2028年
  12. android动态mac地址,android 设备唯一码的获取,Cpu号,Mac地址
  13. html站点是啥意思,html啥意思
  14. 用计算机控制操作照相机,摄影教程:用电脑控制相机远程拍摄
  15. AdaptiveAvgPool1D内部实现
  16. 国信证券笔试题总分120分
  17. write-up web source
  18. 分类梨和苹果的两种方法
  19. 从入门到精通,Java学习路线导航(附学习资源)
  20. 图片或PDF转化为文字文本免费软件推荐

热门文章

  1. php file_put_contents 根目录权限,php – Composer:file_put_contents(./ composer.json):无法打开流:权限被拒绝...
  2. 简述python在量化金融中应用_Python金融量化
  3. 文章转载---西工大博士生文言文答辩致谢
  4. Redis(测试连接, 五大数据类型,三种特殊数据类型)
  5. 券商如何做好机构服务
  6. div+css静态网页设计web网页设计实例作业 ——中国风的茶文化(4页) web课程设计-HTML网页制作代码
  7. sap采购申请自动转采购订单
  8. Andorid微信刷脸支付使用过程解析
  9. 抢红包算法 c++_字节跳动|垂直策略|算法岗招聘
  10. Henri Bergson and the Perception of Time