热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获取文件哈希值_2.1分布式哈希表

1.分布式哈希表2.1.1Kademlia(DHT)Kademlia(DHT)是分布式点对点计算机网络的分布式哈希表。它通过
ecee4a1e863eeeeae45de86cdcf1e4f2.png

1.分布式哈希表

2.1.1 Kademlia(DHT)

Kademlia(DHT)是分布式点对点计算机网络的分布式哈希表

它通过节点查找指定网络的结构信息交换

Kademlia节点使用UDP在它们之间进行通信。

虚拟或覆盖网络由参与者节点形成。

每个节点由数字或节点ID标识节点ID不仅作为识别,但Kademlia的算法使用节点ID来定位的值(通常是文件散列或关键字)。

实际上,节点ID 提供文件哈希的直接映射,该节点存储有关获取文件或资源的位置的信息。

在搜索某些值时,算法需要知道相关的密钥并分几步探索网络。每个步骤都会找到更靠近密钥的节点,直到联系的节点返回值或找不到更近的节点。这非常有效:与许多其他DHT一样,Kademlia O( log(n))在搜索系统中的总节点的时间复杂度仅为n。

特别是在分散结构中发现了进一步的优点,这增加了对拒绝服务攻击(DDoS)的抵抗力。即使整个节点集合被淹没,这也会对网络可用性产生有限的影响,因为网络将通过围绕这些“漏洞”编织网络来恢复自身。

KAD算法

(1)Kadelia二叉状态树:

6a4717bd61dcb01de315584d7d1714aa.png

XOR运算:判断两个节点之间的距离的远近d(x,y)=x⊕y

(2)节点路由表:节点路由表 保存每个节点与自己一顶范围内其他节点的连接信息

  • 每条路由信息:ip addr、UDP port 、Nodeid
  • 路由查询机制
  • 节点加入和离开
4c1a61635b9772a26705a2c43575ea35.png

Kademlia中的路由表,其中nodeId前缀为0011的节点

自我思考:实质上就是构造哈夫曼二叉树,树的分裂的知识。

Kademlia有四条消息。

  • PING - 用于验证节点是否仍然存在。
  • 存储 - 在一个节点中存储(键,值)对。
  • FIND_NODE - 请求的接收者将返回他自己的桶中的k个节点,这些节点是与请求的密钥最接近的节点。
  • FIND_VALUE - 与FIND_NODE相同,但如果请求的收件人在其商店中具有请求的密钥,则它将返回相应的值。

每个RPC消息都包含来自发起者的随机值。这确保了当接收到响应时,它对应于先前发送的请求。

2.1.2 Coral DSHT

提出coral协议的两位大佬,纽约大学,内容分发网络系统 其论文原文:

e08843dcda5a1f4abc15208d14637820.png

Michael J. Freedman and David Mazi`eres NYU Dept of Computer Science

目的:

避开互联网传输瓶颈 降低内容供应服务器的网络压力

基本思想:

在网络内部部署一些节点 建立一套虚拟的网络 将用户的请求重定向到最适合的服务器上去

优点:

  • 通过节点服务器中转 提高了用户访问网页的速度
  • 降低网络的负载
  • 内容服务器暂时离线 用户可以通过节点服务器的缓存读取

索引机制和分层

基于键值对的路由层

Sloppy存储

Coral执行存储分为两步进行:

第一步是前向查询,Coral会持续迭代查找距离Key更近的节点ID,每一个节点返回两个信息,1.该节点是否loaded,2.对于该Key,这一节点存储有几个Value ,每一个Value的实效时间是多长。客户端根据信息决定这些节点是否可以存储新的值

第二步为反向查询,客户端从第一步得到了可存放的节点列表,按照距离Key从近到远的顺序,依次尝试添加Key/Value到这些节点

2.1.3 S/ Kademlia(DHT)

034094126d7038ff0b75ed6cb4b75e17.png

论文来源:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.68.4986&rep=rep1&type=pdf

因为 Kademlia是一种开放的p2p网络协议,易受到来自恶意节点的各类攻击。

这是一种基于Kademlia的安全Key路由协议,该协议通过在多条不相交的路径上使用并行查找来抵抗常见攻击,用隐式身份认证密码来限制自由节点ID生成,并引入可靠的兄弟广播。 后者需要以安全复制的方式存储数据。

中文翻译:

https://medium.com/@elninowang_cn/s-kademlia2007-%E7%BF%BB%E8%AF%91-4af0bcc09b66

参考: http://blog.lpc-win32.com/2018/10/29/coral-dsht/ Coral DSHT(内容分发网络系统)



推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
author-avatar
多米音乐_34306427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有