现在公开一个DHT网络爬虫
P2P按其拓扑关系大致可以分为两类四种形式:
1.非结构化拓扑。包括中心化拓扑、分布式拓扑、半分布www.usus式拓扑,其分别对应着Napster、BitTorrent、Kazaa这三种知名的应用。
2.结构化拓扑。主要形式为分布式结构化拓扑,也就是所谓的DHT网络。
DHT——Distributed Hash Table 分布式哈希表:
1.哈希表被分割成不连续的块,每个节点被分配给一个属于自己的哈希块www.usus,并成为这个哈希块的管理者。
2.通过加密哈www.usus希函数,一个对象的名字或关键词被映www.usus射为128位或160位的散列值。
DHT网络的基本思想如下:
1.每一份资源都由一组关键字进行标识。
2.系统对其中的每一个关键字进行Hash,根据Hash的结果决定此关键字对应的那条信息(即资源索引中的一项)由哪个用户负责储存。
3.用户搜索的时候,用同样的算法计算每个关键字的Hash,从而获得该关键字对应的信息存储位置,并迅速定位资源。
DHT关键字定位:
1.DHT通过分布式散列www.usus函数,将输入的关键字唯一映射到某个节点上,然后通过某些路由算法同该节点建立连接。
2.每个节点并不需要保存整个系统的节点视图信息,只在节点中存储其邻近的几个后继节点信息,当一个节点收到一个查询操作时,如果它发现所查询的标识不在自己关联的区间内,那么该节点将会把该查询发送给其存储节www.usus点信息表中它认为最靠近目标的邻居。
3.每次转发都能更进一步地接近数据源。因此较少的路由信息就可以有效地实现到达目标节点。
DHT的具体算法实现过程:
(1)对每个节点的一定特征(如IP地址)进行Hash,使得到的每个节点的节点值唯一。将节点按照节点值的从小到大构成一个环(Chord环)。(此处节点值可以看作是新环中的IP地址)
(2)通过节点值,获取每个节点与下一个临近节点之间的距离,从而获得每个节点所需负责的值区间。(此过程类似于建立路由表)
(3)对每个节点上的资源提取关键字,并对关键字进行Hash,得到的Hash值按照(2)中的每个节点负责的区间进行分配,从而使每一项资源的存储信息都被存储在一个节点上。(此步骤获得了资源的索引列表)
(4)当搜索一项www.usus资源时,对其关键字进行Hash,得到的值与当前节点的值区间表相比较,从而获得资源的索引信息最有可能存在的节点。查询该节点,获取资源的索引,根据索引,即可找到资源所在的节点,并建立通信。
与本文相关的文章
- [已解决]笔记本电脑连接wifi或热点无网络问题
- 电脑打开WiFi检测不到可用网络
- 计算机ipv6无法连接,ipv6无网络访问权限实测解决教程
- (苹果Mac OSX系统)绿联USB无法连接网络解决方案
- 远程网络教学系统功能(用例图)
- 【爬虫基础】第3讲 常见浏览器User-Agent大全
- 《网络&浏览器》前端面试题
- Python爬虫之浏览器User-Agent大全
- Android 系统,Wifi连接后,显示wifi已连接但无法访问网络。
- 手机共享计算机网络连接,电脑和手机网络的相互共享
- charles抓包踩过的坑之一 ——手机开了代理,不能访问网络
- android判断连接的wifi是否能访问网络
- Fiddler手机APP抓包及无法连接网络问题处理
- 【网络相关】Fast分线路由器设置
- 如何优化你的网络:MTU值设置详解(一步步教你确定路由器的最佳MTU值)
- 通过路由器设置网络为同一网段
- 【JAVA】从0开始写DHT磁力爬虫 02 Bencode实现
- 手撕包菜BT搜索引擎带爬虫自动抓取安装
- 搜索引擎爬虫蜘蛛的useragent
- 搜索引擎爬虫蜘蛛的UserAgent收集
评论列表(0)
- 暂无评论