libp2p kad 迭代查询
描述
迭代查询是libp2p kad中的关键部分,kad通过迭代查询不断逼近目标,这个目标可能是peer,可能是provider,也有可能是value。
过程
- 选取K桶中距离key最近的(最多)K个节点,将这些节点的状态置为Heard;
- 向它们发起(并行)查询(发送FIND_NODE, GET_PROVIDERS或者GET_VALUE request),得到它们K桶中距离key最近的K个节点信息,将新得到的节点状态置为Heard,并且收集起来;
- 判断结束条件(如下),满足其中之一即可结束;否则在所有状态为Heard的节点中挑选若干个距离key最近的节点,继续发起查询;
- 迭代查询结束,所有非unreachable的节点按照距离排序,向前(最多)K个节点中那些未查询或者正在查询的节点发起查询。
并行查询
最多只能同时向alpha个节点查询,如果还有n个查询未返回,那么这一轮只能向alpha-n个节点查询。
结束条件
- 所有非unreachable的节点按照距离排序后,前beta个节点全部都查询过(表明连续beta轮都找不到更近的节点)
- starvation: 没有状态为waiting或者heard的节点
- 各操作自定义的结束条件:
findPeer : 连接上目标节点
findProviders : 得到的provider记录数超过阈值
getValue : 得到的value记录数超过阈值
用处
findPeer | getValue | putValue | findProviders | provide | rtRefresh |
---|
libp2p kad 迭代查询相关推荐
- 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
上节中提到了一些有关递归查询的内容,但说的很少,也很笼统,本节将会从原理和实例两方面入手分析DNS的递归以及迭代查询. 在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容. 在互联网中 ...
- 详解DNS递归查询与迭代查询
关于01月23日全国范围内DNS污染,域名解析故障的根源,资深的IT人士都知道原因是什么,并非国家 互联网应急中心发出的遭受***一说. 因此这里介绍一下DNS服务器的查询原理,也就是递归查询和迭代查 ...
- 【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )
文章目录 一.域名 二.域名服务器 三.域名解析过程 四.递归查询 五.迭代查询 六.高速缓存 一.域名 域名 : ① 域名表示方法 : 字母 , 数字 , "-" 符号 , &q ...
- linux关闭dns迭代查询,DNS查询和响应过程递归和迭代的使用
需要了解DNS查询过程的递归和迭代的机制,找到了RFC的相关章节, 对这个进行了简单的翻译(水平有限),可以留下来做个参考. RFC 1034 4.3.1. Queries and responses ...
- [日常] DNS的迭代查询过程
DNS是应用层协议,端口号为tcp/53和udp/53 DNS查询过程,比如访问www.test.com 1.客户机查询www.test.com 2.查询首选DNS服务器,Linux下/etc/res ...
- dns迭代查询配置_dns解析?瞅瞅这篇文章
dns( Domain Name System),顾名思义,就是用来将主机名和域名转换为IP地址的系统,那么dns是怎么运作的呢,本文简单记录下龙叔的理解 1·研究环境 为了研究dns,当然要自己搭建 ...
- dns迭代查询配置_人人都能看懂-关于dns服务基本知识
一.DNS: Domain Name Service 应用层协议(C/S,53/udp, 53/tcp) 域名又称网域,是由一串用点分隔的名字组成的上某一台或计算机组的名称,用于在数据传输时对计算机的 ...
- DNS递归查询与迭代查询
原文链接:https://www.cnblogs.com/qingdaofu/p/7399670.html DNS递归查询与迭代查询 基础知识 1.域名系统 2.域名服务器 域名解析过程 1.在浏览器 ...
- 什么是递归查询,迭代查询?
主机向本地域名服务器的查询一般都是采用递归查询.所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向根域名服务器继续发出查询 ...
最新文章
- 开发脚本自动部署及监控
- HarmonyOS之AI能力·通用文字识别技术
- VHDL中的左移函数
- java tcp怎么拆包_Java网络编程基础之TCP粘包拆包
- sql语句查询数据库中含有某字符串的表名
- 外媒:高通、微软和谷歌担忧英伟达收购Arm将损害竞争
- java可以实现agv调度吗_AGV路线优化及实时调度
- Xamarin学习笔记
- 如何用数据驱动的广告效果
- (附源码)ssm通用数据展示系统 毕业设计 200934
- URI和URL的区别和关联
- 鹏业安装算量NETDWGCOM接口创建失败处理办法
- python地图 两点距离_使用python计算google地图中两点之间的距离
- 【Python】多进程 AttributeError: Can‘t pickle local object
- 10分钟健身法读书笔记(5/5)
- MacBook安装p7zip解压7z文件
- jdk8 list Stream groupingBy 分组之后 利用 reducing 求和 BigDecimal
- 充满哲学命题的科幻巨作—《2001太空漫游》
- 数据仓库 Hive 从入门到小牛(一)
- vijosP1567子串计数