gpt4 book ai didi

p2p - 如何理解 Kademlia(KAD) 协议(protocol)

转载 作者:行者123 更新时间:2023-12-04 04:50:26 25 4
gpt4 key购买 nike

最近看了一篇关于 Kademlia 协议(protocol)的文档,想了解一下协议(protocol),但还是有一些疑问:
为什么一个节点知道另一个节点的ID,但知道它的IP或端口时,他必须找到另一个节点?
为什么他有ID而他不知道IP或端口,他从哪里得到ID?
我认为两个不同节点之间的“距离”不是路由距离或真实距离,它只是一个虚拟距离,可以通过算法快速找到节点,对吗?

也许我的英语不是很清楚,因为英语不是我的母语,但如果你需要,我会尽量表达清楚。
非常感谢!

最佳答案

正如 cHao 所说,网络的分布式特性意味着节点需要将他们的 ID 和他们的联系方式发布给他们与之交谈的其他节点。没有将 ID 映射到联系信息的中心位置,因此每个节点必须在其自己的路由表中为网络上的节点子集保留此映射。

Kademlia 路由表的结构使得节点对靠近它们的网络有详细的了解,而在更远的地方则以指数方式减少知识。

使用按位异或来衡量 ID 之间的名义距离具有以下优点:对于给定的目标 ID,没有两个 ID 到目标的距离可以相同。

想象一个简单的例子,其中 ID 在 00 到 63 的范围内。如果 Kademlia 使用例如作为距离度量的纯数学差异,15 和 35 与 25 的距离相同——两者的距离均为 10。使用异或,15 和 25 之间的距离为 22,25 和 35 之间的距离为 58。

这样,可以明确计算出与目标 ID 最接近的 k 个 ID 组。

常数 k 在 Kademlia 中有几个用途,但它主要是复制因子。换句话说,一条数据存储在离数据ID最近的k个节点上。

查找过程旨在返回一组 k 节点(在每个节点上存储数据之前)或返回单个数据(从在查找迭代期间保存它的第一个节点)。

因此,纯 Kademlia 并不最适合仅查找单个节点,因此我不确定您的问题是否过于相关。如果您确实想使用 Kademlia 查找单个节点,则可能值得修改查找过程以在任何节点返回目标节点的联系详细信息时尽早完成(与查找提前完成的方式相同,如果目标值过程中发现)。

关于p2p - 如何理解 Kademlia(KAD) 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com