您好,欢迎访问优化排推广软件网站,为您提供24小时网站优化服务。

来做网站排名优化平台

全搜索平台优化百度PC,搜狗PC,360PC端优化。

用Node.js实现一个DHT网络爬虫,一步一步完成一个BT搜索引擎(一)

作者:梅编辑      发布时间:2020-10-24      浏览量:0
一、传统Bittorrent服务传统BT服务由两部分组成,tracker服务和p2p服务,通过前用户可以知道谁拥有资源,后者是启动下载到谁拥有资源通过前者。二、Trackerless目前在大多

一、传统Bittorrent服务

传统BT服务由两部分组成,tracker服务和p2p服务,通过前用户可以知道谁拥有资源,后者是启动下载到谁拥有资源通过前者。

二、Trackerless

目前在大多数国家,tracker服务是非法的。有一天tracker服务将类似于edonkey同一服务消失。trackerless对减少需求变得迫切。

三、DHT网络

DHT网络是解决方案trackerless目前,应用最广泛的方案,核心算法被称为Kademlia,这就是所谓的XOR算法。在Bittorrent调用它DHT,,在edonkey调用它Kad,这两种算法是一对一的,但细节不同。前者更注重文件传输,后者更注重文件共享。

四、什么NodeID与InfoHash

在DHT在网络中,所有用户和资源都有一个20bytes的ID,用户已调用NodeID,调用的资源InfoHash。NodeID通常基于用户的IP计算端口(但DHT你可以在爬网器中随机获取一个20bytes字符串,没关系),InfoHash基于torrent种子文件info字段,使用hash sha1计算。在DHT在协议中,

NodeID可通过以下代码轻松获取

通过种子文件计算InfoHash代码

获得传染性magnet链接很简单

可见DHT网络中的用户和资源无法区分,因此xor算法说。NodeIDXOR 可用于计算距离,NodeID与InfoHash也可以计算InfoHash也可以计算距离。计算方法很简单,把infoHash或NodeID更改为数值,然后按 XOR 逐位获取距离。这一点至关重要,如下所示Routing table将用于。尽管XOR算法获得的距离结果不是物理距离关系,但它在数学和逻辑上是自我一致的。

五、DHT协议

共4条

六、ping

是检查Node更新状态Routing table

七、find_node

通常用于初始化Routing table,因为一开始,你Routing table为空,需要发送到公共节点find_node来填充它。

八、get_peers

当用户想要下载种子资源时Node发起。以防万一Node如